billlcosta Posted August 13, 2017 at 09:19 PM Share Posted August 13, 2017 at 09:19 PM Introdução Controlar acessos a aplicações/serviços de uma rede vem se tornado um das tarefas mais importantes de um Sys Admin. Em ambientes Unix Like, podemos fazer tal controle utilizando por exemplo Firewalls iptables/nftables,ipfw, no qual realizaram filtro de pacotes que trafegam pelo sistema. Entretanto, sabemos que apenas Firewalls não são capazes de prover todo o controle de segurança. Felizmente, existe o TCP Wrappers, desenvolvido para aplicar uma camada a mais de proteção em serviços de rede que utilizam de tal solução. O funcionamento TCP Wrapper basicamente consiste em realizar o controle de acesso em aplicações que suportam esta ação (como xinetd), permitindo ou não tal acesso. Para tal, são utilizados dois arquivos.: /etc/hosts.allow - arquivo responsável por liberar acessos /etc/hosts.deny - arquivo responsável por bloquear acessos Nota O TCP Wrapper se tornou parte muito valiosa do arsenal de ferramentas de segurança de um Sys Admin. Desta forma, diversos serviços estão ligados a biblioteca libwrap, responsável pelo funcionamento do TCP Wrapper. Para validar se um serviço dá suporte ao TCP Wrapper, a maneira mais fácil é executar o comando ldd <binary-name> | grep libwrap substituindo o '<binary-name> pelo path completo do binário. Funcionamento Como dito anteriomente, o TCP Wrappers possui dois arquivos de configurações, o hosts.allow e o hosts.deny, ambos armazenados no /etc. Ao receber uma solicitação de acesso a um determinado serviço, o TCP Wrapper realiza os seguintes passos.: Consulta o /etc/hosts.allow - o primeiro passo é consultar o hosts.allow para validar se o mesmo existe alguma entrada liberando a entrada do cliente em questão. Caso exista, a liberação de acesso é realizada. Caso contrário, passa para o próximo passo. Consulta o /etc/hosts.deny - o segundo e último passo é validar no arquivo hosts.deny se existe alguma entrada bloqueando o acesso. Caso exista uma entrada, o acesso ao serviço é bloqueado. Do contrário, o acesso é liberado. Importante.: Devido ao fato das regras do hosts.allow serem processadas primeiro, o mesmo possui prioridade sobre hosts.deny. Desta forma, caso haja uma entrada para um cliente nos dois arquivos, o acesso do mesmo será liberado. Construindo Regras de Acesso A sintaxe das regras de acesso para ambos arquivos (hosts.allow e hosts.deny) são as mesmas. Para criar regras, o formato básico é.: <daemon list>: <client list> [: <option>: <option>: ] <daemon list> é a lista de daemons separada por vírgula (não são nome dos serviços) ou caracter coringa (como * ALL). <client list> é a lista de clientes (IP, FQDN) ou caracteres coringas separados por vírgula que terão acesso liberado/bloqueado. <option> opção adicional ou uma lista de opções separada por dois pontos para realizar ações em uma determinada regra. Caracteres coringas ALL — Corresponde a tudo. Ele pode ser usado para ambas listas de daemons e lista de clientes. LOCAL — Corresponde a qualquer host que não contém um ponto (.), como o localhost. KNOWN — Corresponde a qualquer host onde o hostname e endereço de host são conhecidos ou onde o usuário é conhecido (CUIDADO: Depende de resolução DNS). UNKNOWN — Corresponde a qualquer host onde o hostname ou endereço de host são desconhecidos ou onde o usuário é desconhecido (CUIDADO: Depende de resolução DNS). PARANOID — Corresponde a qualquer host onde o hostname não corresponde ao endereço de host (CUIDADO: Depende de resolução DNS). Exemplos/Modelos Nota.: Todos os exemplos/modelos repassados abaixo, poderão ser utilizados tanto no hosts.allow quanto no hosts.deny, dependendo apenas da ação desejada. Libera/bloqueia o acesso a qualquer serviço para qualquer hosts (.) do dominio minasnetworking.com.br. ALL: .minasnetworking.com.br Libera/bloqueia o acesso ao serviço de SSH (daemon SSHD) para qualquer host que inicie com o range 192.168. sshd: 192.168. Libera/bloqueia o acesso a qualquer serviço para qualquer hosts da rede 192.168.1.0. ALL: 192.168.1.0/255.255.255.0 Libera/bloqueia o acesso ao serviço de HTTP (daemon HTTPD) para qualquer host/cliente gerando uma mensagem de log httpd: ALL \ : spawn /bin/echo `/bin/date` access allowed/denied >> /var/log/message \ : deny|allow Referências Red Hat Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.