/etc/inetd.conf
lista esses servidores e suas portas habituais. O comando inetd
ouve em todas elas; quando ele detecta uma conexão em qualquer uma delas, ele executa o programa servidor correspondente.
/etc/inetd.conf
descreve um servidor através de sete campos (separados por espaços):
/etc/services
).
stream
para conexão TCP, dgram
para datagrams UDP.
tcp
ou udp
.
wait
ou nowait
, para dizer ao inetd
quando ele deve esperar ou não pelo fim do processo lançado antes de aceitar outra conexão. Para conexões TCP, facilmente multiplicáveis (multiplexable) , você geralmente pode usar nowait
. Para programas respondendo sobre UDP, você deve usar nowait
apenas se o servidor é capaz de gerenciar várias conexões em paralelo. Você pode usar um ponto como sufixo nesse campo, seguido pelo número máximo de conexões autorizadas por minuto (o limite padrão é 256).
argv[0]
em C).
Exemplo 9.1. Excerto do /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
é frequentemente usado no arquivo /etc/inetd.conf
. Ele permite limitar conexões de entrada aplicando regras de controle de acesso, documentadas na página de manual hosts_access(5), e que são configuradas nos arquivos /etc/hosts.allow
e /etc/hosts.deny
. Uma vez que tenha sido determinado que a conexão está autorizada, o tcpd
executa o servidor real (como o in.fingerd
no nosso exemplo). Vale apena notar que o tcpd
conta com o nome sob o qual ele foi invocado (isto é, o primeiro argumento, argv[0]
) para identificar o programa real a rodar. Então você não deveria iniciar a lista de argumentos com o tcpd
mas com o programa que tem que ser envolto.