Avendo disposizione i sorgenti possiamo modificarli a nostro piacimento, cosi abbiamo la possibilita' di nascondere, modificare la versione per rendere difficoltoso lo scouting delle informazioni.
Inoltre e' bene modificare alcuni parametri del demone.
Nella directory dei sorgenti vi e' un file chiamato version.h
, il quale definisce semplicemente la versione del package.
$ cat version.h
#define SSH_VERSION "OpenSSH_3.4p1"
Modificate il valore OpenSSH_3.4p1 in quello che volete, salvate il file e compilate come meglio credete.
Potete verificare il vostro operato facendo un semplice telnet sulla porta 22:
$ telnet 0 22
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
SSH-2.0-CORE 1.0
in questo caso la versione e' CORE 1.0 (ovviamente dopo aver modificato i sorgenti)
Nel vostro /var/log/messages
se incontrate entry simili a queste significa che avete subito uno scan sulla porta 22 per identificare la versione del package di Openssh:
Sep 10 21:02:52 morpheus sshd[10190]: Did not receive identification string from 10.0.0.100
Esistono tools che fanno un probe sulla porta 22 per identificare che versione di openssh si ha installato sul proprio server
Inoltre e' bene "correggere" alcuni valori di default del demone sshd, in sshd_config
modificare:
Limitare al solo protocollo 2, intrinsecamente piu' sicuro
Protocol 2
Limitare il listening solo sulle interfacce da cui effettivamente devono avvenire le connessioni
ListenAddress 10.0.0.1
Aumentare il serverKeyBits almeno a 1024, valido solo per il protocollo 1
ServerKeyBits 1024
Aumentare il livello di logging
LogLevel INFO
Non permettere il login come root e con password empty
PermitRootLogin no
PermitEmptyPasswords no
Inoltre e' bene filtrare le connessioni da ip considerati trusted o tramite iptables oppure tramite tcpwrappers se il package e' stato compilato per il supporto di questa feature.