Cómo Restringir el Acceso SSH a una IP o Host Específico

Tabla de contenidos

Para proteger el acceso a tu servidor, es una buena práctica restringir las conexiones SSH a direcciones IP específicas o nombres de host. Esto se puede lograr utilizando TCP Wrappers, una herramienta que proporciona un filtrado básico del tráfico entrante. En este tutorial, te mostraremos cómo configurar esta restricción paso a paso, utilizando los archivos /etc/hosts.allow y /etc/hosts.deny.

 

Crear los Archivos de Configuración

Si los archivos /etc/hosts.allow y /etc/hosts.deny no existen en tu sistema, puedes crearlos fácilmente con el siguiente comando:

				
					sudo touch /etc/hosts.{allow,deny}

				
			

Permitir Conexiones SSH desde IPs Específicas

Ahora, configura las direcciones IP o nombres de host desde los cuales deseas permitir el acceso SSH:

Abre el archivo /etc/hosts.allow con un editor de texto, como nano:

				
					sudo nano /etc/hosts.allow
				
			

Añade una línea sshd para permitir una dirección IP específica. Por ejemplo, para permitir el acceso desde 172.16.0.2, añade lo siguiente:

				
					sshd: 172.168.0.2
				
			

Guardar y cerrar el archivo.

Puedes añadir más direcciones IP utilizando una lista separada por comas:

				
					sshd: 172.168.0.2, 192.168.0.150, 10.62.152.15
				
			

También puedes permitir subredes completas o nombres de host específicos:

				
					sshd: 172.168.0.
sshd: localhost
sshd: 192.168.0.
				
			

Denegar Todas las Conexiones SSH Entrantes

Para bloquear todas las conexiones SSH por defecto (excepto las que se permitirán más adelante), sigue estos pasos:

Abre el archivo /etc/hosts.deny con un editor de texto, como nano:

				
					sudo nano /etc/hosts.deny
				
			

Añade la siguiente línea para denegar todas las conexiones SSH entrantes:

				
					sshd: ALL
				
			

Guarda y cierra el archivo.

Este paso bloquea todas las conexiones SSH al servidor de manera predeterminada.

Recomendaciones y Consideraciones

  • Cuidado con las IPs Dinámicas: Si estás configurando estas restricciones en un servidor remoto y tu dirección IP es dinámica (es decir, cambia con el tiempo), podrías perder el acceso al servidor si tu IP cambia.
  • Añade tu IP a hosts.allow antes de bloquear: Es crucial asegurarte de que tu IP esté en el archivo /etc/hosts.allow antes de añadir sshd: ALL en hosts.deny. Si no lo haces y pierdes la conexión SSH, no podrás acceder al servidor, lo que podría requerir acceso físico o asistencia externa para solucionarlo.

  • Verifica las reglas antes de aplicar: Haz una revisión de las IPs y reglas que estás añadiendo para evitar bloqueos no deseados.

  • No necesitas reiniciar el SSH daemon: Los cambios en estos archivos toman efecto inmediatamente sin necesidad de reiniciar el servicio SSH.

Nota:
Todos los comandos y configuraciones indicadas en este artículo deben ser ejecutados bajo tu propia responsabilidad. Asegúrate de entender completamente los cambios que estás realizando en tu sistema. No nos responsabilizamos por cualquier daño o pérdida de acceso resultante de la implementación de estos procedimientos.