Introducció
Requisits previs
Pas 1: instal·lació de Knockd
Pas 2: regles d'iptables
Pas 3: configuració de Knockd
Pas 4: prova
Conclusió
Introducció
A més de canviar el port predeterminat per a SSH i utilitzar un parell de claus per a l'autenticació, es pot utilitzar el toc de ports per protegir encara més (o més exactament, enfosquir) el vostre servidor SSH. Funciona rebutjant connexions al port de xarxa SSH. Això amaga essencialment el fet que esteu executant un servidor SSH fins que es fa una seqüència d'intents de connexió a ports predefinits. Molt segur i senzill d'implementar, el cop de port és una de les millors maneres de protegir el vostre servidor dels intents maliciosos de connexió SSH.
Requisits previs
- Un servidor Vultr amb Ubuntu 18.04.
- Accés Sudo.
Abans de seguir els passos següents, si no heu iniciat sessió com a usuari root, obteniu un intèrpret d'ordres arrel temporal executant sudo -ii introduint la vostra contrasenya. Alternativament, podeu anteposar sudoles ordres que es mostren en aquest article.
Pas 1: instal·lació de Knockd
Knockd és el paquet que s'utilitza en combinació amb iptables per implementar port knocking al vostre servidor. També cal el iptables-persistentpaquet ' '.
apt update
apt install -y knockd iptables-persistent
Pas 2: regles d'iptables
Executeu les ordres següents en ordre:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
iptables-save > /etc/iptables/rules.v4
Aquestes ordres faran el següent, respectivament:
- Instruïu a iptables perquè mantingui vives les connexions existents.
- Digueu a iptables que deixi qualsevol connexió al port tcp/22 (si el vostre dimoni SSH escolta en un port diferent del 22, haureu de modificar l'ordre anterior en conseqüència).
- Deseu aquestes dues regles perquè persisteixin després d'un reinici.
Pas 3: configuració de Knockd
Amb l'editor de text que escolliu, obriu el fitxer /etc/knockd.conf.
Veureu el següent:
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Hauríeu de canviar la seqüència de ports (trieu els números de port a dalt 1024i no els facin servir altres serveis) i emmagatzemar-lo de manera segura. Aquesta combinació s'ha de tractar com una contrasenya. Si s'oblida, perdràs l'accés a SSH. Ens referirem a aquesta nova seqüència com a x,y,z.
la seq-timeoutlínia és el nombre de segons que Knockd esperarà que el client completi la seqüència de trucada de port. Seria una bona idea canviar-ho per una cosa més gran, sobretot si el cop de port es farà manualment. Tanmateix, un valor de temps d'espera més petit és més segur. 15Es recomana canviar-lo a , ja que trucarem manualment en aquest tutorial.
Canvieu la seqüència d'obertura als ports escollits:
[openSSH]
sequence = x,y,z
Canvieu el valor de l'ordre al següent:
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Ara canvieu la seqüència de tancament en conseqüència:
[closeSSH]
sequence = z,y,x
Deseu els canvis i sortiu, i obriu el fitxer /etc/default/knockd:
- Substitueix
START_KNOCKD=0per START_KNOCKD=1.
- Afegiu la línia següent al final del fitxer:
KNOCKD_OPTS="-i ens3"(substituïu ens3-lo pel nom de la vostra interfície de xarxa pública si és diferent).
- Guardar i sortir.
Ara comença Knockd:
systemctl start knockd
Si ara us desconnecteu del vostre servidor, haureu de trucar als ports x, y, i ztornar-vos a connectar.
Pas 4: prova
Ara no us podreu connectar al vostre servidor SSH.
Podeu provar el toc de port amb un client telnet.
Els usuaris de Windows poden iniciar telnet des de l'indicador d'ordres. Si telnet no està instal·lat, accediu a la secció "Programes" del Tauler de control i, a continuació, localitzeu "Activar o desactivar les funcions de Windows". Al tauler de funcions, localitzeu "Client Telnet" i activeu-lo.
Al vostre terminal/indicador d'ordres, escriviu el següent:
telnet youripaddress x
telnet youripaddress y
telnet youripaddress z
Feu-ho tot en quinze segons, ja que aquest és el límit imposat a la configuració. Ara, intenteu connectar-vos al vostre servidor mitjançant SSH. Serà accessible.
Per tancar l'accés al servidor SSH, executeu les ordres en ordre invers.
telnet youripaddress z
telnet youripaddress y
telnet youripaddress z
Conclusió
La millor part de l'ús de port knocking és que si es configura juntament amb l'autenticació de clau privada, pràcticament no hi ha cap possibilitat que algú altre pugui entrar tret que algú conegués la vostra seqüència de port-knocking i tingués la vostra clau privada.