¿Cómo permitir que sólo las máquinas con una IP especificada inicien sesión a través de ssh?

¿Cómo permitir que sólo las máquinas con una IP especificada inicien sesión a través de ssh?

Quiero permitir que solo las máquinas con IP permitidas inicien sesión en mi sistema a través de ssh.

Por ejemplo, userAsolo se puede usar una IP xx.xx.xx.xxo yy.yy.yy.yypara iniciar sesión a través de ssh, y ninguna otra IP puede iniciar sesión como userA. Y userBsolo puede usar ip zz.zz.zz.zzpara iniciar sesión a través de ssh, ninguna otra ip que no sea la que zz.zz.zz.zzpuede iniciar sesión como userB.

¿Cómo debo configurar mi Linux para lograr esto?

Respuesta1

Además agregue /etc/ssh/sshd_configlo 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_rhostscomo requiredmódulo en /etc/pam.d/ssh. Esto permite a cada usuario especificar en su propio .rhostsarchivo desde dónde puede conectarse.

Tenga en cuenta que los módulos de autenticación en el pam.darchivo no se consultarán para los inicios de sesión con clave pública (por ejemplo, tengo auth required pam_deny.soque evitar los inicios de sesión con contraseña en mis máquinas). Todavía se utilizan otros módulos ( account, sessionetc.).

información relacionada