Come proteggere una porta in linux : Il “non sapere” non giustifica l’arroganza.

L’arroganza si associa sempre alla non conoscenza.

Ieri ho pubblicato un post “Porta RDP : della serie “cose da utilizzatori Microsoft”  nel quale cercavo di spiegare che esporre da un sistema Microsoft il servizio RDP (su qualunque porta una persona possa scegliere ) è molto pericoloso, quasi un suicidio.

Subito è arrivata la bordata di un classico utilizzatore Microsoft , abituato da anni a non pensare e ad informarsi, che affermava con una certa arroganza  , che noi smanettoni di Linux (il concetto di sistemista o esperto in sicurezza purtroppo è a lui sconosciuto) sapevamo solo denigrare un sistema operativo “perfetto e sicuro” e che con Linux ci sono gli stessi problemi. Ma la cosa che mi fa sorridere è che questa persona guadagna e vive proprio grazie all’informatica. Bene !

Ora, mostro come proteggere una porta esposta con knockd.  Mai e poi mai uno scan sulle porte rileverà la presenza della nostra porta da proteggere e il relativo servizio in risposta. Ed è solo un metodo…… Ah è tutto gratuito!

 knockd

proteggere una porta in Linux

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 cercano subito 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 XXXX 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: Se volete proteggere la porta 22 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 XXXX  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 XXXX -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

[opencloseXXXX]
sequence = 3030:udp,3020:tcp,3000:udp      (potete scgliere qualsiasi porta con qualsiasi ordine)
seq_timeout = 25
tcpflags = syn,ack
start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp –syn –dport XXXX -j ACCEPT
cmd_timeout =20
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp –syn –dport XXXX -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 – esempio porta 22

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 utilizzare la porta XXXX. Se il procedimento fosse stato fatto per la porta 22

ssh user@mioserverip

e il gioco e’ fatto ! Abbiamo visto come proteggere una porta in Linux.

Giovanni Popolizio

 

 

 

 

 

Key: proteggere una porta in linux, proteggiamo una porta, mascherare una porta, Knockd