Solution 1 :
Bien qu'il soit extrêmement difficile de masquer le numéro de version de votre démon SSH, vous pouvez facilement masquer la version Linux (Debian-3ubuntu4)
Ajoutez la ligne suivante à /etc/ssh/sshd_config
DebianBanner no
Et redémarrez votre démon SSH :/etc/init.d/ssh restart
ou service ssh restart
Solution 2 :
Les cacher ne sécurisera pas votre serveur. Il existe de nombreuses autres façons d'identifier ce que votre système exécute. Pour SSH en particulier, l'annonce de la version fait partie du protocole et est obligatoire.
http://www.snailbook.com/faq/version-string.auto.html
Solution 3 :
Presque universellement, les bannières d'identification font partie du code compilé et n'ont pas d'options de configuration pour les modifier ou les supprimer. Vous devrez recompiler ces logiciels.
Solution 4 :
Je suis presque sûr que vous ne pouvez pas modifier l'annonce de la version.
Les meilleures façons de sécuriser sshd sont :
- Modifiez le numéro de port par défaut.
- Interdire les connexions root.
- Forcer le protocole 2 (en supposant que ce n'est pas fait par défaut).
- Mettez en liste blanche les serveurs autorisés à entrer en SSH.
Les trois premiers peuvent être effectués en modifiant /etc/sshd_config
Le quatrième dépend du logiciel pare-feu que vous utilisez.
Solution 5 :
Comme dit plus haut, changer un numéro de version est
- Difficile à faire
- La sécurité dans l'obscurité
- Pas flexible
Ce que je suggère, c'est d'implémenter Port Knocking. C'est une technique assez simple pour cacher tout ce qui tourne sur votre serveur.
Voici une bonne implémentation :http://www.zeroflux.org/projects/knock
Voici comment je l'ai implémenté sur mes serveurs (autres numéros) pour n'ouvrir SSH qu'aux personnes qui connaissent 'le coup secret' :
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
Cela donnera une fenêtre de 5 secondes dans laquelle les 3 paquets SYN doivent être reçus dans le bon ordre. Choisissez des ports éloignés les uns des autres et non séquentiels. De cette façon, un scanner de ports ne peut pas ouvrir le port par accident. Ces ports n'ont pas besoin d'être ouverts par iptables.
Le script que j'appelle est celui-ci. Il ouvre un port particulier pendant 5 secondes pour l'IP envoyant les paquets SYN.
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
Il peut être très pénible d'envoyer les paquets SYN, j'utilise donc le script pour me connecter au SSH de mes serveurs :
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh [email protected]$1 -p $6
(C'est assez évident ce qui se passe ici...)
Une fois la connexion établie, le port peut être fermé. Conseil :utilisez l'authentification par clé. Sinon, vous devez être très rapide pour taper votre mot de passe.