como restringir o login do ssh a um ip ou host específico

5

Eu quero restringir o meu login ssh apenas para um endereço IP, então eu modifiquei o seguinte arquivo

$ nano /etc/ssh/sshd_config

e adicionei esta linha (ou seja, meu ip) esperando que funcione

 ListenAddress 172.168.0.21  

mas nenhuma conexão de sorte recusou eu não quero usar qualquer coisa iptables. Por que não funciona dessa maneira, como posso consertar e qualquer explicação?

    
por jspeshu 30.11.2010 / 13:49

3 respostas

7

Eu devo concordar com dunxd, IPTables não deve ser descontado como uma abordagem viável. Você está com sorte, no entanto, desde que você pode aproveitar tcpwrappers para o mesmo fim funcional. Embora mais complexo do que na superfície, o tcpwrappers essencialmente se resume a dois arquivos: /etc/hosts.allow e /etc/hosts.deny Se esses arquivos ainda não existirem, você poderá criá-los com segurança como arquivos vazios: sudo touch /etc/hosts.{allow,deny} .

Agora é hora de as coisas ficarem um pouco mais complicadas. A "melhor" abordagem para proteger o acesso à rede é definir sua entrada padrão e única do hosts.deny como ALL:ALL . No entanto, isso pode resultar em restrições de acesso não intencionais. Por este motivo, e os propósitos desta questão, deve ser suficiente inserir sshd:ALL em /etc/hosts.deny, o que impedirá o acesso de ssh ao host.

Todas as entradas em /etc/hosts.allow, no que diz respeito ao sshd, substituirão a regra de negação padrão: sshd: 172.168.0.21 permitirá acesso somente ao host 172.168.0.21 e negará todas as outras.

Os arquivos tcpwrappers aceitam uma lista de entradas separadas por vírgula, para que você possa acrescentar endereços à primeira entrada acima. Os tcpwrappers também aceitam endereços IP parciais como sub-redes, então você pode permitir todo o 172.168.0.0/24 como sshd: 172.168.0.

Por favor, refira-se à página de manual para detalhes adicionais. O tcpwrappers é realmente muito completo e eu recomendo ler mais do que o meu breve exame acima.

    
por 30.11.2010 / 14:41
12

Você pode usar a diretiva AllowUsers em / etc / ssh / sshd_config, por exemplo,

AllowUsers [email protected]

Se você fizer alguma alteração no seu arquivo sshd_config, não se esqueça de reiniciar o sshd.

da manpage do sshd_config

This keyword can be followed by a list of user name patterns,
separated by spaces.  If specified, login is allowed only for
user names that match one of the patterns.  ‘*’ and ‘?’ can be
used as wildcards in the patterns.  Only user names are valid; a
numerical user ID is not recognized.  By default, login is
allowed for all users.  If the pattern takes the form USER@HOST
then USER and HOST are separately checked, restricting logins to
particular users from particular hosts.
    
por 30.11.2010 / 14:12
0

Sem iptables eu diria que é impossível.

O uso de ListenAddress em sshd_config significa que você vincula o daemon ssh a esse endereço IP específico (local). Se o endereço IP não estiver no seu sistema, o sshd poderá falhar.

Parece que o sshd também usa o libwrapper, assim você também pode definir o seguinte:

em /etc/hosts.allow sshd: \ < endereço IP que você permite acessar em >

em /etc/hosts.deny TODOS: TODOS

É claro que eu aconselho você a ler as páginas do manual dos pacotes envolvidos.

    
por 30.11.2010 / 13:59

Tags