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
.
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.
É 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.
A Home page do projeto oidentd
é
http://ojnk.sourceforge.net
Sugestões, críticas, comentários,
etc., podem ser enviados para [email protected]
.
Características do oidentd
:
Pacote: oidentd
Utilitários:
Arquivos de configuração do oidentd
:
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, Seção 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.
#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.
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.
Mensagens informativas, erros, e outras sobre execuções do serviço
oidentd
são enviadas ao syslog
do sistema.
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, Seção 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
.
Siga os procedimentos de instalação em Instalação, Seção 13.1.7 e os seguintes passos:
/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, Seção
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, Seção 4.7.2.1.
oidentd
atual dando um
./etc/init.d/oidentd stop.
/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.
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.
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).
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,
Seção 7.3 e Níveis de Execução, Seção
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.
Opções de linha de comando do oidentd
:
oidentd
no grupo
especificado.
inetd
.
~/.noident
.
oidentd
.
oidentd
.
/etc/identd.spoof
falsificarem suas respostas.
oidentd
permanecerá aceitando
conexões quando é executado com a opção -w pelo número de segundos
especificado.
oidentd
com a uid
especificada.
hosts.allow
e
hosts.deny
do tcpd
.
oidentd
.
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, Seção 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: [email protected]. # # O serviço telnet está permitido somente para john conectando de 192.168.1.1 in.telnetd: [email protected] # 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 [email protected]. # 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 [email protected]. # Qualquer outra coisa é bloqueada ALL: ALL
Guia Foca GNU/Linux
Versão 6.38 - quinta, 19 de agosto de 2004[email protected]