Como permitir que apenas máquinas com ip especificado façam login via ssh?

Como permitir que apenas máquinas com ip especificado façam login via ssh?

Quero permitir que apenas máquinas com IP(s) permitido(s) façam login no meu sistema via ssh.

Por exemplo, userApode usar apenas ip xx.xx.xx.xxou yy.yy.yy.yyfazer login via ssh, e nenhum outro ip pode fazer login como o userA. E userBpode usar apenas ip zz.zz.zz.zzpara fazer login via ssh, nenhum ip diferente do que zz.zz.zz.zzpode fazer login como userB.

Como devo configurar meu Linux para conseguir isso?

Responder1

Adicione /etc/ssh/sshd_configo seguinte:

AllowUsers [email protected] [email protected] userA
AllowUsers [email protected] userB

Em seguida, reinicie o daemon SSH.

Você pode usar curingas conforme descrito emPadrõesseção domanual ssh_config.

Responder2

Você pode fazer isso através do iptables.

Todas as conexões do endereço 1.2.3.4 ao SSH (porta 22):

iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT

Negue todas as outras conexões SSH:

iptables -A INPUT -p tcp --dport 22 -j DROP

Responder3

Uma abordagem (se você estiver usando o PAM para autenticação) é especificar pam_rhostscomo um requiredmódulo no /etc/pam.d/ssh. Isso permite que cada usuário especifique em seu próprio .rhostsarquivo de onde ele tem permissão para se conectar.

Observe que os módulos de autenticação no pam.darquivo não serão consultados para logins pubkey (por exemplo, tenho auth required pam_deny.soque impedir logins com senha em minhas máquinas). Outros módulos ( accounte sessionassim por diante) ainda são usados.

informação relacionada