/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
, tcp6
, udp
, o udp6
.
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).
user.group
.
argv[0]
en C).
Ejemplo 9.1. Extracto de /etc/inetd.conf
#:BSD: Shell, login, exec and talk are BSD protocols. talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd ntalk dgram udp wait nobody.tty /usr/sbin/in.ntalkd in.ntalkd #:INFO: Info services ident stream tcp nowait nobody /usr/sbin/nullidentd nullidentd finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd
tcpd
en el archivo /etc/inetd.conf
. Permite limitar las conexiones entrantes aplicando reglas de control de acceso, documentadas en la página del manual hosts_access(5), y que puede configurar en los archivos /etc/hosts.allow
y /etc/hosts.deny
. Una vez que determinado 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 le 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.