Como restringir o acesso do "Login Remoto" (ssh) apenas a determinados intervalos de IP?

20

Alguém pode me dizer como restringir o acesso SSH apenas a determinados intervalos de IP (por exemplo, rede local) e não a Internet inteira? Eu acho que isso tem que ser feito via firewall.

Michal M
fonte

Respostas:

23

De man sshd:

/etc/hosts.allow
/etc/hosts.deny
Access controls that should be enforced by tcp-wrappers are defined here.  
Further details are described in hosts_access(5).

https://debian-administration.org/article/87/Keeping_SSH_access_secure oferece estes exemplos:

# /etc/hosts.allow
sshd: 1.2.3.0/255.255.255.0
sshd: 192.168.0.0/255.255.255.0

# /etc/hosts.deny
sshd: ALL

O programa wrapper TCP no Mac OS X é: tcpd

TJ Luoma
fonte
3

Eu não testei isso, mas tentaria isso no terminal:

sudo ipfw add allow src-ip 10.0.0.0/8,172.16.0.0/16,192.168.0.0/16 dst-ip me dst-port 22
sudo ipfw add reject src-ip any dst-ip me dst-port 22
Max Ried
fonte
1

Se você está atrás de um roteador e não mapeou a porta para o seu computador, isso desabilita efetivamente o acesso SSH da Internet.

Gerry
fonte
Sim, eu estou ciente disso. Infelizmente, isso não é realmente uma solução para mim, pois é para o meu MacBook Pro, que ocasionalmente está conectado a redes com IP externo e sem roteador no meio.
Michal M
11
Isso parece muito improvável, e supondo que você tenha apenas um adaptador de rede, isso implicaria que não há rede 'local' se um endereço IP público estiver vinculado a ela.
Gerry
Improvável ou não, realmente não importa, não é? Além da situação IP externa, considere as redes WiFi públicas. Sei quais redes são seguras para mim e gostaria de restringir o acesso apenas a essas redes. Minha pergunta é um pouco mais genérica, porém, qual era minha intenção.
Michal M
Eu sugiro reformular a pergunta então. Parece que você está procurando na lista de permissões (alguns) intervalos de IP para alguns serviços no firewall.
Gerry
Feito como sugerido. Felicidades.
Michal H