RLINETD.CONF(5)

NOME
rlinetd.conf - ficheiro de configuração do rlinetd

DESCRIÇÃO
rlinetd.conf guarda informação de configuração para o rlinetd. Existe um pequeno número de construções de nível de topo semelhantes, diferindo principalmente em quais opções podem ser significativamente usadas com elas.

Todas as strings são citadas com o caractere ". Em algumas situações (ex. as directivas log, exec, e chroot), há um número de variáveis que podem ser substituídas numa string.
A menos que declarado em contrário, todos os números têm de ser positivos.

service "name" {
    ...
}

    Esta construção descreve um serviço. O parâmetro name é apenas para conveniência de nomeação, serve simplesmente para distinguir mensagens de relatórios e fornece uma predefinição para opções que podem aceitar logicamente um nome como um argumento.

    enabled
        Esta construção permite facilitar o activar e desactivar de serviços. O argumento pode ser ou yes ou no. O valor predefinido é yes. Definir isto para no desactiva serviços.

        Exemplo:
            enabled no;

    port
        Isto lista os portos onde o serviço deve estar disponível. Os portos podem ser listados numa string ou formato numérico. Se especificado, isto predefine para o nome do serviço a menos que o serviço seja um serviço RPC, que neste caso o valor do porto será atribuído dinamicamente pelo sistema.

        Exemplo:
            port "telnet", "rcmd", 56, 99;

    interface
        Isto especifica a quais interfaces os portos escutados devem ser associados. Recebe uma lista de endereços IP como um argumento, correspondente aos endereços configurados das interfaces requeridas. Se esta palavra-chave não for dada ou quando o valor especial any é atribuído a ela, o serviço irá unir-se a todas as interfaces disponíveis.

        Exemplos:
            interface 192.168.1.1, 192.168.1.2;

            interface any;

    exec
        Isto especifica a invocação do serviço. Pode ser feito um número de substituições dentro da string, por favor veja Modificadores de String em baixo.

        Exemplo:
            exec "/usr/sbin/in.telnetd -d";

    server
        Isto especifica o binário a ser executado, se diferente de exec.

        Exemplo:
            server "/usr/sbin/tcpd";

    protocol
        Isto especifica o protocolo socket a usar quando escuta em portos para o serviço. O argumento pode ser ou tcp ou udp. A definição predefinida para esta variável é tcp.

        Exemplo:
            protocol tcp;

    user
        Isto especifica o id de utilizador sob qual este serviço deve correr. Irá aceitar um argumento em formato ou simbólico ou numérico. A menos que seja fornecido group (veja em baixo), o id de grupo é também definido para o grupo primário do utilizador.

        Exemplo:
            user "nobody";

    group
        Isto especifica o id de grupo sob qual este serviço deve correr. Irá aceitar um argumento em formato ou simbólico ou numérico.

        Exemplo:
            group "system";

    backlog
        Isto é um argumento de backlog que será passado à chamada de sistema listen(2).

        Exemplo:
            backlog 30;

    instances
        Isto especifica o número máximo de instâncias de serviço que podem correr em simultâneo. A predefinição para esta variável é 40.

        Exemplo:
            instances 50;

    wait
        Esta directiva emula o comportamento de inetd(8) wait. O argumento pode ser ou yes ou no. O valor predefinido é no. Definir isto para yes também reinicia o valor da opção instances para 1.

        Exemplo:
            wait yes;

    nice
        Isto especifica a prioridade de processo para correr este serviço como. O argumento é passado directamente para a chamada de sistema setpriority(2). O valor pode ser negativo.

        Exemplo:
            nice -5;

    rpc
        Isto especifica que o serviço deve ser registado com o mapeador portmap(8) do sistema como um serviço RPC. Aceita uma lista de argumentos como se segue.

        rpc {
            name "string"; version 3,6,9-15,22;
        }

        O parâmetro name é opcional, e predefine para nome do serviço.

    chroot
        Isto especifica o directório raiz para o serviço. A string argumento pode aceitar modificadores como detalhado em Modificadores de String em baixo.

        Exemplo:
            chroot "/tftpboot/%O";

    log
        Esta directiva recebe dois argumentos. O primeiro tem de ser ou o nome simbólico de uma directiva log anteriormente especificada (vem em baixo), ou ou a palavra syslog sem citação. Se for a última, a mensagem será registada via chamada ao syslog(3). O segundo argumento é a mensagem que irá ser registada, sujeita aos modificadores detalhados em Modificadores de String em baixo.

        Exemplo:
            log syslog "Service from %O complete";

    tcpd
        Esta directiva faz com que sejam aplicados controlos de acesso como especificados por tcp_wrappers. Isto tem o mesmo efeito que invocar um serviço com o argumento server de /usr/sbin/tcpd (ou com o que o seu programa tcpd(8) é mantido), mas guarda o passo adicional de iniciar o programa. Irá aceitar até dois argumentos adicionais. O primeiro é um nome de serviço para aplicar contra as suas regras, e o segundo é um bloco de instruções para executar se corresponderem. Se não for especificado um nome, recorre ao nome do serviço. Se o bloco de instruções não for definido, usa por predefinição 'exit;'.

        Exemplos:
            tcpd "in.telnetd";

            tcpd { exec "/usr/local/bin/winnuke %O"; }

            tcpd "pointless" { echo "Hi guys, come on in."; }

            tcpd "defiant" { echo "500 Access denied from %O."; exit; }

    exit
        Esta directiva é apenas útil num argumento de bloco de instruções para a directiva tcpd. Note bem - não a usar (e não especificar alguma outra directiva de terminação,como o exec) irá resultar em que o serviço vá correr para sempre.

        Exemplo:
            exit;

    capability
        Esta directiva especifica as capacidades que este serviço deve ter quando corre. O argumento é uma string que é passada directamente para o cap_from_text(3). Sabemos, é uma descrição muito pobre, mas esta funcionalidade é de utilidade limitada e ao menos leia o ficheiro README.capabilities.

        Exemplo:
            capability "cap_setuid=ep";

    rlimit
        Esta directiva recebe dois argumentos. O primeiro é um símbolo que especifica o tipo de limite requerido. Estes estão listados mais abaixo. O segundo argumento toma um de dois formatos. Pode ser ou um único valor numérico, que neste caso ambos os limites soft e hard do recurso em questão irão ser definidos para este valor. Alternativamente, pode ser uma lista no formato:

        rlimit type {
            soft x; hard y;
        }

        Neste caso os limites hard e soft serão definidos de modo apropriado. Em ambos casos, pode ser especificada a palavra unlimited em vez de um valor numérico, assim removendo qualquer restrição. Os valores são passados directamente ao syscall setrlimit(2), e deve ser especificado nesse contexto.

        Tipos:
            cpu, fsize, data, stack, core, rss, nproc, nofile, memlock

        Exemplo:
            rlimit cpu 15;

    initgroups
        O argumento pode ser ou yes ou no. Esta directiva faz com que initgroups(3) seja chamado no arranque do serviço, o que define os grupos suplementares do serviço de acordo com o ficheiro /etc/group.

        Exemplo:
            initgroups yes;

    family
        Esta directiva especifica a família de protocolos a que o rlinetd deve unir sockets neste serviço. Actualmente, isto pode ser ou ipv4 ou ipv6. Se não especificado, isto recorre a algo apropriado para o sistema.

        Exemplo:
            family ipv6;

    banner
        Esta directiva permite-lhe despejar um ficheiro como saída de uma ligação.

        Exemplo:
            banner "/etc/nologin";

    echo
        Esta directiva permite-lhe enviar uma linha gerada dinamicamente para a ligação.

        Exemplo:
            echo "500 Service denied from your IP (%O)";

    filter
        Esta directiva permite-lhe especificar um programa Linux Socket Filter a ser associado cm o socket que escuta. Estes podem ser gerados com uma ferramenta como o lsfcc(1).

        Exemplo:
            filter "/usr/local/lib/rlinetd/filters/privport";

    chargen
        Esta directiva faz ciclos internos, enviando dados para qualquer ligação. Se não for dado um argumento, ecoa um subconjunto de caracteres de escrita. No entanto, pode ser especificado um nome de ficheiro como um argumento, que neste caso o conteúdo desse ficheiro é enviado em ciclo infinito.

        Exemplo:
            chargen "/usr/local/lib/spam";

log "name" {
    ...
}

    Esta construção descreve um alvo para relatórios. O parâmetro name é usado como um argumento para a directiva log nas configurações de service.

    path
        Isto descreve o nome de ficheiro para este ficheiro de registo (logfile).

        Exemplo:
            path "/var/log/service.log";

    mode
        Isto especifica as permissões de ficheiro para o logfile. É requerido que o argumento seja numérico, e é predefinido para 0640 se não for especificado.

        Exemplo:
            mode 0600;

    user
        Isto especifica o uid de um logfile, e pode ser especificado ou como um uid numérico, ou como um nome de utilizador.

        Exemplo:
            user "adm";

    group
        Isto especifica o gid de um logfile, e pode ser especificado ou como um gid numérico, ou como um nome de grupo.

        Exemplo:
            group "adm";

defaults {
    ...
}

    Esta construção recebe os mesmo parâmetros que uma declaração service, mas em vez de especificar um serviço, define predefinições para todos os serviços especificados subsequentemente.

directory "path" "match" "ignore";
    Esta construção especifica um directório que contem ficheiros de configuração adicionais para serem analisados. A análise destes ficheiros adicionais não começa até que o ficheiro actual esteja completo. Os argumentos match e ignore são opcionais, e se especificados, são usados para filtrar os ficheiros no directório. Os nomes de ficheiros devem corresponder à expressão regular match, de dada, e não devem corresponder à expressão regular ignore, se dada. Os nomes de ficheiros começados com um ponto ('.') são saltados em todos os casos. Os directórios não são lidos recursivamente.

  Modificadores de Strings

Existe um número de variáveis que podem ser substituídas em argumentos para algumas directivas. Embora elas possam ser usadas nos mesmo lugares, a informação acedida por algumas fica indisponível em certos casos.

%O  O endereço IP fonte da ligação.

%P  O porto fonte da ligação.

%C  O tempo total de CPU usado.

%U  O tempo de utilizador de CPU usado.

%S  O tempo de CPU do sistema.

%r  Tamanho máximo de conjunto residual.

%m  Tamanho da memória partilhada.

%d  tamanho de dados não partilhados.

%s  tamanho de pilha não partilhada.

%f  Reclamações da página.

%F  Falhas da página.

%p  Trocas.

%i  Operações de entrada de bloco.

%o  Operações de saída de bloco.

%n  Mensagens enviadas.

%c  Mensagens recebidas.

%k  Sinais recebidos.

%w  Comutações de contexto voluntárias.

%W  Comutações de contexto involuntárias.

%e  Código de saída.

%t  Tempo de execução.

%M  O tempo actual expressado em segundos desde a época 1980, despejado como uma palavra de 32 bit de ordem de rede. Isto não tem absolutamente nenhum uso para além de implementar a funcionalidade time do tipo inetd.

%I  A hora e data actual, num formato ctime(3) bonito.

VEJA TAMBÉM
rlinetd(8), hosts_access(5)

AUTOR
Este manual foi escrito por Mikolaj J. Habryn <dichro-doc@rcpt.to>. Modificado por Robert Luberda <robert@debian.org>.