HowtoSicurezza Informatica

Usiamo 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 e usiamo knockd

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 !