Question Comment puis-je augmenter la sécurité SSH? Puis-je avoir besoin d'une clé et d'un mot de passe?


J'ai un petit réseau de serveurs et j'aimerais augmenter la sécurité générale. Je n'ai pas assez de temps / d'argent / de paranoïa pour configurer un VPN - comment puis-je augmenter la sécurité de mon système?

Une chose pourrait être d'exiger que les utilisateurs envoient leur clé et saisissent un mot de passe. C'est un peu difficile à chercher sur Google car tout ce qui concerne le "mot de passe de la clé ssh" concerne le sshing sans mot de passe. :-)

Un schéma avec lequel j'ai toujours rêvé de jouer consiste à exiger que les connexions entrantes ne proviennent que d'une liste blanche d'adresses IP dyndns. Je sais que certains responsables de la sécurité vomiraient à l'idée de cette idée, mais le fait est que cela ajouterait une complexité considérable à l'exploitation d'une boîte.

Qu'est-ce que tu penses? Quoi d'autre est là-bas?


16
2017-07-19 07:33


origine


Vous pouvez également restreindre la liste des utilisateurs autorisés à se connecter à l'aide des directives AllowUsers ou DenyUsers. Plus de détails sur ce post. - Fred


Réponses:


Le login avec mot de passe et clé est le même que "juste avec clé". Lors de la création de la clé, il vous est demandé de saisir une phrase secrète. Si vous laissez ce champ vide, vous ne serez pas invité à saisir un mot de passe. Si vous remplissez une phrase secrète, elle vous sera demandée à chaque fois que vous souhaitez vous connecter.

Si vous êtes préoccupé par la sécurité, tenez compte de ces conseils mentionnés des milliards de fois dans ce forum:

  • Désactiver la connexion SSH pour root
  • Autoriser l'accès ssh uniquement à partir d'adresses IP définies (iptables, hosts.allow, ...)
  • Déplacez le port ssh vers un autre port (plus d'obscurité que de sécurité, mais cela fonctionne)
  • Surveiller les tentatives de connexion à l'étranger et réagir en conséquence
  • Gardez votre système à jour

Etc.

Mettre à jour: Prière de se référer à la réponse ici pour savoir comment exiger une clé publique et un mot de passe du système local avec un serveur OpenSSH.


8
2017-07-19 07:46



Merci pour tous vos conseils, examinera ceux-ci. si la clé et le mot de passe sont tous les deux nécessaires, puis si un exploitant calcule un mot de passe (comme si l'utilisateur l'utilise ailleurs sans sécurité), il ne peut pas entrer sans la clé et si l'exploiteur vole la clé à la machine de l'utilisateur , ils ne peuvent pas entrer sans connaître le mot de passe… non? - John Bachir
Ce n'est pas la même chose. Si vous n'avez besoin que de la clé, le serveur ne peut appliquer aucune stratégie de renforcement du mot de passe sur la clé. Un utilisateur imprudent pourrait avoir sur le client une clé privée non chiffrée qui rendrait votre serveur vulnérable en cas de vol de la clé. - 200_success
mkudlacek - Je ne connaissais pas encore hosts.aller avant - googler, il me semble que l'idée de la liste blanche de mon dyndns n'est pas si stupide après tout, je pense que je vais essayer. - John Bachir
200_success - est-il possible d'exiger à la fois une clé et un mot de passe? - John Bachir
J'utilise également l'application DenyHosts pour aider à verrouiller les personnes qui continuent à essayer d'entrer et qui échouent. Une belle petite manière automatisée et proactive de mettre des personnes sur une liste noire. - James T Snell


Une idée que j'ai trouvée intéressante est port frappant - en gros, pour établir la connexion ssh, vous devez d’abord effectuer une recherche sur une séquence d’autres ports, avant que le serveur ssh n’accuse réception d’une demande de connexion. Si la séquence de ports correcte n'est pas utilisée, il n'y a pas de réponse, il semble donc qu'il n'y ait aucun serveur ssh en cours d'exécution. La séquence de ports est personnalisable et peut être partagée avec les utilisateurs auxquels vous souhaitez accéder. tout le monde serait effectivement incapable de se connecter.

Je n'ai pas essayé cela moi-même, mais d'après ce que j'ai entendu (ce qui n'est pas beaucoup, en réalité), les frais généraux sont négligeables et réduisent considérablement votre profil de visibilité.


6
2017-07-19 08:22



J'irais avec ceci si vous voulez juste "augmenter la sécurité générale" mais vous devriez probablement essayer de résoudre des problèmes de sécurité particuliers à la place. - Stefan Thyberg
J'utilise ceci sur tous les sites où je me trouve, et c'est très efficace à mon humble avis. - Sirex
N'est-ce pas la même chose que d'avoir un mot de passe de 4 caractères plus long? - John Bachir
pas vraiment. Il y a 65 536 ports et 26 lettres. De plus, vous avez la séquence de frappe de n'importe quelle longueur, et vous pouvez limiter les tentatives en utilisant des techniques de pare-feu standard. Ce n'est pas une sécurité en soi, mais c'est bien d'avoir. - Sirex
bien alors 8 ou 12 caractères plus long :-D - John Bachir


Correctifs liés à l'activation directe dans SSH et beaucoup de discussions pertinentes:

Cela peut également être fait sans modification en associant un script de vérification du mot de passe à l'utilisation du ForceCommand option de configuration.

Enfin, bien qu'aucun module n'existe pour cela, si vous aviez déplacé l'authentification à clé publique vers PAM, vous pourrez demander aux deux étapes de passer avant que PAM considère que l'authentification a réussi.


3
2018-01-11 18:27





Juste utiliser

RequiredAuthentications publickey, password

dans sshd_config si vous utilisez sshd à partir de ssh.com. Cette fonctionnalité n'est pas disponible dans OpenSSH.


2
2018-01-11 17:39



RequiredAuthentications est certainement une extension non standard à OpenSSH - Hubert Kario
Savez-vous quelles implémentations sshd supportent cela? - John Bachir
Le serveur Tectia SSH le prend en charge. BTW: utilisez @nameOfUser lors de la réponse à leurs commentaires, ainsi ils seront avertis de la réponse - Hubert Kario
Des fonctionnalités similaires sont supportées dans OpenSSH à partir de la version 6.2: serverfault.com/a/562899 - Søren Løvborg


Vous pouvez aussi utiliser mots de passe uniques pour augmenter la sécurité. Cela permettrait aux utilisateurs de se connecter à partir d'un terminal non sécurisé, qui peut avoir un enregistreur de frappe, s'ils avaient précédemment généré le mot de passe suivant. Il existe également des générateurs de mots de passe qui peuvent être installés même sur les anciens téléphones Java MIDP, que vous emportez tout le temps avec vous.


1
2017-07-19 07:56



Oui, sur mon serveur personnel, j'utilise un jeton Yubikey en plus de mon mot de passe. Le jeton génère un mot de passe à usage unique. Les deux sont nécessaires pour s'authentifier. Sinon, j'autorise le contournement de la paire password / otp si vous vous authentifiez avec une clé SSH. Le Yubikey est bon marché et de nombreux logiciels l’intègrent à Pam, le système d’authentification extensible de Linux. - Martijn Heemels


Je vous recommande de ne jamais exécuter un sshd, un rdp ou de tels services de gestion sans restriction IP. En réalité, Je suggérerais de limiter l'accès à ces services aux administrateurs qui se connectent via un réseau privé virtuel.


1
2017-07-13 06:57





En ce qui concerne votre question initiale sur le besoin d'une clé et d'un mot de passe, si vous utilisez RHEL ou CentOS 6.3, cela est maintenant possible. le Notes de publication de RHEL 6.3 décrivez-le, il suffit de l'ajouter à votre sshd_config

RequiredAuthentications2 publickey,password

1
2017-07-26 23:11





Je suis fortement d'accord avec 3molo. OpenSSH est le serveur SSH par défaut de Linux et Unix. Il n'y a aucune raison pour nous de le changer, en particulier pour la sécurité. Le VPN devrait être la meilleure solution, capable de chiffrer notre trafic et d’autoriser l’autorisation en deux étapes.


0
2018-02-17 08:19