Suporte TCP Wrapper - Serviços stand-alone no Debian 6

Serviços stand-alone são aqueles que "escutam" as conexões TCP/IP diretamente da interface de rede, como por exemplo, Portmap ou SSH. Estes serviços devem ser protegidos de vários modos pelo administrador, tais como: configurações restritivas, regras de firewall e regras de ACL da biblioteca libwrap, conhecida como TCP Wrapper.

[ Hits: 24.198 ]

Por: Perfil removido em 11/09/2012


TCP Wrapper



Conceitos básicos

TCP Wrapper pode ser visto como uma camada adicional de proteção, permitindo criar listas de controle de acesso (ACLs) específicas para cada serviço compilado com suporte a biblioteca libwrap.

TCP Wrapper é baseado em uma abordagem por endereçamento de "host / rede" (host-based) permitindo uma granulação das permissões, ou negações, baseado no IP do host ou da rede de origem da requisição.

No Debian 6, o executável /usr/sbin/tcpd (TCP Wrapper Daemon) é instalado, por padrão, pelo pacote "tcpd" e a biblioteca "libwrap" pelo pacote "libwrap0".

# dpkg -p libwrap0
# dpkg -p tcpd


Para saber se um serviço oferece suporte para "libwrap", utilizamos o comando ldd (1) - List Dynamic Dependencies – sobre o daemon do serviço.

Por exemplo: /usr/sbin/sshd é o daemon do serviço SSH no Debian 6.

Para confirmarmos o suporte a "libwrap.so.0" em SSHD, utilizamos o seguinte comando:

# type -P sshd | xargs ldd | fgrep libwrap

Saída:
libwrap.so.0 => /lib/libwrap.so.0 (0xb7685000)


Confirmado!

Funcionamento

Um serviço como SSHD, normalmente não é ativado por xinetd, então, o suporte para TCP Wrapper é compilado diretamente com a opção durante a compilação (--with-libwrap), para tornar o suporte interno ao programa.

Observe que isso implica em uma mudança no código do programa, que passa a ter acesso às funções da biblioteca "libwrap". Através de /usr/sbin/tcpd, é feita a leitura das regras de ACL TCP Wrapper, contidas em /etc/hosts.allow e /etc/hosts.deny.

Observe o esquema seguinte:

O Host (H) deseja conectar-se ao servidor SSH via TCP na porta (P).

O servidor SSH tem o suporte libwrap ativado internamente, então uma consulta aos arquivos em /etc/hosts.allow e /etc/hosts.deny é feita, via tcpd, levando em conta as seguintes situações:
  • A não existência dos arquivos /etc/hosts.allow e /etc/hosts.deny é tratada como se ambos existissem e estivessem vazios;
  • A procura por uma regra pára, quando uma que combina é encontrada;
  • O acesso é garantido quando uma regra combinar com uma requisição (daemon, cliente) existente em /etc/hosts.allow, que é lido primeiro;
  • O acesso é negado quando uma regra combinar com uma requisição (daemon, cliente) existente em /etc/hosts.deny, lido após hosts.allow.

Se a requisição (daemon, cliente) não for localizada em ambos arquivos, então o acesso é GARANTIDO, ou seja, a política padrão para TCP Wrapper é ACEITAR a requisição se não houver uma regra contrária.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. TCP Wrapper
   3. Regras - Padrões - Execução
   4. Extensão - Controle
Outros artigos deste autor

Que tal conhecer mais o Linux pondo a mão na massa? Conheça o Woo Hoo, projeto para uma nova distro

Gerando gráficos para interfaces de rede com MRTG

Apache 2.2 - Introdução ao módulo mod_rewrite

Conexão wireless ad-hoc no Ubuntu - relato de experiência

GNU/Linux - Benefícios na Área Administrativa

Leitura recomendada

Notificação Fail2ban pelo Telegram

Análise passiva (parte 2)

SELinux - Segurança em Servidores GNU/Linux

Instalando o Nagios via APT ou YUM

Vulnerabilidade e segurança no Linux

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts