Quero permitir que apenas máquinas com IP(s) permitido(s) façam login no meu sistema via ssh.
Por exemplo, userA
pode usar apenas ip xx.xx.xx.xx
ou yy.yy.yy.yy
fazer login via ssh, e nenhum outro ip pode fazer login como o userA
. E userB
pode usar apenas ip zz.zz.zz.zz
para fazer login via ssh, nenhum ip diferente do que zz.zz.zz.zz
pode fazer login como userB
.
Como devo configurar meu Linux para conseguir isso?
Responder1
Adicione /etc/ssh/sshd_config
o 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_rhosts
como um required
módulo no /etc/pam.d/ssh
. Isso permite que cada usuário especifique em seu próprio .rhosts
arquivo de onde ele tem permissão para se conectar.
Observe que os módulos de autenticação no pam.d
arquivo não serão consultados para logins pubkey (por exemplo, tenho auth required pam_deny.so
que impedir logins com senha em minhas máquinas). Outros módulos ( account
e session
assim por diante) ainda são usados.