¿Cómo restringir el acceso de "Inicio de sesión remoto" (ssh) solo a ciertos rangos de IP?

20

¿Alguien puede decirme cómo restringir el acceso SSH solo a ciertos rangos de IP (por ejemplo, red local) y no a todo Internet? Supongo que esto debe hacerse a través del firewall.

Michal M
fuente

Respuestas:

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 ofrece estos ejemplos:

# /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

El programa de envoltura TCP en Mac OS X es: tcpd

TJ Luoma
fuente
3

No probé esto, pero lo intentaría en la 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
fuente
1

Si está detrás de un enrutador y no asignó el puerto a su computadora, eso efectivamente deshabilita el acceso SSH desde Internet.

Gerry
fuente
Sí, soy consciente de eso. Desafortunadamente, esta no es realmente una solución para mí, ya que es para mi MacBook Pro, que ocasionalmente está conectada a redes con IP externa y sin enrutador intermedio.
Michal M
1
Eso parece muy poco probable, y suponiendo que solo tenga un adaptador de red, eso implicaría que no hay una red 'local' si una dirección IP pública está vinculada a ella.
Gerry
Poco probable o no, realmente no importa, ¿verdad? Además de la situación de IP externa, considere las redes WiFi públicas. Sé qué redes son seguras para mí y me gustaría restringir el acceso solo a estas redes. Mi pregunta es un poco más genérica, aunque esa fue mi intención.
Michal M
Sugeriría reformular la pregunta entonces. Parece que está buscando incluir en la lista blanca (algunos) rangos de IP para algunos servicios en el firewall.
Gerry
Hecho como se sugiere. Salud.
Michal M