Identd

Tengo un sistema Linux conectado premanentemente a una red TCP/IP interna, y
recibo todos los días, en /var/log/messages, siempre a la misma hora, el
siguiente error:
...
Jun 18 02:00:01 qf_qc2 inetd[5948]: execv /usr/sbin/in.identd: No such file
or directory
...
Jun 19 02:00:01 qf_qc2 inetd[6393]: execv /usr/sbin/in.identd: No such file
or directory
...
Que es precisamente la hora en la que se ejecuta un script de backup remoto
a un servidor de backup que se accede por ftp. Allí se transfiere la copia
de seguridad, y esta trasferencia, aparentemente es correcta.
¿Qué está pasando? ¿Es procupante este mensaje permanente en /var/messages?
Muchas Gracias
Respuesta
1
Cada día, a las 2 horas A.M. tu Linux intenta ejecutar el demonio identd, pero no encuentra el fichero ejecutable, que debería estar ubicado exactamente en /usr/sbin/in.identd. Ese es el problema.
Y ¿Por qué intenta ejecutar identd? Porque al hacer el FTP que comentas, el servidor destino solicita una información de identificación a tu Linux. Dicha solicitud se efectúa por el puerto 113, correspondiente al servicio auth, que resuelve el demonio identd:
[root@bankhacker /root]# grep auth /etc/services
auth 113/tcp authentication tap ident
El servicio auth suele gestionarlo el servidor inetd. Podemos ver, en su fichero de configuración, como aparece auth/identd:
[root@bankhacker /root]# grep identd /etc/inetd.conf
auth stream tcp wait root /usr/sbin/in.identd in.identd -e -o
Queda claro que inetd intenta ejecutar /usr/sbin/in.identd cuando recibe una solicitud de tipo auth. Pero si en tu Linux no existe /usr/sbin/in.identd, inetd devuelve un mensaje de error en /var/log/messages como el que indicas en tu pregunta.
Puedes solucionarlo de dos maneras:
1.- Instalando el demonio identd: Busca el rpm de identd, si tienes Red Hat, (en RedHat 6.2 se llama por ejemplo: pidentd-3.0.10-5.i386.rpm) y lo instalas con rpm -i pidentd-3.0.10-5.i386.rpm
2.- Eliminando la necesidad de ejecutar identd: Edita /etc/inetd.conf y comenta con un carácter # la llamada correspondiente:
[root@bankhacker /root]# vi /etc/inetd.conf
...
# auth stream tcp wait root /usr/sbin/in.identd in.identd -e -o
...
Luego reinicias inetd (en Red Hat lo puedes reiniciar simplemente con el script /etc/rc.d/init.d/inetd restart).
A partir de ese momento, no verás más este mensaje de error en /var/log/messages.
El servicio identd se utiliza para mapear usuarios/procesos a puertos en uso. Por ejemplo, la mayoría de los servidores irc intentan averiguar quién se está conectando a ellos haciendo una petición identd, lo cual consiste básicamente en preguntarle al servidor identd desde el ordenador cliente qué información tiene sobre un número de puerto, y la respuesta puede varias desde ninguna (si nadie está utilizando ese puerto en particular) a un nombre de usuario, un nombre de grupo, un id de proceso y otra información interesante. La configuración por defecto de la mayoría de las distribuciones es que el identd está activado (es elegante ejecutarlo, los servidores de irc y las versiones más recientes de sendmail comprueban las respuestas de identd), y sólo distribuirán el nombre de usuario. El uso principal del identd es permitir a los sistemas remotos algún tipo de forma de seguir la pista de los usuarios que se están conectando a sus servidores, irc, telnet, correo, u otros, por propósitos de autentificación (no es una buena idea, ya que es muy fácil de falsear). La universidad local de Edmonton requiere que se ejecute el identd si se quiere hacer un telnet a cualquiera de los servidores de shell, principalmente de forma que puedan seguir con rapidez la pista de las cuentas comprometidas.
Ejecutar el identd en tu máquina ayudará a otros administradores a la hora de hacer el seguimiento de problemas, puesto que no sólo consiguen la dirección IP y la hora del problema, sino que utilizando identd pueden averiguar el nombre del usuario. Esta forma es una espada de doble filo, mientras que proporciona información útil para seguir a usuarios maliciosos (definitivamente la gente a la que se quiere mantener alejada de los servidores) también se puede utilizar para conseguir información de los usuarios del sistema, lo cual dé como resultado que sus cuentas sean comprometidas. Ejecutar identd en los servidores sólo tiene sentido si están albergando cuentas de shell.
Identd soporta bastantes características, y se puede configurar con sencillez para que se ejecute como usuario no-root. Dependiendo de las políticas de seguridad, se puede querer o no dar mucha información, o se puede querer informar lo máximo posible.
En general, recomendaría utilizar el identd en servidores con cuentas de usuario shell, o si no deshabilitarlo, principalmente debido al número de ataques de denegación de servicio a los que es susceptible. Por contra, ejecutar identd hará la vida mucho más fácil a otros usuarios a la hora de seguir pistas provenientes de tu servidor, y además te ayuda a controlar la seguridad de tu servidor: es otro log adicional para hacer seguimiento.. Como siempre, en seguridad, hay que elegir entre dos caras de una misma moneda.
El identd que viene con la mayoría de las distribuciones es más configurable de lo que mucha gente piensa. Puedes deshabilitarlo para usuarios específicos (ellos pueden hacer un fichero .noident), puedes registrar todas las solicitudes de identd (lo recomendamos), además puedes poner identd para que devuelva un NO OBSTANTE en vez de un nombre de usuario o incluso NO-USER.
http://howto.tucows.com/man/man8/identd.8.html => Manpage de identd en Inglés
http://segurinet.com/gsal/identd.htm => Explicación exhaustiva de identd en Castellano
http://www.gulic.org/old.web/cosecha/Teresa/Security-HOWTO/Security-HOWTO-latex/Security-HOWTO/node56.html => identd en Castellano
Vale, muchas gracias. Ya veré que solución de las dos elijo, pero ahora ya sé de qué va el asunto. Si tengo problemas al instalar el rpm o al configurar el inetd.conf ya te preguntaré... gracias, de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas