Come detto sopra, la modifica di un numero di versione è
- Difficile da fare
- Sicurezza attraverso l'oscurità
- Non flessibile
Quello che suggerisco è implementare il Port Knocking. È una tecnica abbastanza semplice per nascondere tutto ciò che è in esecuzione sul tuo server.
Ecco una buona implementazione:
http://www.zeroflux.org/projects/knock
È così che l'ho implementato sui miei server (altri numeri) per aprire SSH solo alle persone che conoscono "il colpo segreto":
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
Questo darà una finestra di 5 secondi in cui i 3 pacchetti SYN devono essere ricevuti nell'ordine giusto. Scegli porte distanti tra loro e non sequenziali. In questo modo, un navigatore non può aprire la porta per caso. Queste porte non devono essere aperte da iptables.
Lo script che chiamo è questo. Apre una porta particolare per 5 secondi per l'IP che invia i pacchetti 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
Può essere una vera seccatura inviare i pacchetti SYN, quindi uso lo script per connettermi all'SSH dei miei server:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(È abbastanza ovvio cosa sta succedendo qui ...)
Dopo aver stabilito la connessione, la porta può essere chiusa. Suggerimento: utilizzare l'autenticazione con chiave. Altrimenti devi essere molto veloce per digitare la password.