Quiero permitir que solo las máquinas con IP permitidas inicien sesión en mi sistema a través de ssh.
Por ejemplo, userA
solo se puede usar una IP xx.xx.xx.xx
o yy.yy.yy.yy
para iniciar sesión a través de ssh, y ninguna otra IP puede iniciar sesión como userA
. Y userB
solo puede usar ip zz.zz.zz.zz
para iniciar sesión a través de ssh, ninguna otra ip que no sea la que zz.zz.zz.zz
puede iniciar sesión como userB
.
¿Cómo debo configurar mi Linux para lograr esto?
Respuesta1
Además agregue /etc/ssh/sshd_config
lo siguiente:
AllowUsers [email protected] [email protected] userA
AllowUsers [email protected] userB
Luego reinicie el demonio SSH.
Puede utilizar comodines como se describe enPatronessección de lamanual ssh_config.
Respuesta2
Puedes hacerlo a través de iptables.
Todas las conexiones desde la dirección 1.2.3.4 a SSH (puerto 22):
iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
Denegar todas las demás conexiones SSH:
iptables -A INPUT -p tcp --dport 22 -j DROP
Respuesta3
Un método (si utiliza PAM para la autenticación) es especificarlo pam_rhosts
como required
módulo en /etc/pam.d/ssh
. Esto permite a cada usuario especificar en su propio .rhosts
archivo desde dónde puede conectarse.
Tenga en cuenta que los módulos de autenticación en el pam.d
archivo no se consultarán para los inicios de sesión con clave pública (por ejemplo, tengo auth required pam_deny.so
que evitar los inicios de sesión con contraseña en mis máquinas). Todavía se utilizan otros módulos ( account
, session
etc.).