# FreeBSD Handbook/Redes/Servidores/inetd
## 29.2 O "Super-Servidor" inetd

Contribuição de Chern Lee. Atualizado por The FreeBSD Documentation Project.

### 29.2.1 Visão Geral

O inetd(8) algumas vezes é chamado de "Super-Servidor" pois gerencia conexões para diversos serviços. Quando uma conexão é atendida pelo inetd ele determina para que programa a conexão se destina, lança o processo específico e delega o socket ao mesmo (o programa é chamado com o socket do serviço como descritor de sua entrada padrão, saída padrão e saída de erro. Executar o inetd para serviços menos utilizados pode reduzir a carga total do sistema, comparando-se a executar cada serviço individualmente.
Primariamente, o inetd é usado para executar outros serviços, mas diversos protocolos simples são tratados diretamente, como chargen, auth e daytime.
Esta seção vai abordar as configurações básicas do inetd através de seus parâmetros de linha de comando e seu arquivo de configuração /etc/inetd.conf.

### 29.2.2 Configurações

O inetd é inicializado através do sistema rc(8). A opção inetd_enable é ajustada para "NO", por padrão, mas é muitas vezes ativada pelo sysinstall, dependendo da configuração escolhida pelo usuário. Colocando:
inetd_enable="YES"
ou
no /etc/inetd.conf vai ativar ou desativar a execução do inetd na inicialização do sistema. O comando:
pode ser executado para verificar a configuração atual.
Adicionalmente, parâmetros de linha de comando podem ser passados para o inetd através da opção inetd_flags.

### 29.2.3 Opções de Linha de Comando

Como a maioria dos daemons, o inetd possui várias opções que podem modificar seu comportamento. A lista completa é a seguinte:
inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname] [-p filename] [-R rate] [-s maximum] [configuration file]
As opções podem ser passadas ao inetd usando o parâmetro inetd_flags no /etc/inetd.conf. Por padrão o inetd_flags é definido como "-wW -C 60", que liga o encapsulamento TCP e evita que qualquer IP único solicite qualquer serviço mais do que 60 vezes em um minuto qualquer.
Embora mencionemos opção de taxa limite a seguir, os usuários mais novos podem notar que esses parâmetros normalmente não precisam ser modificados. Essas opções podem ser úteis caso você descubra que está recebendo um número excessivo de conexões. A lista completa de opções pode ser encontrada no manual do inetd(8).

#### -c máximo

    Especifica o número máximo padrão de invocações simultâneas de cada serviço. O padrão é ilimitado. Pode ser definido para cada serviço com o parâmetro max-child.

#### -C taxa

    Especifica o número máximo de vezes que um serviço pode ser chamado de um mesmo IP num mesmo minuto. O padrão é ilimitado. Pode ser definido para cada serviço com o parâmetro max-connections-per-ip-per-minute.

#### -R taxa

    Especifica o número de vezes que um serviço pode ser chamado por minuto. O padrão é 256. Uma taxa igual a 0 permite um número ilimitado de requisições.

#### -s máximo

    Especifica o número máximo de vezes que um serviço pode ser requisitado simultaneamente a partir de um IP único. O valor padrão é ilimitado. Pode ser definido separadamente para cada serviço com o uso do parâmetro max-child-per-ip.

### 29.2.4 inetd.conf

A configuração do inetd é feita no arquivo /etc/inetd.conf.
Quando uma modificação é feita no /etc/inetd.conf, o inetd pode reler sua configuração através do comando:

#### Exemplo 29.1- Recarregando o arquivo de configuração do inetd

Cada linha do arquivo de configuração especifica um serviço único. Os comentários no arquivo iniciam com um "#". O formato de cada entrada no /etc/inetd.conf é como mostrado a seguir:
Uma linha de exemplo para o ftpd(8) usando IPv4 poderia ser assim:

##### nome-do-serviço

    Este é o nome do serviço em questão. Ele precisa corresponder ao serviço listado no /etc/services. Isto determina qual porta o inetd precisa escutar. Se um novo serviço está sendo criado, ele precisa primeiramente ser colocado no /etc/services.

##### tipo-de-socket

    Pode ser stream, dgram, raw, ou seqpacket. stream precisa ser usado para daemons TCP baseados em conexão, enquanto dgram é usado para daemons usando o protocolo de transporte UDP.