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: 25.431 ]

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

Rede mista wireless/cabo com Linux/Windows em residências e pequenas empresas

Ambiente de desenvolvimento Java com Ubuntu 7.10 e Net Beans 6

Qual distribuibuição GNU/Linux devo utilizar?

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

Conceito OOP no Java

Leitura recomendada

Bypass de firewall com tunelamento por DNS

Desvendando código malicioso no fórum Viva o Linux

ClamAV, o kit de ferramentas antivírus

Recuperando senhas de usuários

Detectando vulnerabilidades com o Nessus

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts