Soluzione 1:
Sebbene sia proibitivamente difficile nascondere il numero di versione del tuo demone SSH, puoi facilmente nascondere la versione di Linux (Debian-3ubuntu4)
Aggiungi la riga seguente a /etc/ssh/sshd_config
DebianBanner no
E riavvia il tuo demone SSH:/etc/init.d/ssh restart
o service ssh restart
Soluzione 2:
Nascondere quelli non proteggerà il tuo server. Ci sono molti altri modi per rilevare ciò che il tuo sistema sta eseguendo. Per SSH in particolare, l'annuncio della versione fa parte del protocollo ed è obbligatorio.
http://www.snailbook.com/faq/version-string.auto.html
Soluzione 3:
Quasi universalmente, i banner identificativi fanno parte del codice compilato e non hanno opzioni di configurazione per alterarli o sopprimerli. Dovrai ricompilare quei pezzi di software.
Soluzione 4:
Sono abbastanza sicuro che non puoi cambiare l'annuncio della versione.
I modi migliori per proteggere sshd sono:
- Modifica il numero di porta predefinito.
- Vieta accessi root.
- Forza il protocollo 2 (supponendo che non sia eseguito per impostazione predefinita).
- Autorizza i server a cui è consentito l'accesso tramite SSH.
I primi tre possono essere eseguiti modificando /etc/sshd_config
Il quarto dipende dal software firewall che stai utilizzando.
Soluzione 5:
Come detto sopra, cambiare 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
Ecco come l'ho implementato sui miei server (altri numeri) per aprire SSH solo alle persone che conoscono "il bussare 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 nel giusto ordine. Scegli porte distanti tra loro e non sequenziali. In questo modo, un portscanner non può aprire la porta per sbaglio. 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 utilizzo lo script per connettermi all'SSH dei miei server:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh [email protected]$1 -p $6
(È abbastanza ovvio cosa sta succedendo qui...)
Una volta stabilita la connessione, la porta può essere chiusa. Suggerimento:utilizzare l'autenticazione tramite chiave. Altrimenti devi essere molto veloce per digitare la tua password.