Xinetd e Identd

El otro día me pidieron que revisara la configuración de un sistema RHEL5 que tenía configurado un servidor CVS autenticado vía LDAP contra NDS-Novell. Al parecer cuando se accedía al servicio vía VPN desde una VLAN aislada, las conexiones con el CVS iban excesivamente lentas, mientras que en la Intranet iban a la velocidad habitual.

Analizando el patrón del tráfico desde el servidor CVS con tcpdump, pude comprobar que por cada conexión que se realizaba al servidor, había una petición desde este hacia el cliente por el puerto TCP/113. Este puerto es el que usa el servicio Identd, para identificar usuarios en conexiones TCP/IP. Después de un rato buscando al final descubrí que el origen de estas conexiones estaba en la opción USERID que había configurada en las líneas log_on_success y log_on_failure de varios de los servicios que tenía configurados en /etc/xinetd.d/*, y en concreto en el fichero de CVS. Esta opción hacía que cada conexión exitosa o fallida hacia el servicio lanzara una conexión IdentD para identificar el usuario. Cuando la conexión venía desde la VPN, el firewall truncaba este flujo y la conexión desde el servidor CVS no obtenía respuesta, por lo que tenía que esperar a que expirara el timeout.

La solución a este problema es tan simple como eliminar las apariciones de la opción USERID de todos los ficheros /etc/xinetd.d/*, y luego reiniciar el servicio /etc/init.d/xinetd restart.

La imagen la he sacado de la galería de Zorraquino.

1 comentario:

bersuit.vera dijo...

Por suerte el anterior administrador de CVS, en mi actual trabajo ya comentó esas lineas :-)