Como probablemente sepa, podemos usar SSH en un sistema Linux remoto por el mismo usuario varias veces. ¡No hay límite! Simplemente puede abrir varias ventanas de Terminal (o varias pestañas en la Terminal) e iniciar varias sesiones SSH desde cada pestaña con la misma cuenta de usuario. ¿Qué pasa si quieres cambiar este comportamiento? Por ejemplo, es posible que desee permitir solo una sesión SSH activa para un usuario. Eso es lo que vamos a ver ahora. Este breve tutorial explica cómo limitar la cantidad de inicios de sesión SSH por usuario, grupo o sistema en Linux.
En la mayoría de las distribuciones de Linux, hay un archivo llamado limits.conf donde puede definir el número máximo de sesiones SSH simultáneas para un usuario o grupo de usuarios. Si el usuario en particular intenta SSH en el sistema más de los inicios de sesión SSH permitidos, se le negará el acceso.
Limite el número de inicios de sesión SSH por usuario o grupo en Linux
El límites.conf el archivo generalmente se encuentra en /etc/security/ directorio en sistemas basados en RPM y DEB.
Vaya a su sistema remoto y edite /etc/security/limits.conf archivo con sudo o raíz usuario:
$ sudo nano /etc/security/limits.conf
Para limitar el número de sesiones SSH simultáneas para un usuario específico , por ejemplo ostechnix , Agregue la siguiente línea al final:
ostechnix hard maxlogins 1
Aquí,
- ostécnica - Nombre del usuario en mi servidor CentOS 8.
- inicios de sesión máximos 1 - Número máximo de inicios de sesión para este usuario. En mi caso es 1 . Puede aumentar este valor para permitir el número máximo. de sesiones SSH activas por usuario.
- duro - Hacer cumplir límites estrictos.
Si desea limitar el número de conexiones SSH para un grupo de usuarios , agrega esto:
@mygroup hard maxlogins 1
Reemplazar @migrupo con el nombre de tu grupo. En este escenario, todos los usuarios de mygroup no pueden iniciar sesión a través de SSH más de una vez.
Si desea limitar las sesiones SSH de todos los usuarios (globales) en el sistema, agregue esta línea en su lugar:
* hard maxlogins 1
Aquí, el asterisco significa global (es decir, todos los usuarios en el sistema). Una vez que haya definido el número máximo de sesiones SSH por usuario/grupo o todo el sistema, guarde y cierre el archivo.
Ahora intente conectar SSH al sistema con el mismo usuario más de una vez. Verá un mensaje de error como el siguiente.
Too many logins for 'ostechnix'. Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37 Connection to 192.168.225.52 closed.
Como puede ver en el resultado anterior;
- Primero, me SSH en el servidor CentOS 8 remoto como usuario raíz a través de SSH y la conexión se estableció correctamente.
- Luego, abrí una nueva pestaña y SSH en el mismo servidor que el usuario normal "ostechnix" y la conexión fue exitosa.
- Finalmente, traté de SSH en el mismo servidor con el mismo usuario (es decir, ostechnix) y esta vez la conexión fue denegada. El usuario "ostechnix" no puede ingresar al sistema mediante SSH más de una vez . Porque su número máximo de sesiones SSH permitidas para este usuario es solo una tiempo. Por lo tanto, se deniega la conexión SSH para este usuario.
En este ejemplo, restringimos la cantidad total de sesiones SSH activas para un usuario o grupo o para todos los usuarios del sistema. También es posible limitar las sesiones SSH por sistema. Por ejemplo, podemos permitir solo un inicio de sesión SSH desde un sistema, no por usuario o grupo.
Limitar el número total de sesiones SSH por sistema
Para limitar el número total de conexiones SSH activas por sistema, agregue la siguiente línea en /etc/security/limits.conf archivo:
* hard maxsyslogins 1
Aquí, maxsyslogins se refiere al número máximo de inicios de sesión en el sistema, no por usuario o por grupo.
Intente ingresar al sistema mediante SSH y no podrá acceder al sistema más que el número máximo de inicios de sesión permitidos en el sistema.
¿Ver? El usuario "ostechnix" ni siquiera puede usar SSH por primera vez. Porque el número total de inicios de sesión SSH permitidos es solo uno para el sistema. En esta ocasión también se ha tenido en cuenta la conexión SSH realizada por el usuario root. Por lo tanto, el número máximo de inicios de sesión de SSH superó el límite definido y se denegó el acceso al usuario "ostechnix". Espero que lo entiendas.
Tenga en cuenta que esta restricción se aplica solo a los usuarios normales. El usuario raíz aún puede iniciar sesión a través de SSH cualquier cantidad de veces.
Lectura relacionada:
- Permitir o denegar el acceso SSH a un usuario o grupo en particular en Linux
- Restringir el acceso a servidores Linux mediante contenedores TCP
- Ejecutar comandos en sistemas Linux remotos a través de SSH
- Cómo crear un alias SSH en Linux
- Cómo usar SSH en un directorio particular en Linux