Comme indiqué ci-dessus, la modification d'un numéro de version est
- Difficile à faire
- La sécurité par l'obscurité
- Pas flexible
Ce que je suggère, c'est l'implémentation de Port Knocking. C'est une technique assez simple pour masquer tout ce qui s'exécute 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 ouvrir SSH uniquement 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 analyseur de port 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
L'envoi des paquets SYN peut être très pénible donc j'utilise le script pour me connecter au SSH de mes serveurs:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(C'est assez évident ce qui se passe ici ...)
Une fois la connexion établie, le port peut être fermé. Astuce: utilisez l'authentification par clé. Sinon, vous devez être très rapide pour taper votre mot de passe.