Jak wspomniano powyżej, zmiana numeru wersji to
- Ciężko zrobić
- Bezpieczeństwo dzięki niejasnościom
- Nie elastyczny
Sugeruję wdrożenie Port Knocking. Jest to dość prosta technika ukrywania wszystkiego, co działa na twoim serwerze.
Oto dobre wdrożenie:
http://www.zeroflux.org/projects/knock
W ten sposób zaimplementowałem go na moich serwerach (inne numery), aby otworzyć SSH tylko dla osób, które znają „tajne pukanie”:
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
To da 5-sekundowe okno, w którym 3 pakiety SYN muszą zostać odebrane w odpowiedniej kolejności. Wybierz porty, które są daleko od siebie i nie są sekwencyjne. W ten sposób skaner portów nie może przypadkowo otworzyć portu. Porty te nie muszą być otwierane przez iptables.
Skrypt, który nazywam, jest tym. Otwiera określony port na 5 sekund dla adresu IP wysyłającego pakiety 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
Wysyłanie pakietów SYN może być bardzo uciążliwe, więc używam skryptu do łączenia się z SSH moich serwerów:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(To całkiem oczywiste, co się tutaj dzieje ...)
Po ustanowieniu połączenia port można zamknąć. Wskazówka: Użyj uwierzytelniania klucza. W przeciwnym razie musisz bardzo szybko wpisać swoje hasło.