knockd , bussa e ti sarà aperto. Difendiamo le nostre porte !

 knockd

Quando si dispone di un server accessibile dalla “rete”, gli hacker possono facilmente eseguire la scansione dell’ indirizzo IP e verificare la presenza di porte aperte (in particolare la porta 22 utilizzata per SSH) sul server. Un modo per nascondere il server agli hacker è knockd. Knockd è un server Port-knock. Ascolta tutto il traffico su una rete Ethernet o su altre interfacce disponibili, in attesa di sequenze speciali di port hit.

Vedremo come possiamo usare knockd per nascondere i servizi in esecuzione su un server Linux eheheh su Raspberry.

Come funziona knockd

Missione : Vogliamo proteggere la porta 22 del nostro server.

Come : Con knockd possiamo mettere in atto il mascheramento di una porta che si renderà attiva solo se “bussiamo” a due o più porte , con il protocollo che vogliamo, in un preciso ordine e in un determinato tempo.

 

Attenzione: tutta  la configurazione va fatta su una shell del nostro server in locale o in virtuale. No tramite connessione ssh !

Prima di tutto installiamo knockd

sudo apt-get update

sudo apt-get install knockd

 

usiamo knockd per difenderci

 

 

Abbiamo detto che dobbiamo difendere la porta 22  e quindi  creiamo una regola firewall per droppare (ignorare ) tutte le richieste che possano arrivare su questa porta.

Per farlo utilizziamo iptables e quindi

sudo iptables -A INPUT -p tcp –dport 22 -j DROP

sudo service iptables save

A questo punto ogni richiesta di connessione inviata sulla porta 22 verrà ignorata e lasciata scadere.

Ora andiamo a configurare il file /etc/knockd.conf

[options]
logfile = /var/log/knockd.log

[opencloseSSH]
sequence = 3030:udp,3020:tcp,3000:udp
seq_timeout = 25
tcpflags = syn,ack
start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp –syn –dport 22 -j ACCEPT
cmd_timeout =20
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp –syn –dport 22 -j ACCEPT

Dopo aver ricevuto un knock con esito positivo, il demone eseguirà il comando start, attenderà il tempo specificato in cmd_timeout, quindi eseguirà il comando stop. Questo è utile per chiudere automaticamente la porta dietro una richiesta positiva. La sequenza dei comandi utilizza entrambi i protocolli UDP e TCP.

Knockd logica di utilizzo
Knockd logica di utilizzo

avviamo il servizio
sudo service knockd start

rendiamo il suo avvio persistente ad ogni riavvio macchina

sudo chkconfig knockd on

bene…

ora sul nostro client installiamo ‘knockd’

e

knock mioserverip 3030:udp  3020:tcp 3000:udp

e dopo potremo

ssh user@mioserverip

e il gioco e’ fatto !

 

G.P.