Si en un nuestro equipo tenemos corriendo algún servicio de red al que otras personas se conectan de manera remota (podemos nombrar a FTP y SSH como ejemplos), es importante que tomemos otras medidas para restringir el acceso a los mismos. Esto, por supuesto, no nos exime de la necesidad de configurar cada servicio debidamente de manera individual. Una medida básica para permitir el acceso a los servicios de red (basándonos en el origen de la conexión y en el tipo de servicio) es el uso de los envoltorios TCP, tema que trataremos en este post y en el siguiente.
Envoltorios TCP: los fundamentos
En palabras simples, los envoltorios TCP (comúnmente llamados TCP wrappers) proveen reglas de control de acceso para servicios de red. Cuando se hace una petición de red a nuestro servidor, los envoltorios TCP utilizan como referencia los archivos /etc/hosts.allow y /etc/hosts.deny para determinar si el equipo cliente puede utilizar el servicio en cuestión.
Es importante aclarar que los TCP wrappers constituyen una medida adicional de seguridad, pero no reemplaza la necesidad de un firewall. Es más, al disponer de ambas herramientas nos aseguraremos de que nuestro sistema no posea un SPOF (punto único de falla, o Single Point Of Failure en inglés) en cuanto se refiere a la protección de los servicios de red.
En ambos archivos, cada línea constituye una regla de control de acceso, y la última línea de cada archivo debe estar vacía (logramos esto al presionar Enter luego de escribir la última regla). Las reglas se leen de arriba hacia abajo (primero en hosts.allow y luego en hosts.deny), y una vez que se encuentra una regla para un servicio dado, el mismo no vuelve a ser analizado. Por esa razón, el orden en el que se escriban las reglas en los dos archivos mencionados anteriormente es de suma importancia.
En el próximo post mostraremos cómo determinar si un servicio dado admite el uso de TCP wrappers, y en tal caso, cómo escribir reglas para los mismos. ¡Nos leemos en breve!