[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux
Chapter 13 - Servidor ident


Este capítulo documenta o uso, benefícios, configuração, utilização e exemplos do servidor identd. Também são explicados alguns pontos positivos/negativos de sua utilização para aumentar a segurança quando usado junto com o mecanismo de controle de acesso.

O servidor identd escolhido para ser descrito nesta seção do guia foi o oidentd.


13.1 Introdução

O ident (identidade) é um servidor que permite identificar qual o usuário efetuou determinada conexão e o sistema operacional usado. Ele opera na porta 113 por padrão e retorna nomes de usuários localmente válidos, e é consultado por serviços conhecidos como IRC, alguns servidores ftp, smtp e outros. Outro benefício é a utilização de mecanismos de restrições de acesso baseadas em usuários/endereçoIP (o tcpd é um exemplo de serviço que permite esta característica). A sintaxe usada para fazer tal restrição é universal: usuário@endereçoIP onde normalmente aparece o endereçoIP que é usado para bloquear/permitir o acesso.

No momento da conexão, o endereço IP é checado pra ver se confere, e o servidor Ident da máquina que está efetuando a conexão é consultado para checar se o usuário que tem acesso é o mesmo especificado no controle de acesso. Isso aumenta um pouco a segurança do sistema, mas existem algumas implicações e pontos frágeis do identd que serão explicados no decorrer deste capítulo.


13.1.1 Versão

É assumido que esteja usando a versão 1.7 do oidentd. As explicações contidas aqui podem funcionar para versões posteriores, mas é recomendável que leia a documentação sobre modificações no programa (changelog) em busca de mudanças que alterem o sentido das explicações fornecidas aqui.


13.1.2 Contribuindo

A Homepage do projeto oidentd é http://ojnk.sourceforge.net Sugestões, críticas, comentários, etc., podem ser enviados para odin@numb.org.


13.1.3 Características

Características do oidentd:


13.1.4 Ficha técnica

Pacote: oidentd

Utilitários:

Arquivos de configuração do oidentd:

identd.spoof
Controla o spoof (falsificação) de nomes de usuários. O formato deste arquivo são dois campos separados por ":", o primeiro contendo a identificação original do usuário e o segundo o nome que será enviado pelo identd. O segundo campo pode ser omitido, neste caso a resposta de identificação é lida através do arquivo ~/.ispoof.

Este arquivo deve ter como dono o usuário do primeiro campo do identd.spoof e a identificação retornada será a contida no arquivo. Esteja certo que o daemon oidentd tem permissões para acessar este arquivo, caso contrário nenhum spoof de identidade será realizado.

Para o spoof ser habilitado, o serviço oidentd deverá ser iniciado com a opção -s ou -S (veja mais detalhes Opções de linha de comando, Section 13.1.11).

OBS: Certifique-se de colocar as permissões adequadas para que somente o daemon oidentd tenha acesso a este arquivo (de acordo com o usuário e grupo usado para executar o oidentd), os detalhes de mapeamento de nomes podem ser perigosos em mãos erradas, e garantir o sucesso de uma conexão indesejável.

oidentd.users
Mapeamento de nomes de usuários efetuando conexões via Masquerading. O formato deste arquivo é o seguinte:
     #EndereçoIP/máscara            Usuário    Sistema
     192.168.1.1                    john        WINDOWS
     192.168.1.2                    usuario1    WINDOWS
     192.168.1.1/32                 usuario2    UNIX
     192.168.1.0/24                 usuario3    UNIX
     192.168.1.0/16                 usuario4    UNIX

As conexões vindas dos endereços da primeira coluna são mapeados para o nome/sistema da segunda/terceira coluna e enviados a máquina que requisitou a identificação. Para o suporta a mapeamento de usuários via Masquerading funcionar, o daemon oidentd deverá ser iniciado com a opção -m.


13.1.5 Requerimentos de Hardware

O oidentd requer pouca memória e pode ser executado sem problemas em um sistema com o mínimo de memória necessária para rodar o kernel do Linux (2 MB para 2.2 e 4MB para as séries 2.4 do kernel). Mesmo assim é interessante considerar 1 MB a mais que o mínimo requerido pelo kernel para uma folga na execução do serviço de identificação junto a outros do sistema.


13.1.6 Arquivos de log criados pelo Ident

Mensagens informativas, erros, e outras sobre execuções do serviço oidentd são enviadas ao syslog do sistema.


13.1.7 Instalação

Para instalar o daemon do oidentd digite:

     apt-get install oidentd

Por padrão o serviço é instalado para ser executado como daemon, para executa-lo através do inetd siga os passos em Instalação via Inetd, Section 13.1.8. O serviço será executado sob o usuário nobody e grupo nogroup por motivos de segurança, alterações de nome/grupo que executará o oidentd podem ser feitas no arquivo /etc/defaults/oidentd ou /etc/init.d/oidentd.


13.1.8 Instalação via Inetd

Siga os procedimentos de instalação em Instalação, Section 13.1.7 e os seguintes passos:

  1. Edite o arquivo /etc/inetd.conf e adicione a seguinte linha:
         #:INFO: Info services
         auth		stream	tcp	nowait.40	nobody.nogroup	/usr/sbin/oidentd oidentd -q -i -t 40
    

    A opção -i permite o oidentd aceitar requisições via inetd (sem ela ele será executado no modo daemon). As opções -s e -m devem também ser especificadas caso desejar os recursos de falsificação de identificação (mapeamento de nomes) e masquerading (veja Opções de linha de comando, Section 13.1.11). Aqui foi definido um parâmetro máximo de 40 requisições por minuto (típico de um serviço poucos usado no sistema), caso este limite seja ultrapassado o serviço será desativado na seção atual do inetd. Os outros campos são descritos em /etc/inetd.conf, Section 4.7.2.1).

  2. Interrompa a execução do daemon do oidentd atual dando um ./etc/init.d/oidentd stop.
  3. Remova os links dos runlevels em /etc/rc?.d que iniciam/interrompem a execução do daemon com o comando: update-rc.d -f oidentd remove. Neste ponto o daemon oidentd não será mais iniciado. Para reverter esta ação, execute o comando: udpate-rc.d oidentd defaults.
  4. De um comando killall -HUP inetd para fazer o serviço inetd recarregar o arquivo de configuração /etc/inetd.conf. O serviço de identd já estará funcionando.

OBS: A configuração da distribuição Debian permite detectar quando o serviço ident (auth) está sendo executado no /etc/inetd.conf através de seus scripts de inicialização. Você poderá fazer as coisas manualmente baseado nisso se desejar.


13.1.9 Usando tcpwrappers com oidentd

Especifique a opção -W para fazer o oidentd utilizar o mecanismo de acesso em hosts.allow e hosts.deny para garantir/bloquear ao serviço de acordo com endereços/hosts especificados.

OBS O oidentd é somente executado após a conferência de todos os parâmetros de endereços nestes arquivos de acesso, não utilize a sintaxe "usuário@endereço" como endereço na linha de acesso do serviço oidentd (por motivos óbvios).


13.1.10 Iniciando o servidor/reiniciando/recarregando a configuração

O arquivo que controla o funcionamento do daemon do oidentd é controlado pelo arquivo /etc/init.d/oidentd. Utilize os métodos descritos em Arquivos de inicialização, Section 7.3 e Níveis de Execução, Section 7.4 para entender como iniciar/interromper os serviços e a organização SYSTEM 5.

A execução do oidentd através de inetd é automática quando é feita uma requisição para a porta 113.


13.1.11 Opções de linha de comando

Opções de linha de comando do oidentd:


13.1.12 Exemplos

Não faz muito sentido exemplos de arquivo de configuração do oidentd por estes serem muito simples e estarem bem explicados em Ficha técnica, Section 13.1.4. No entanto acho interessante mostrar alguns exemplos de configurações do hosts.allow e hosts.deny fazendo uso dos recursos de restrições baseadas em usuário@endereço :

     # Arquivo hosts.allow
     #
     # Permite requisições talk de qualquer lugar
     in.ntalkd: ALL
     in.talkd: ALL
     #
     # Permite que o usuário john acesse os serviços de ftp de qualquer máquina da 
     # rede 191.168.1.*
     in.ftpd: john@192.168.1.
     #
     # O serviço telnet está permitido somente para john conectando de 192.168.1.1
     in.telnetd: john@192.168.1.1
     # Todos podem acessar os serviços samba (nomes e compartilhamentos) exceto 
     # o usuário evil conectando de qualquer host com o endereço cracker.com.*
     smbd, nmbd: ALL EXCEPT evil@cracker.com.
     
     
     # Arquivo hosts.deny
     # Qualquer finger é bloqueado exceto vindos do usuário admin feitos em qualquer 
     # máquina da rede 192.168.1.*
     in.fingerd: ALL EXCEPT admin@192.168.1.
     # Qualquer outra coisa é bloqueada
     ALL: ALL

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux

Versão 6.10 - Sunday, 03 de November de 2002
Gleydson Mazioli da Silva gleydson@cipsga.org.br