Existe um método canônico para restringir o acesso ssh a certos endereços IP no Unix?

1

Eu verifiquei man páginas relacionadas a ssh no OS X e outros sistemas e tentei usar hosts.allow e hosts.deny arquivos conforme este post e sshd_config sem sucesso.

$ cat /etc/hosts.allow 
sshd: 192.168.0.4/255.255.255.0
$ cat /etc/hosts.deny 
sshd: ALL

Em sshd_config , tentei usar Match sem sucesso (não me lembro exatamente da configuração).

Meu sistema é OS X 10.8.5 e eu quero que o sshd permita o acesso do IP local 192.168.0.4/24 ou seu nome local e o negue a todos os outros hosts, incluindo o gateway 192.168.0.1.

Atualização A solução proposta abaixo por Stephen Kitt funciona, exceto pelo formato AllowUsers name/pattern@hostname . Isso registra o seguinte

sshd[31723]: debug1: attempt 6 failures 5 [preauth]
sshd[31723]: debug1: keyboard-interactive devs  [preauth]
sshd[31723]: debug1: auth2_challenge: user=test devs= [preauth]
sshd[31723]: debug1: kbdint_alloc: devices 'pam' [preauth]
sshd[31723]: debug1: auth2_challenge_start: trying authentication method 'pam' [preauth]
sshd[31723]: Postponed keyboard-interactive for invalid user test from 192.168.0.4 port 55680 ssh2 [preauth]
sshd[31723]: error: PAM: authentication error for illegal user test from 192.168.0.4 via 192.168.0.5
sshd[31723]: Failed keyboard-interactive/pam for invalid user test from 192.168.0.4 port 55680 ssh2
sshd[31723]: Disconnecting: Too many authentication failures for test [preauth]
sshd[31723]: debug1: do_cleanup [preauth]
    
por 1.61803 02.05.2015 / 13:32

1 resposta

3

Em vez de usar Match , se você deseja permitir o login a partir de um único host, o seguinte funciona para mim (em sshd_config ):

AllowUsers *@192.168.0.4

Ele só permite que os usuários façam login a partir de 192.168.0.4, usando qualquer login no destino. Você pode substituir * por um login específico, se desejar, e especificar vários padrões separados por espaços; por exemplo:

AllowUsers [email protected] [email protected]
    
por 02.05.2015 / 20:02