5 millors pràctiques per prevenir els atacs d'inici de sessió de força bruta SSH


Els servidors que executen SSH solen ser un objectiu suau per als atacs de força bruta. Els pirates informàtics creen constantment eines de programari i robots innovadors per automatitzar atacs de força bruta que augmenten encara més el risc d'intrusió.

En aquesta guia, explorem alguns dels consells que podeu implementar per protegir els vostres servidors SSH dels atacs de força bruta als derivats de Debian.

Desactiveu l'autenticació de contrasenya SSH i activeu l'autenticació de clau SSH

El mètode d'autenticació predeterminat per a SSH és l'autenticació de nom d'usuari/contrasenya. Però, com hem vist, l'autenticació de contrasenya és propensa a atacs de força bruta. Per estar segur, es recomana implementar l'autenticació SSH basada en claus on l'autenticació és possible mitjançant parells de claus SSH públiques i privades. La clau privada roman a l'ordinador del client mentre la clau pública es copia al servidor.

Durant l'autenticació de clau SSH, el servidor comprova si l'ordinador client té la clau privada. Si la comprovació té èxit, es crea una sessió d'intèrpret d'ordres o l'ordre enviada al servidor remot s'executa correctament. Tenim una guia completa sobre com configurar l'autenticació basada en clau SSH.

Fins i tot després de configurar l'autenticació basada en clau, el vostre servidor encara és susceptible a atacs de força bruta per la senzilla raó que l'autenticació de contrasenya encara està activa. Això s'ha de desactivar.

Per tant, editeu el fitxer de configuració SSH predeterminat.

$ sudo vim /etc/ssh/sshd_config

Estableix el paràmetre PasswordAuthentication en no tal com es mostra.

PasswordAuthentication no

A continuació, deseu el fitxer i torneu a carregar SSH per aplicar els canvis.

$ sudo systemctl reload ssh

Implementar l'eina de prevenció d'intrusions Fail2ban

Escrit en Python, Fail2ban és un marc de prevenció d'intrusions de codi obert que escaneja els fitxers de registre dels serveis per detectar errors d'autenticació i prohibeix les IP que fallen repetidament les comprovacions d'autenticació de contrasenyes durant un període de temps especificat.

Fail2ban supervisa constantment els fitxers de registre del servidor per a intents d'intrusió i altres activitats nefastes, després d'un nombre predefinit d'errors d'autenticació, en la majoria dels casos, 3 intents fallits d'inici de sessió, Fail2ban bloqueja automàticament l'amfitrió remot per accedir al servidor i l'amfitrió es manté en un A la presó per un període de temps específic.

En fer-ho, Fail2ban redueix significativament la taxa d'intents d'autenticació de contrasenyes incorrectes. Consulteu la nostra guia sobre com podeu instal·lar i configurar Fail2ban a Linux per protegir el vostre servidor dels atacs de Bruteforce.

Limiteu el nombre màxim d'intents d'autenticació SSH

Una altra manera senzilla de protegir el vostre servidor dels atacs de força bruta és limitant el nombre d'intents d'inici de sessió SSH. De manera predeterminada, s'estableix en 3, però si, per casualitat, s'estableix en un valor més alt, configureu-lo en 3 intents de connexió com a màxim.

Per exemple, per establir el màxim d'intents de connexió a 3, establiu el paràmetre MaxAuthTries a 3 com es mostra

MaxAuthTries = 3

Un cop més, deseu els canvis i torneu a carregar el servei SSH.

$ sudo systemctl reload ssh

Implementeu embolcalls TCP per limitar l'accés SSH dels clients

Els embolcalls TCP són una biblioteca que proporciona una llista de control d'accés (ACL) basada en l'amfitrió que restringeix l'accés als serveis TCP per part de clients remots en funció de les seves adreces IP

Els amfitrions remots no accedeixen als serveis del sistema. Els embolcalls TCP utilitzen els fitxers de configuració /etc/hosts.allow i /etc/hosts.deny (en aquest ordre) per determinar si el client remot pot accedir a un servei específic o no.

Normalment, aquests fitxers es comenten i tots els amfitrions es permeten a través de la capa d'embolcalls TCP. Les regles per permetre l'accés a un servei determinat es col·loquen al fitxer /etc/hosts.allow i tenen prioritat sobre les regles del fitxer /etc/hosts.deny.

La millor pràctica recomana bloquejar totes les connexions entrants. Per tant, obriu el fitxer /etc/hosts.deny.

$ sudo vim /etc/hosts.deny

Afegiu la línia següent.

ALL: ALL

Deseu els canvis i sortiu del fitxer.

A continuació, accediu al fitxer /etc/hosts.allow.

$ sudo vim /etc/hosts.allow

Configureu els amfitrions o dominis que es poden connectar al servidor mitjançant SSH tal com es mostra. En aquest exemple, només permetem que dos hosts remots es connectin al servidor (173.82.227.89 i 173.82.255.55) i neguem la resta.

sshd: 173.82.227.89 173.82.255.55
sshd: ALL: DENY

Deseu els canvis i sortiu del fitxer de configuració.

Per provar-ho, intenteu connectar-vos al servidor des d'un amfitrió que no estigui entre aquells als quals teniu permès l'accés. Hauríeu d'obtenir un error de permís tal com es mostra.

$ ssh [email 

kex_exchange_identification: read: Connection reset by peer
Connection reset by 173.82.235.7 port 22
lost connection

Implementeu l'autenticació de dos factors SSH

L'autenticació de dos factors proporciona una capa de seguretat addicional a l'autenticació de contrasenya, fent que el vostre servidor sigui més segur dels atacs de força bruta. Una solució d'autenticació de dos factors molt utilitzada és l'aplicació Google Authenticator i tenim una guia ben documentada sobre com podeu configurar l'autenticació de dos factors.

Aquest va ser un resum de les 5 millors pràctiques que podeu implementar per evitar atacs d'inici de sessió de SSH Brute Force i garantir la seguretat del vostre servidor. També podeu llegir Com protegir i endurir el servidor OpenSSH.