/etc/inetd.conf
enumera estos servidores y sus puertos usuales. El programa inetd
escucha en todos estos puertos y cuando detecta una conexión a uno de ellos ejecuta el programa servidor correspondiente.
/etc/inetd.conf
describe un servidor con siete campos (separados con espacios):
/etc/services
).
stream
para una conexión TCP, dgram
para datagramas UDP.
tcp
o udp
.
wait
o nowait
para indicarle a inetd
si debe esperar o no a que el proceso ejecutado finalice antes de aceptar una nueva conexión. Para conexiones TCP, fáciles de gestionar simultáneamente, utilizará generalmente nowait
. Para programas que respondan sobre UDP debería utilizar nowait
sólo si el servidor es capaz de gestionar varias conexiones en paralelo. Puede agregar un punto al final de este campo seguido de la cantidad máxima de conexiones autorizadas por minuto (el límite predeterminado es 256).
argv[0]
en C).
Ejemplo 9.1. Extracto de /etc/inetd.conf
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd ident stream tcp nowait nobody /usr/sbin/identd identd -i
tcpd
en el archivo /etc/inetd.conf
. Permite limitar las conexiones entrantes aplicando reglas de control de acceso, documentadas en la página de manual hosts_access(5), y que puede configurar en los archivos /etc/hosts.allow
y /etc/hosts.deny
. Una vez que se determinó que la conexión está autorizada, tcpd
ejecuta el servidor real (en el ejemplo: in.fingerd
). Vale la pena aclarar que tcpd
necesita el nombre con el que se lo invoca (que es el primer parámetro: argv[0]
) para identificar el programa real a ejecutar. No debería iniciar la lista de parámetros con tcpd
sino con el programa subyacente.