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.418 ]

Por: Perfil removido em 11/09/2012


Regras - Padrões - Execução



Regras das ACLs

  • A sintaxe das regras é igual para ambos os arquivos (allow ou deny);
  • Cada arquivo tem zero, ou mais, linhas e SEMPRE deve terminar com uma linha vazia. Um enter na linha anterior gera uma linha vazia;
  • Cada linha é uma regra, um comentário ou linha vazia;
  • As regras são processadas em ordem de aparência;
  • A busca termina quando uma combinação ocorre;
  • Para escapar caracteres especiais (new line ou dois-pontos) utilizamos uma barra invertida ( \ );
  • Linhas em branco não são consideradas nem analisadas;
  • Linhas iniciadas pelo caractere # são consideradas comentários.

* Atenção: Após a última regra em hosts.allow e hosts.deny inclua uma linha em branco. Sem ela a última regra irá falhar (?).

Formato das regras

Uma regra possui o seguinte formato:
  • daemon_list: É uma lista separada por espaços em branco e vírgulas, com um ou mais nomes dos daemons dos processos ou números das portas dos serviços ou wildcards.
  • client_list: É uma lista separada por por espaços em branco e vírgulas com um ou mais nomes de hosts ou endereços IP ou combinações de um ou outro destes critérios.
  • shell_command: Um comando do shell [opcional] que é executado quando a regra combinar. Pode gerar um log ou mandar um e-mail, por exemplo.


Padrões de combinação

A linguagem de ACL TCP Wrapper obedece aos seguinte padrões:
  • Se a string começa com um ponto (.), a expressão regular que SEGUE, será procurada como um padrão. Por exemplo: .com.br - Em "client_list" irá combinar para as requisições, com origem em google.com.br e para vivaolinux.com.br, também.
  • Se a string termina com um ponto (.), a expressão regular que ANTECEDE será procurada como um padrão. Por exemplo: 192.168 - Irá combinar para "192.168.1." e para "192.168.130." também.
  • A expressão na forma "n.n.n.n/m.m.m.m" é interpretada como um par rede/máscara (net/mask), e irá combinar com o resultado do bitwise AND entre eles. Por exemplo: 192.168.1.0/255.255.255.0 irá combinar com 254 endereços IP deste segmento (192.168.1.1 até 192.168.1.254).
  • São Wildcards, o asterisco (*) e a interrogação (?) significando respectivamente TUDO ou UM caractere. Os Wildcards podem ser combinados tanto para nomes ou endereços de hosts, EXCETO em conjunto com o formato net/mask, hostnames começados com ponto (.) ou endereços terminados com pontos (.) onde IRÃO falhar.

Wildcards Especiais

  • ALL: Sempre combina com TUDO.
  • LOCAL: Combina com um host cujo nome não tenha um ponto. Notadamente localhost.
  • UNKNOWN: Combina com nomes ou endereços DESCONHECIDOS. Use com muito cuidado. Se a resolução de nomes em DNS estiver indisponível gera problemas.
  • KNOWN: Combina com hosts cujos nomes e endereços são CONHECIDOS. Se a resolução DNS estiver indisponível gera problemas.
  • PARANOID: Combina com nomes de hosts que não combinam com os endereços CONHECIDOS.

Operadores

EXCEPT – Permite criar exceções dentro da regra.

Por exemplo, 192.168.100. EXCEPT 192.168.100.254 192.168.100.255. Esta EXCEÇÃO excluí os hosts 254 e 255 da regra.

Este operador pode ser utilizado nas listas de Daemons e de Clientes.

Observe que o separador é um "espaço em branco" que PODE ou NÃO incluir uma vírgula.

Executando comandos do shell nas regras

Se a regra combinar (daemon_list : client_list) e incluir um campo opcional como [: shell_command], então um comando do shell poderá ser executado concomitantemente com a aceitação da conexão.

Um conjunto de máscaras seguidas pelo caractere %<letra> podem ser aplicadas de acordo com a tabela abaixo, permitindo um controle de logs de acesso bem apurado.
A opção [ : comando do shell ] será executada por um processo filho em /bin/sh e terá as saídas padrão e de erro, e a entrada padrão redirecionadas para /dev/null.

Este comando pode ser enviado para segundo plano (background) com o uso do caractere (&) no final da regra, se você não deseja esperar pelo fim de sua execução.

Todos os executáveis devem ser referenciados por suas rotas completadas ou uma declaração temporária de: PATH="/rota/bin"

...Que PODE existir antes de cada comando. Outras formas de execução de um comando são:
  • aclexec shell_command: Executa em um shell filho, o comando em shell_command, após expandir os Wildcards em %<letra>.

Por exemplo:

smtp : ALL : aclexec checkdnsbl %a


  • spawn shell_command: Executa em um shell filho, o comando em shell_command, após expandir os Wildcards em %<letra>.

Por exemplo:

spawn (/usr/sbin/safe_finger -l @%h | /usr/bin/mail root) &


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

Instalando e usando o GNUstep no Linux

Minha experiência com Linux

Instalação da Broadcom 1390 no Debian Etch

Criando um álbum de fotos no Linux

Novidades do Kernel 2.6.35

Leitura recomendada

Vírus em câmeras digitais: possibilidades

Seu maior inimigo é você mesmo!

Hardering com Red Hat 5

O Kerberos não é um cachorro de 3 cabeças!

Apache2 + PHP5 com ModSecurity no Debian Squeeze

  
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