2.3. Envolturas TCP y xinetd

El control de acceso a los servicios de redes es una de las tareas de seguridad más importantes que enfrentan los administradores de servidores. Red Hat Enterprise Linux pone a su disposición varias herramientas para este propósito. Por ejemplo, los cortafuegos de iptables filtran, dentro de una pila de redes de kernel, los paquetes de red no esperados. Para los servicios de redes que los utilizan las envolturas TCP añaden una capa adicional de protección al definir los hosts que tienen o no permiso para conectarse a los servicios de redes "wrapped". Un servidor de redes con envolturas es el súper servidor xinetd. Este servicio se denomina súper servidor puesto que controla las conexiones para un subconjunto de servicios de redes y refina un mayor control de acceso.
Figura 2.4, “Control de acceso a servicios de redes” es una ilustración básica de cómo funcionan las herramientas para proteger los servicios de redes.
Control de acceso a servicios de redes

Figura 2.4. Control de acceso a servicios de redes

Esta capítulo se enfoca en el rol de las envolturas TCP y xinetd en el control de acceso a los servicios de redes y revistas de cómo pueden utilizarse estas herramientas para mejorar tanto el ingreso como la administración de uso. Consulte Sección 2.6, “IPTables” para obtener mayor información acerca de los cortafuegos con iptables.

2.3.1. Envolturas TCP

Los paquetes de envolturas TCP (tcp_wrappers y tcp_wrappers-libs) están instalados de forma predeterminada y proporcionan un control de acceso de host a los servicios de redes. El componente más importante dentro del paquete es la biblioteca /lib/libwrap.a or /lib64/libwrap.a. En términos generales, un servicio de envolturas TCP es uno que ha sido recopilado a nombre de la biblioteca libwrap.a.
Cuando se hace un intento de conexión a un servicio de envolturas TCP, el servicio primero hace referencia a los archivos de acceso de host (/etc/hosts.allow y /etc/hosts.deny) para determinar si el cliente está autorizado para conectarse. En la mayoría de los casos, luego usa el demonio de syslog (syslogd) para escribir el nombre del cliente que lo solicita y el servicio solicitado para /var/log/secure o /var/log/messages.
Si un cliente tiene permiso para conectarse, las envolturas TCP liberan el control de la conexión al servicio solicitado y no hacen parte de la comunicación entre el cliente y el servidor.
Además de acceder al control y registro, las envolturas TCP pueden ejecutar comandos para interactuar con el cliente antes de negar o liberar el control de la conexión al servicio de red solicitado.
Puesto que las envolturas TCP son una adición valiosa para el arsenal de herramientas de seguridad de cualquier administrador del servidor, la mayoría de los servicios dentro de Red Hat Enterprise Linux se conectan a la biblioteca libwrap.a. Algunas de estas aplicaciones incluyen /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/xinetd.

Nota

Para determinar si el binario de servicio de redes está conectado a libwrap.a, escriba el siguiente comando como usuario de root:
ldd <binary-name> | grep libwrap
Remplace <binary-name> por el nombre del binario de servicio de redes.
Si el comando retorna directamente al indicador de comandos sin ninguna salida, entonces el servicio de redes no se vinculará a libwrap.a.
El ejemplo a continuación indica que /usr/sbin/sshd está vinculado a libwrap.a:
[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x00655000)
[root@myServer ~]#

2.3.1.1. Ventajas de las envolturas TCP

Las envolturas de TCP proporcionan las siguientes ventajas sobre las técnicas de control de servicios de red:
  • La transparecia tanto del cliente como del servicio de red protegido — desconocen que las envolturas TCP están en uso. Los usuarios legítimos se registran y conectan al servicio solicitado mientras que las conexiones de los clientes no autorizados fallan.
  • Administración centralizada de múltiples protocolos — Las envolturas TCP operan independientemente de los servicios de red que ellas protegen, permitiendo así que muchas aplicaciones de servidor compartan un conjunto común de archivos de configuración de control de acceso, para una administración más sencilla.