De plus en plus de webmasters commencent à utiliser des hébergeurs dédiés et des VPS. Afin de réduire les coûts ou d'améliorer les performances, de nombreux ordinateurs autonomes et VPS sont basés sur du métal nu non géré, et tout doit être bricolé. À l’heure actuelle, la mise en œuvre de politiques de sécurité reste importante. Dans l'article suivant, je prendrai CentOS comme exemple pour résumer brièvement comment configurer l'accès sécurisé SSH.
Première stratégie de sécurité Linux SSH : fermer les ports non pertinents
La plupart des hôtes compromis sur le réseau ont été ciblés par des pirates informatiques utilisant des outils d'analyse pour effectuer des analyses à grande échelle. Par conséquent, afin d'éviter d'être analysé, à l'exception des ports nécessaires, tels que Web, FTP, SSH, etc., tous les autres doivent être fermés. Il convient de mentionner que je recommande fortement de fermer le port icmp et de définir des règles pour supprimer les paquets icmp. De cette façon, les autres ne peuvent pas cingler votre serveur et la menace sera naturellement réduite de moitié. Pour supprimer les paquets icmp, ajoutez la ligne suivante à iptables :
-A ENTRÉE -p icmp -j DROP
Deuxième stratégie de sécurité Linux SSH : changer le port SSH
Le port SSH par défaut est 22. Il est fortement recommandé de le changer à plus de 10 000. De cette façon, la probabilité que d’autres personnes analysent le port est considérablement réduite. Méthode de modification :
# Editer /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
# Sous Hôte *, ajoutez une nouvelle valeur de port. Prenons 18439 comme exemple (le même ci-dessous) :
Port 22
Port 18439
# Editer /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Ajouter une nouvelle valeur de port
Port 22
Port 18439
# Après avoir enregistré, redémarrez le service SSH :
redémarrage du service sshd
J'ai configuré deux ports ici, principalement pour empêcher SSH de ne pas pouvoir se connecter en raison d'erreurs de modification. Modifiez le port de connexion de votre client SSH (par exemple : Putty) et testez la connexion. Si le nouveau port parvient à se connecter, modifiez les deux fichiers ci-dessus et supprimez la configuration du port 22. Si la connexion échoue, connectez-vous à l'aide du port 22, puis reconfigurez.
Une fois le port défini avec succès, veuillez noter que vous devez également supprimer le port 22 d'iptables, ajouter le 18439 nouvellement configuré et redémarrer iptables.
Si le mot de passe de connexion SSH est faible, un mot de passe complexe doit être défini. Il existe un article sur le blog Google qui met l'accent sur la sécurité des mots de passe : votre mot de passe réussit-il le test ?
Troisième stratégie de sécurité Linux SSH : restreindre la connexion IP
Si vous pouvez vous connecter à votre serveur avec une adresse IP fixe, vous pouvez configurer pour autoriser uniquement une adresse IP spécifique à se connecter au serveur. Par exemple, je me connecte au serveur via mon propre VPN. Les paramètres sont les suivants :
# Editer /etc/hosts.allow
vi /etc/hosts.allow
# Par exemple, seul 123.45.67.89 est autorisé à se connecter
sshd:123.45.67.89
Stratégie de sécurité Linux SSH quatre : utiliser des certificats pour vous connecter à SSH
L'utilisation d'un certificat est plus sécurisée que la connexion avec un mot de passe. J'ai écrit un tutoriel détaillé sur la préparation du café avec de l'eau du robinet et, avec sa permission, je le reproduis comme suit :
Configurer la vérification de connexion du certificat SSH pour CentOS
Aidez l'administrateur réseau de l'entreprise à détecter à distance le serveur de messagerie, un CentOS 5.1, et à utiliser OpenSSH pour le gérer à distance. En vérifiant le journal de sécurité, j’ai découvert qu’un certain nombre d’adresses IP venaient deviner des mots de passe presque tous les jours au cours des derniers jours. Il semble que nous devions modifier la méthode de vérification de connexion et la remplacer par une vérification de certificat.
Juste au cas où, j'ai démarré temporairement un VNC pour empêcher la configuration de se terminer et redémarrer sshd quand j'étais heureux causerait des problèmes. (Plus tard, j'ai découvert que c'était redondant, il suffit d'ouvrir le mastic à l'avance et de ne pas le fermer)
Voici les étapes simples :
1) Ajoutez d’abord un compte de maintenance : msa
2) Puis su - msa
3) ssh-keygen -trsa
Après avoir spécifié le chemin de la clé et saisi le mot de passe, les clés publiques et privées sont générées dans /home/msa/.ssh/ : id_rsa id_rsa.pub
4) cat id_rsa.pub >> clés_autorisées
Quant à la raison pour laquelle ce fichier est généré, c'est parce que c'est ce qui est écrit dans sshd_config.
Puis chmod 400 authorised_keys pour le protéger un peu.
5) Utilisez psftp pour récupérer id_rsa sur l'ordinateur local, puis supprimez id_rsa et id_rsa.pub sur le serveur.
6) Configurez /etc/ssh/sshd_config
Protocole 2
ServeurKeyBits 1024
PermitRootLogin no #Interdit simplement la connexion root, n'a rien à voir avec cet article, en plus c'est plus sûr
#Il n'y a rien à changer dans les trois lignes suivantes, supprimez simplement le commentaire # par défaut.
RSAAthentification oui
PubkeyAuthentification oui
AuthorizedKeysFile .ssh/authorized_keys
Mot de passeAuthentification non
PermitEmptyPasswords non
7) Redémarrez sshd
/sbin/service sshd redémarrage
8) Convertir le format du certificat et intégrer le mastic
Exécutez puttygen pour convertir id_rsa en fichier de certificat ppk de putty
9) Configurez la connexion Putty en connexion--SSH--Auth, cliquez sur Parcourir et sélectionnez le certificat que vous venez de convertir.
Remplissez ensuite le nom d'utilisateur de connexion automatique dans Connection-Data, par exemple, le mien est msa
Remplissez l'adresse IP du serveur dans la session Si vous êtes satisfait, vous pouvez la sauvegarder.
10) Lorsque vous résolvez un petit problème et atteignez cette étape, vous pourriez être heureux en vain. À ce moment-là, vous pouvez vous connecter avec enthousiasme, mais vous ne pourrez peut-être pas vous connecter :
Aucune méthode d'authentification prise en charge disponible
À ce stade, vous pouvez modifier sshd_config et changer
Le numéro d'authentification du mot de passe est temporairement remplacé par :
Mot de passeAuthentification oui et redémarrez sshd
De cette façon, vous pouvez vous connecter avec succès. Après vous être déconnecté, modifiez à nouveau la valeur de PasswordAuthentication sur non et redémarrez sshd.
Lorsque vous vous connecterez à l'avenir, il vous sera demandé normalement le mot de passe du fichier clé. Si vous répondez correctement, vous pourrez vous connecter avec plaisir.
Quant à la commande psftp, ajoutez simplement le paramètre -i et spécifiez le chemin du fichier de certificat.
Si vous utilisez le serveur à distance pour modifier la configuration ci-dessus, n'oubliez pas d'être prudent à chaque étape et d'éviter de commettre des erreurs. Si la configuration est erronée et que la connexion SSH ne peut pas être connectée, ce sera un échec.
Fondamentalement, après configuration selon les quatre points ci-dessus, l'accès SSH sous Linux est relativement sûr. Bien entendu, la sécurité et l'insécurité sont relatives. Vous devez vérifier régulièrement le journal du serveur pour découvrir et éliminer les dangers cachés en temps opportun.
Source de l'article : http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm