¿Cómo puedo restringir a un usuario SSH específico para que se conecte solo desde una IP o nombre de host?

Tengo un servidor de monitoreo que requiere los detalles de conexión SSH de una cuenta de usuario que no sea sudo de cada caja que monitorea. ¿Hay alguna manera de configurar una cuenta de usuario específica para que solo pueda iniciar sesión desde una IP específica (o, mejor aún, nombre de host)? No quiero restringir la capacidad de otros usuarios en el servidor para poder conectarse desde otras direcciones (de lo contrario, solo usaría un firewall), o usar la autenticación de contraseña solo para el servicio de monitoreo .

Ver man sshd_config . Existe la posibilidad de agregar el bloque AllowUsers donde puede especificar el usuario y el host de esta manera:

 AllowUsers [email protected] # or IP 

Por supuesto, debe especificar también otros usuarios de los que desea permitir el inicio de sesión, si tiene alguno.

Otra solución (depende de la corrección de errores)

Cuando lo pienso una vez más, existe la posibilidad de modificar su sshd_config esta manera:

 Match Host !hostname DenyUsers user Match Host hostname AllowUsers user 

Esto bloquearía fácilmente a todos los usuarios, excepto al user del hostname de hostname y desde cualquier otra parte, bloquearía al user .

PERO no funciona, debido a algunos errores reportados en sentido ascendente [1] [2]. Pero prometimos que se solucionará en el próximo lanzamiento.

Puede usar comodines para la línea AllowUsers en el /etc/ssh/sshd_config . Entonces sería factible agregar la línea:

 AllowUsers *@192.168.1.100 

O:

 AllowUsers *@hostname 

Para permitir que todos desde esa dirección IP o acceso de nombre de host.

Recuerda:

 service ssh restart 

Una vez que haya realizado los cambios, siempre y cuando esté en una versión anterior a 15.04. 15.04 usa systemd ahora, por lo que tiene un mecanismo diferente para controlar los servicios.

Según las páginas del manual , esto debería funcionar:

 DenyUsers [email protected]"!host,*" 

Probé esto en Debian y pareció funcionar correctamente.

Dado que este es el resultado de búsqueda más importante en google, creo que la gente también debería estar al tanto de configurar permisos en el archivo /etc/hosts.allow (cortesía de la publicación del blog de Cameron Oltmann al respecto):

Para limitar el acceso ssh a un cuadro de linux basado en la dirección IP de origen, edite /etc/hosts.allow:

 sshd : localhost : allow sshd : 192.168.0. : allow sshd : 99.151.250.7 : allow sshd : mydomain.net : allow sshd : ALL : deny 

La entrada anterior permitirá el acceso ssh desde localhost, la subred 192.168.0.x, la dirección IP única 99.151.250.7 y mydomain.net (asumiendo que mydomain.net tiene un registro ptr en su lugar para facilitar la búsqueda inversa). A todas las demás direcciones IP se les negará el acceso a sshd.

Notas: puede permitir o denegar según la dirección IP, la subred o el nombre de host. Listar las reglas en orden de más a menos específico. El archivo solo se lee hasta que se encuentra una línea coincidente, por lo que si comienza con ssdh: ALL: deny, no se permitirán conexiones ssh.

Y debería poder usar [email protected] en este archivo, por este enlace de lifewire.com :

Las formas más complejas daemon @ host y user @ host se explican en las secciones sobre patrones de punto final del servidor y en las búsquedas de nombre de usuario del cliente, respectivamente.

    Intereting Posts