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

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

Como construir um pacote TGZ do zero

IDS com Debian 4, Snort 2.8.3.1 e BASE 1.4.1

ReiserFS x Ext3: Quem ganha?

antiX: uma distro versátil

Clonezilla - Servidor de imagens (Parte II)

Leitura recomendada

Verifique a sua fortaleza com lsat - software de auditoria em servidores e desktops

TOR: A Internet sem rastreabilidade

SELinux na prática

Criptografar arquivos importantes no seu Linux

Configurando o OpenVPN no SuSE Linux Enterprise Server (SLES)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário