/etc/inetd.conf
lista esses servidores e suas portas habituais. O comando inetd
ouve em todas elas; quando 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 datagramas UDP.
tcp
, tcp6
, udp
ou udp6
.
wait
ou nowait
, para dizer ao inetd
quando 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).
user.group
.
argv[0]
em C).
Exemplo 9.1. Excerto do /etc/inetd.conf
#:BSD: Shell, login, exec e talk são protocolos BSD. 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: Serviços de informação ident stream tcp nowait nobody /usr/sbin/nullidentd nullidentd finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd
tcpd
é frequentemente usado no arquivo /etc/inetd.conf
. Permite limitar conexões de entrada aplicando regras de controle de acesso, documentadas na página de manual hosts_access(5), e 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 a pena notar que o tcpd
conta com o nome sob o qual foi invocado (isto é, o primeiro argumento, argv[0]
) para identificar o programa real a rodar. Então você não deve iniciar a lista de argumentos com tcpd
, mas com o programa que tem que ser envolto (wrapped).