• Início
  • Institucional
    • Fale Conosco
    • Nossa Equipe
    • Sobre
  • ShowCasts
  • Speedtest
  • Vagas
  • Categorias
    • Android
    • Dev
    • GNU/Linux
    • Rede
    • Windows
  • Grupos

Uma introdução a TCP Wrappers

Postado em 24 de agosto de 2012 por Ricardo Pinheiro

Para proteger nosso servidor temos como opções um Firewall e SELinux, há muitas maneiras de tornar nossos servidores mais seguros contra ataques, para isso podemos também utilizar TCP Wrapper. Este recurso é ativado automaticamente.

Pode ser utilizado para permitir ou bloquear acesso a diversos serviços utilizando regras simples em 2 arquivos, /etc/hosts.allow e /etc/hosts.deny.

No arquivo /etc/hosts.allow temos as regras de liberação do cliente ao serviço especificado, e no /etc/hosts.deny as regras de bloqueio do cliente ao serviço. As regras contidas em /etc/hosts.allow tem precedência sobre /etc/hosts.deny.

Caso o cliente tente acesso a algum serviço que não esteja listado nesses arquivos, o mesmo terá acesso garantido.

Formato:

lista_serviços : lista_clientes [ : comandos_shell ]

lista_serviços – Quais os serviços, ou coringas, serão afetados pela regra. Os serviços podem ser separados por vírgulas. Pode ser utilizado o coringa ALL para todos os serviços.

lista_clientes – Uma lista de um ou mais hostnames, endereços, padrões ou coringas para casar com a regra. A lista pode ser separada por espaço ou vírgula. Com excesão dos netgroups NIS (YP), todas as checagens de controle de acesso  não diferenciam maiúsculas e minúsculas.

CORINGAS

ALL – Todos

LOCAL – Coincide com qualquer host cujo nome não contém um caractere de ponto.

UNKNOWN – Corresponde a qualquer usuário cujo nome é desconhecido, e combina com qualquer host cujo nome ou endereço é desconhecido. Esse padrão deve ser usado com cautela, pois os servidores de nomes podem apresentar falha temporária.

KNOWN – Corresponde a qualquer usuário cujo nome é conhecido, e combina com qualquer host cujo nome e endereço são conhecidos. Esse padrão deve ser usado com cautela pois os servidores de nomes podem estar indiponíveis temporariamente.

PARANOID – Coincide com qualquer host cujo nome não corresponde ao seu endereço. Normalmente tcpd é compilado com -D PARANOID (esse é o padrão), nesse modo a conexão cai antes mesmo de ser analisada qualquer tabela de controle de acesso.

OPERADOR

EXCEPT – Permite a utilização de exceção, tanto em lista_serviços quanto em lista_clientes. Esta técnica permite a utilização de apenas um dos arquivos para liberação ao serviços especificados.

COMANDOS DO SHELL

Se a regra casar com padrão especificado e houver um comando após a lista_clientes, alguns dados da conexão serão repassados para as macros precedidas por %, a listagem a seguir lista algumas das macros utilizadas:

%a (%A) – O endereço do cliente (servidor).

%c – Informações do cliente, tais como: usuário@host, usuário@IP.

%d – O nome do daemon.

%h (%H) – O nome ou endereço do cliente (servidor).

%n (%N) – O hostname do cliente (servidor). Exibe “unknown” se o mesmo não estiver disponível e “paranoid” se o endereço e o host não correspondem.

%p – O PID do precesso do serviço (daemon).

%s – Informações do servidor: daemon@host, daemon@IP.

%u – O nome do usuário, ou exibe “unknown” se não puder obter o nome.

OBS.: A entrada (stdin), saída padrão (stdout) e de erro (stderr) são conectadas a /dev/null. Especifique um ‘&’ no final do comando, se você não quiser esperar até que tenha terminado.

ARMADILHA

O exemplo a seguir permite que solicitações TFTP de hosts no domínio local (note o ponto inicial). Os pedidos de outros hosts são negados. Em vez de o arquivo solicitado, um finger é enviado para o host agressor. O resultado é enviado para o superusuário.

/etc/hosts.allow
in.tftpd: LOCAL, .meu.dominio
/etc/hosts.deny
in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | 
/usr/bin/mail -s %d-%h root) &

Caso você utilize um servidor finger, o comando safe_finger vem com tcpd wrapper e deve ser instalado em local adequado. Isso limita os danos possíveis a partir dos dados enviados pelo servidor finger padrão.

Outros Exemplos:

/etc/hosts.allow

ALL : .exemplo.com.br
telnetd : 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.79

Na primeira linha o domínio exemplo.com.br tem acesso a todos os serviços. Na próxima linha o serviço telnet só pode ser acessado pelo rede 192.168.0.0/24 exceto pelo endereço 192.168.0.79

/etc/hosts.deny

ALL EXCEPT in.tftpd : .exemplo.com.br
telnetd : ALL EXCEPT 192.168.1.10

Na primeira linha todos os serviços exceto o ftp estão liberados para o domínio exemplo.com.br. Na segunda o serviço telnet está negado a todos os hosts exceto para o endereço 192.168.1.10

Fonte: manpage

Espero que tenham gostado do post e aproveitem para assinar a nossa newsletter.

Publicado em GNU/Linux | Tags: linux, Segurança, tcp_wrapper | 3 Comentários
« Solução para envio de email de forma simples
Proxy de DNS »

3 thoughts on “Uma introdução a TCP Wrappers”

  1. francisco diz
    24 de agosto de 2012 às 10:21

    É muito conhecimento!! parabéns Ricardo e como sempre com ótimos post.

    Responder
    • ricardo diz
      24 de agosto de 2012 às 14:36

      Francisco,

      Obrigado, é inclusive matéria de prova.

      Abraços

      Responder
  2. francisco diz
    24 de agosto de 2012 às 23:35

    É eu sei,
    E com um post simples, rápido e objetivo como esse eu diria até que fica fácil.
    obrigado e mais uma vez parabéns.
    abraço

    Responder

Deixe uma resposta Cancelar resposta

Páginas

  • Autores
    • Carlos Sathler
    • Douglas Portugal
    • Erick Martinez
    • Jeferson Salles
    • Maurício Nunes
    • Mauro Sérgio
    • Ricardo Martins
    • Ricardo Pinheiro
    • Rodrigo Maciel
    • Silney Lopes
    • Vagner Matos
  • Checkout
    • Purchase Confirmation
    • Purchase History
    • Transaction Failed
  • Eventos
  • Eventos
  • Fale Conosco
  • Galeria de Vídeo
  • Grupos do Telegram
  • Lista VIP
  • Nossa Equipe
  • Receba mais informações
  • ShowCasts
  • Sobre
  • Teste a sua velocidade
  • Video Gallery
  • Video Grid Gallery

Archives

  • junho 2018
  • maio 2018
  • fevereiro 2018
  • outubro 2017
  • setembro 2017
  • agosto 2017
  • fevereiro 2017
  • janeiro 2017
  • dezembro 2016
  • julho 2016
  • junho 2016
  • maio 2016
  • abril 2016
  • março 2016
  • fevereiro 2016
  • janeiro 2016
  • dezembro 2015
  • novembro 2015
  • outubro 2015
  • setembro 2015
  • agosto 2015
  • julho 2015
  • junho 2015
  • maio 2015
  • abril 2015
  • março 2015
  • fevereiro 2015
  • janeiro 2015
  • dezembro 2014
  • novembro 2014
  • outubro 2014
  • setembro 2014
  • agosto 2014
  • julho 2014
  • junho 2014
  • maio 2014
  • abril 2014
  • janeiro 2014
  • dezembro 2013
  • outubro 2013
  • setembro 2013
  • julho 2013
  • junho 2013
  • maio 2013
  • abril 2013
  • março 2013
  • fevereiro 2013
  • janeiro 2013
  • setembro 2012
  • agosto 2012
  • julho 2012
  • abril 2011
  • março 2011
  • fevereiro 2011

Categorias

  • AWS (7)
  • BSD (3)
  • Cloud Computing (11)
  • Dev (13)
  • DevOps (3)
  • Entrevistas (1)
  • Gestão (8)
  • GNU/Linux (135)
  • IoT (4)
  • Microsoft (86)
    • Hyper-V (9)
    • Office 365 (3)
    • Skype For Business (1)
    • SQL Server (1)
    • System Center (2)
    • Windows Server (2)
  • Monitoração (4)
  • Rede (37)
  • redes (10)
  • Segurança (23)
  • Sem categoria (25)
  • SharePoint (4)
  • ShowCasts (13)
  • Vagas (13)
  • VMware (1)
  • Windows (96)

WordPress

  • Acessar
  • WordPress

Inscrever

  • Posts (RSS)
  • Comentários (RSS)
© 2012 Mundo TI Brasil