Ormai, probabilmente hai cambiato la tua porta SSH predefinita. Tuttavia, gli hacker possono facilmente scansionare gli intervalli di porte per scoprire quella porta - ma con il bussare alla porta, puoi ingannare gli scanner delle porte. Il modo in cui funziona è che il client SSH tenta di connettersi a una sequenza di porte, che rifiuteranno la connessione, ma sbloccano una porta specifica che consente la connessione. Molto sicuro e semplice da installare. Il port knocking è uno dei modi migliori per proteggere il server da tentativi di connessione SSH non autorizzati.
Questo articolo ti insegnerà come impostare il port knocking. È stato scritto per Debian 7 (Wheezy), ma potrebbe funzionare anche su altre versioni di Debian e Ubuntu.
Passaggio 1: installazione dei pacchetti richiesti
Presumo che tu abbia già installato un server SSH. In caso contrario, eseguire i seguenti comandi come root:
apt-get update
apt-get install openssh-server
apt-get install knockd
Quindi, installa iptables.
apt-get install iptables
Non ci sono molti pacchetti da installare - questo è ciò che lo rende la soluzione perfetta per proteggere dai tentativi di forza bruta pur essendo facile da configurare.
Passaggio 2: configurazione di iptables per utilizzare questa funzione
Poiché la tua porta SSH si chiuderà dopo la connessione, dobbiamo assicurarci che il server ti permetta di rimanere connesso mentre blocchi altri tentativi di connessione. Eseguire questi comandi sul server come 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
Ciò consentirà di mantenere le connessioni esistenti, ma bloccherà qualsiasi altra cosa alla porta SSH.
Ora configuriamo knockd.
È qui che accade la magia: sarai in grado di scegliere quali porte dovranno essere bussate all'inizio. Apri un editor di testo per il file /etc/knockd.conf.
nano /etc/knockd.conf
Ci sarà una sezione simile al seguente blocco.
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
In questa sezione, sarai in grado di cambiare la sequenza di porte che devono essere bussate. Per ora, rimarremo con le porte 7000, 8000 e 9000. Cambia seq_timeout = 5in seq_timeout = 10, e per la closeSSHsezione, facciamo lo stesso per la seq_timeoutlinea. C'è anche una linea di sequenza nella closeSSHsezione che devi modificare.
Dobbiamo abilitare knockd, quindi apri di nuovo l'editor come root.
nano /etc/default/knockd
Cambia lo 0 nella sezione START_KNOCKDin 1, quindi salva ed esci.
Ora inizia a bussare:
service knockd start
Grande! Tutto è installato. Se ti disconnetti dal tuo server, dovrai connettere le porte 7000, 8000 e 9000 per riconnetterti.
Passaggio 3: proviamolo
Se tutto è stato installato correttamente, non dovresti essere in grado di connetterti al tuo server SSH.
È possibile testare il port knocking con un client Telnet.
Gli utenti Windows possono avviare Telnet dal prompt dei comandi. Se telnet non è installato, accedi alla sezione "Programmi" del Pannello di controllo, quindi individua "Attiva o disattiva le funzionalità di Windows". Nel pannello delle funzionalità, individuare "Client Telnet" e abilitarlo.
Nel terminale / prompt dei comandi digitare:
telnet youripaddress 7000
telnet youripaddress 8000
telnet youripaddress 9000
Fallo tutto in dieci secondi, poiché questo è il limite imposto nella configurazione. Ora, prova a connetterti al tuo server tramite SSH. Sarà accessibile.
Per chiudere il server SSH, eseguire i comandi in ordine inverso.
telnet youripaddress 9000
telnet youripaddress 8000
telnet youripaddress 7000
Conclusione
La parte migliore dell'utilizzo del port knocking è che se è configurato insieme all'autenticazione con chiave privata, non c'è praticamente alcuna possibilità che qualcun altro possa entrare a meno che qualcuno non conosca le porte e la chiave privata.