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

3

Eu quero permitir que apenas máquinas com ip (s) permitidos façam login no meu sistema via ssh.

Por exemplo, userA pode usar apenas ip xx.xx.xx.xx ou yy.yy.yy.yy para efetuar login via ssh, e nenhum outro ip pode efetuar login como userA . E userB pode usar apenas ip zz.zz.zz.zz para efetuar login via ssh, nenhum ip diferente de zz.zz.zz.zz pode logar como userB .

Como devo configurar meu Linux para conseguir isso?

    
por Marcus Thornton 15.02.2016 / 07:54

3 respostas

10

Em /etc/ssh/sshd_config , adicione o seguinte:

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

Em seguida, reinicie o daemon SSH.

Você pode usar curingas como descrito na seção Padrões do manual ssh_config .

    
por 15.02.2016 / 08:18
1

Você pode fazer isso via iptables.

Todas as conexões do endereço 1.2.3.4 para 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
    
por 15.02.2016 / 08:08
0

Uma abordagem (se você estiver usando o PAM para autenticação) é especificar pam_rhosts como um módulo required em /etc/pam.d/ssh . Isso permite que cada usuário especifique em seu próprio arquivo .rhosts , onde eles podem se conectar.

Observe que os módulos de autenticação no arquivo pam.d não serão consultados para logins de pubkey (por exemplo, eu tenho auth required pam_deny.so para impedir logins de senha em minhas máquinas). Outros módulos ( account , session e assim por diante) ainda são usados.

    
por 15.02.2016 / 10:56