Com protegir i endurir el servidor OpenSSH


Quan es tracta d'accedir a dispositius remots com ara servidors, encaminadors i commutadors, el protocol SSH és molt recomanable donada la seva capacitat per xifrar el trànsit i allunyar qualsevol persona que intenti escoltar les vostres connexions.

Sigui com sigui, la configuració predeterminada de SSH no és infal·lible i calen ajustaments addicionals per fer el protocol més segur. En aquesta guia, explorem diferents maneres que podeu utilitzar per assegurar i reforçar la instal·lació d'OpenSSH al servidor.

1. Configura l'autenticació SSH sense contrasenya

De manera predeterminada, SSH requereix que els usuaris proporcionin les seves contrasenyes quan inicien sessió. Però aquí està la cosa: els pirates informàtics poden endevinar contrasenyes o fins i tot realitzar un atac de força bruta mitjançant eines de pirateria especials i accedir al vostre sistema. Per estar segur, es recomana l'ús de l'autenticació sense contrasenya SSH.

El primer pas és generar un parell de claus SSH que consta d'una clau pública i una clau privada. La clau privada resideix al vostre sistema amfitrió mentre que la clau pública es copia al servidor remot.

Una vegada que la clau pública s'hagi copiat correctament, ara podeu connectar SSH al servidor remot sense problemes sense haver de proporcionar una contrasenya.

El següent pas és desactivar l'autenticació de contrasenya. Per aconseguir-ho, cal modificar el fitxer de configuració SSH.

$ sudo vim /etc/ssh/sshd_config

Dins del fitxer de configuració, desplaceu-vos i localitzeu la següent directiva. Descomenteu i canvieu l'opció yes per no

PasswordAuthentication no

A continuació, reinicieu el dimoni SSH.

# sudo systemctl restart sshd

En aquest punt, només tindreu accés al servidor remot mitjançant l'autenticació de clau SSH.

2. Desactiveu les sol·licituds de connexió sense contrasenya SSH d'usuari

Una altra manera recomanada de reforçar la seguretat del vostre servidor és desactivar els inicis de sessió SSH dels usuaris sense contrasenyes. Això sona una mica estrany, però de vegades els administradors del sistema poden crear comptes d'usuari i oblidar-se d'assignar contrasenyes, que és una molt mala idea.

Per rebutjar les sol·licituds dels usuaris sense contrasenya, de nou, aneu al fitxer de configuració a /etc/ssh/sshd_config i assegureu-vos que teniu la directiva següent:

PermitEmptyPasswords no

A continuació, reinicieu el servei SSH perquè es realitzi el canvi.

$ sudo systemctl restart sshd

3. Desactiveu els inicis de sessió arrel SSH

És una obvietat què pot passar si un pirata informàtic aconsegueix forçar la vostra contrasenya d'arrel. Permetre l'inici de sessió arrel remot és invariablement una mala idea que podria posar en perill la seguretat del vostre sistema.

Per aquest motiu, sempre es recomana desactivar l'inici de sessió d'arrel remot SSH i en comptes d'adherir-se a un usuari normal no root. Una vegada més, aneu al fitxer de configuració i modifiqueu aquesta línia tal com es mostra.

PermitRootLogin no

Un cop hàgiu acabat, reinicieu el servei SSH perquè es realitzi el canvi.

$ sudo systemctl restart sshd

A partir d'ara, l'inici de sessió arrel remot es desactivarà.

4. Utilitzeu el protocol SSH 2

SSH es presenta en dues versions: el protocol SSH 1 i el protocol 2. El protocol SSH 2 es va introduir l'any 2006 i és més segur que el protocol 1 gràcies a les seves fortes comprovacions criptogràfiques, el xifratge massiu i els seus algorismes sòlids.

De manera predeterminada, SSH utilitza el protocol 1. Per canviar-ho al protocol 2 més segur, afegiu la línia següent al fitxer de configuració:

Protocol 2

Com sempre, reinicieu SSH perquè els canvis entrin en vigor.

$ sudo systemctl restart sshd

A partir d'ara, SSH utilitzarà el protocol 2 de manera predeterminada.

Per provar si el protocol SSH 1 ja és compatible, executeu l'ordre:

$ ssh -1 [email 

Obtindreu un error que diu El protocol SSH v.1 ja no és compatible.

En aquest cas, l'ordre era:

$ ssh -1 [email 

A més, només podeu especificar l'etiqueta -2 només per assegurar-vos que el Protocol 2 és el protocol predeterminat en ús.

$ ssh -2 [email 

5. Establiu el valor d'inactivitat del temps d'espera de la connexió SSH

Deixar el vostre ordinador sense vigilància durant períodes prolongats de temps amb una connexió SSH inactiva pot suposar un risc de seguretat. Algú pot passar-hi i fer-se càrrec de la vostra sessió SSH i fer el que vulgui. Per solucionar el problema, és prudent, per tant, establir un límit de temps d'inactivitat que, quan se superi, es tancarà la sessió SSH.

Una vegada més, obriu el fitxer de configuració SSH i localitzeu la directiva ClientAliveInterval. Assigna un valor raonable, per exemple, he establert el límit a 180 segons.

ClientAliveInterval 180

Això implica que la sessió SSH s'eliminarà si no es registra cap activitat al cap de 3 minuts, que equival a 180 segons.

A continuació, reinicieu el dimoni SSH per efectuar els canvis realitzats.

$ sudo systemctl restart sshd

6. Limiteu l'accés SSH a determinats usuaris

Per obtenir una capa de seguretat addicional, podeu definir els usuaris que necessiten el protocol SSH per iniciar sessió i realitzar tasques remotes al sistema. D'aquesta manera, no hi ha cap usuari que intenti accedir al vostre sistema sense la vostra aprovació.

Com sempre, obriu el fitxer de configuració i afegiu la directiva AllowUsers seguida dels noms dels usuaris que voleu concedir. A l'exemple següent, he permès als usuaris tecmint i james tenir accés remot al sistema mitjançant SSH. Qualsevol altre usuari que intenti obtenir accés remot serà bloquejat.

AllowUsers tecmint james

A continuació, reinicieu SSH perquè els canvis persisteixin.

$ sudo systemctl restart sshd

7. Configureu un límit per als intents de contrasenya

Una altra manera d'afegir una capa de seguretat és limitant el nombre d'intents d'inici de sessió SSH de manera que, després d'un nombre d'intents fallits, la connexió cau. Així que una vegada més, aneu al fitxer de configuració i localitzeu la directiva \MaxAuthTries i definiu un valor per al nombre màxim d'intents.

En aquest exemple, el límit s'ha establert en 3 intents, tal com es mostra.

MaxAuthTries 3

I, finalment, reinicieu el servei SSH com en els escenaris anteriors.

També podeu trobar útils aquests articles relacionats amb SSH següents:

  • Com instal·lar el servidor OpenSSH 8.0 des de la font a Linux
  • Com instal·lar Fail2Ban per protegir SSH a CentOS/RHEL 8
  • Com canviar el port SSH a Linux
  • Com crear un túnel SSH o reenviament de ports a Linux
  • 4 maneres d'accelerar les connexions SSH a Linux
  • Com trobar tots els intents fallits d'inici de sessió SSH a Linux
  • Com desconnectar connexions SSH inactives o inactives a Linux

Aquest va ser un resum d'algunes de les mesures que podeu prendre per protegir les vostres connexions remotes SSH. És important afegir que sempre hauríeu d'assignar contrasenyes fortes als usuaris que tinguin accés remot per evitar atacs de força bruta. Esperem que hagis trobat aquesta guia perspicaz. Els vostres comentaris són molt benvinguts.