Capítulo 17. Los wrappers TCP y el comando xinetd

El control del acceso a los servicios de red es una de las tareas de seguridad más importantes que un administrador de servidores debe enfrentar.Afortunadamente, bajo Red Hat Enterprise Linux, hay un gran número de herramientas que hacen justamente estas tareas. Por ejemplo, un cortafuegos basado en iptables dejan afuera los paquetes de red que no son bienvenidos dentro de la pila de red del kernel. Para los servicios de red que lo utilizan, los TCP wrappers añaden una capa adicional de protección mediante la definición de cuáles hosts tienen permitido conectarse a los servicios de red "wrapped". Uno de los servicios de red wrapped es el super servicio xinetd. Este servicio se le llama super servicio porque controla la conexión a un subconjunto de servicios de red y refina aún más el control de acceso.

La Figura 17-1 es una ilustración básica de cómo estas herramientas funcionan para proteger los servicios de red.

Figura 17-1. Control de acceso a los servicios de red

Este capítulo se basa en el papel de los TCP wrappers y de xinetd para controlar el acceso a los servicios de red y revisa cómo estas herramientas pueden ser usadas para mejorar la administración de la conexión y su uso. Para una discusión del uso de cortafuegos (firewalls) con iptables, consulte el Capítulo 18.

17.1. Wrappers TCP

El paquete TCP wrappers (tcp_wrappers) está instalado por defecto y proporciona control de acceso basado en host a los servicios de red. El componente más importante dentro del paquete es la biblioteca /usr/lib/libwrap.a. En términos generales, un servicio TCP wrapped es uno que ha sido compilado con la biblioteca libwrap.a.

Cuando un intento de conexión es hecho a un servicio wrapped TCP, el servicio primero referencia los archivos de acceso a host (/etc/hosts.allow y /etc/hosts.deny) para determinar si el cliente tiene permitido conectarse. En la mayoría de los casos, luego utiliza el demonio syslog (syslogd) para escribir el nombre del host solicitante y el servicio solicitado a /var/log/secure o /var/log/messages.

Si a un cliente se le permite conectarse, los wrappers TCP liberan el control de la conexión al servicio solicitado y no interfieren más con la comunicación entre el cliente y el servidor.

Además del control de acceso y registro, los wrappers TCP pueden activar comandos para interactuar con el cliente antes de negar o liberar el control de la conexión al servicio solicitado.

Puesto que los wrappers TCP son una utilidad de gran valor a las herramientas de seguridad de cualquier administrador de servidor, la mayoría de los servicios de red dentro de Red Hat Enterprise Linux están enlazados con la biblioteca libwrap.a. Algunas de tales aplicaciones incluyen /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/xinetd.

NotaNota
 

Para determinar si un binario de servicio de red está enlazado con la libreria libwrap.a, escriba el comando siguiente como usuario root:

strings -f <binary-name> | grep hosts_access

Reemplace <binary-name> con el nombre del binario de servicio de red.

Si aparece un indicador de comandos, entonces el servicio de red no está enlazado con libwrap.a.

17.1.1. Ventajas de los wrappers TCP

Los wrappers TCP ofrecen las siguientes ventajas básicas comparado con las otras técnicas de control de servicios de red:

  • Transparencia tanto para el host cliente y el servicio de red wrapped. — El cliente que se está conectando así como también el servicio de red wrapped no están al tanto de que están en uso los wrappers TCP. Los usuarios legítimos son registrados y conectados al servicio solicitado mientras que las conexiones de clientes prohibidos fallan.

  • Administración centralizada de múltiples protocolos. — Los wrappers TCP operan separadamente de los servicios de red que ellos protegen, permitiendo a muchas aplicaciones de servidor compartir un conjunto común de archivos de configuración para una administración más sencilla.