Protege el acceso a tu servidor con TCP Wrapper
TCP Wrapper es un sistema que nos permite permitir, denegar o filtrar el acceso a los servicios de un servidor con sistema operativo UNIX (como por ejemplo Linux o BSD).
Con este artículo aprenderás cómo funciona y aprenderás a configurar los TCP Wrappers en tu servidor.
Los ficheros principales implicados en TCP Wrappers son «/etc/host.allow» y «/etc/host.deny». En el fichero /etc/host.allow se indican las políticas permisivas y en el fichero /etc/host.deny las políticas restrictivas.
Las políticas o reglas para filtrar el acceso al servidor desde la red se definen de la siguiente forma:
Demonios o lista de demonios del sistema : Lista de equipos : Acción a realizar
A continuación detallamos cada campo:
– Demonios: Son servicios que existen en sistemas operativos Unix como por ejemplo sshd (servicio SSH), slapd (servicio LDAP) o proftpd (servicio FTP). Para crear una regla común para varios demonios debemos indicar su nombre separados por comas. Existe también el comodín «ALL» que hace que dicha política afecte a todos los demonios del sistema.
– Lista de equipos: En este campo indicamos a que equipos aplicamos esta política. Podemos indicar una dirección IP, un rango de direcciones IP, o un nombre de dominio. También podremos usar el comodín «ALL» para que esta política afecte a todos los equipos que intenten acceder. También existe el operador «EXCEPT» que nos permite eliminar de la regla uno o varios equipos.
– Acción a realizar: Aquí debemos indicar si la política permite el acceso o deniega el acceso a los demonios indicados anteriormente. Las palabras que se usa denegar el acceso es «deny». En caso de dejar este campo vacío, significa que permitimos el acceso a los demonios y equipos indicados. Opcionalmente, podemos enviar comandos con la directiva «spawn». Esta directiva suele ser utilizada para la creación de registros de conexión al propio equipo. Existe también la directiva «twist» que sustituye el servicio o demonio solicitado por el comando que le hemos especificado. Esto significa que por defecto se deniega el acceso. Esto es muy útil para la creación de honeypots.
Ejemplo de uso de TCP Wrapper
Ahora pondremos en práctica todo lo que hemos explicado anteriormente.
Como primer ejemplo vamos a denegar el acceso a un servidor SSH instalado en el equipo solo a una determinada IP. Al ser una política permisiva (permite el acceso a todos los equipos excepto a la IP que se le indica) la vamos a definir utilizando el fichero /etc/host.allow .
Escribiremos lo siguiente para aplicar esta política:
sshd —> Deminio del servicio SSH
192.168.5.135—> Ip a la que vamos a aplicar la política
deny —> Denegamos el acceso
Comprobamos que desde el equipo con la IP 192.168.5.135 no se puede acceder al servicio SSH:
A continuación vamos a denegar el acceso al servicio SSH a todos los equipos. Además, gracias a la directiva «spawn» vamos a guardar un registro del intento de conexión a nuestro servidor. Con %d imprimimos el demonio que denegamos y %h el equipo que se intenta conectar.
Una vez que un equipo se intenta conectar a la máquina en la que tenemos la política anterior configurada, se crea una linea en el fichero que hemos indicado con el demonio al que hemos denegado el acceso y la IP desde donde se intentaba conectar.
Espero que os haya sido útil este artículo y os haya gustado
Julio Caballero
@jucab1989