Korak 1: Instaliranje potrebnih paketa
Korak 2: Konfiguriranje iptablesa za korištenje ove značajke
Korak 3: Isprobajmo
Zaključak
Do sada ste vjerojatno promijenili svoj zadani SSH port. Ipak, hakeri mogu lako skenirati raspone portova kako bi otkrili taj port - ali kucanjem porta možete prevariti skenere portova. Način na koji to funkcionira je da se vaš SSH klijent pokušava spojiti na niz portova, od kojih će svi odbiti vašu vezu, ali otključati određeni port koji dopušta vašu vezu. Vrlo siguran i jednostavan za instalaciju. Uklanjanje portova jedan je od najboljih načina da zaštitite svoj poslužitelj od neovlaštenih pokušaja SSH povezivanja.
Ovaj članak će vas naučiti kako postaviti kucanje porta. Napisan je za Debian 7 (Wheezy), ali može raditi i na drugim verzijama Debiana i Ubuntua.
Korak 1: Instaliranje potrebnih paketa
Pretpostavljam da ste već instalirali SSH poslužitelj. Ako niste, pokrenite sljedeće naredbe kao root:
apt-get update
apt-get install openssh-server
apt-get install knockd
Zatim instalirajte iptables.
apt-get install iptables
Nema puno paketa za instalaciju - to je ono što ga čini savršenim rješenjem za zaštitu od pokušaja grube sile, a istovremeno ga je lako postaviti.
Korak 2: Konfiguriranje iptablesa za korištenje ove značajke
Budući da će se vaš SSH port zatvoriti nakon što se povežete, moramo se pobrinuti da poslužitelj dopušta da ostanete povezani dok blokirate druge pokušaje povezivanja. Izvršite ove naredbe na svom poslužitelju kao root.
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
apt-get install iptables-persistent
iptables-save
To će omogućiti da postojeće veze ostanu, ali blokirate sve ostalo na vašem SSH portu.
Sada, konfigurirajmo knockd.
Ovdje se događa čarolija - moći ćete odabrati koje će portove trebati prvo otkucati. Otvorite uređivač teksta za datoteku /etc/knockd.conf.
nano /etc/knockd.conf
Postojat će dio koji izgleda kao sljedeći blok.
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
U ovom ćete odjeljku moći promijeniti redoslijed portova koje je potrebno izbaciti. Za sada, mi ćemo ostati s lukama 7000, 8000, i 9000. Promjena seq_timeout = 5se seq_timeout = 10, a za closeSSHdio, učiniti isto za seq_timeoutliniju. U closeSSHodjeljku također postoji redak slijeda koji također trebate izmijeniti.
Moramo omogućiti knockd, stoga ponovno otvorite uređivač kao root.
nano /etc/default/knockd
Promijenite 0 u odjeljku START_KNOCKDu 1, zatim spremite i izađite.
Sada počni kucati:
service knockd start
Sjajno! Sve je instalirano. Ako prekinete vezu s poslužiteljem, morat ćete srušiti portove 7000, 8000 i 9000 da biste se ponovno povezali.
Korak 3: Isprobajmo
Ako je sve ispravno instalirano, ne biste se trebali moći spojiti na svoj SSH poslužitelj.
Možete testirati lupanje porta s telnet klijentom.
Korisnici Windowsa mogu pokrenuti telnet iz naredbenog retka. Ako telnet nije instaliran, pristupite odjeljku "Programi" na upravljačkoj ploči, a zatim pronađite "Uključi ili isključi značajke sustava Windows". Na ploči sa značajkama pronađite "Telnet Client" i omogućite ga.
U svoj terminal/naredbeni redak upišite:
telnet youripaddress 7000
telnet youripaddress 8000
telnet youripaddress 9000
Učinite sve to za deset sekundi, jer je to ograničenje nametnuto u konfiguraciji. Sada se pokušajte povezati sa svojim poslužiteljem putem SSH-a. Bit će pristupačan.
Da biste zatvorili SSH poslužitelj, pokrenite naredbe obrnutim redoslijedom.
telnet youripaddress 9000
telnet youripaddress 8000
telnet youripaddress 7000
Zaključak
Najbolji dio korištenja port knockinga je da ako se konfigurira uz provjeru autentičnosti privatnog ključa, praktički nema šanse da bi netko drugi mogao ući osim ako netko ne zna portove i privatni ključ.