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
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.
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 !