Eu não sei exatamente como definir o TCP Wrappers, a função dele é permitir que a estação qual implementa tenha controle quais são os endereços que acessam o sistema. Acredito que pode ser chamado de uma forma grotesca te sistema de confiança. Mas eu não consigo ver muito sentido nesse aspecto pois sempre que preciso realizar alguma especie de bloqueio eu utilizo o Netfilter aka iptables. Acredito então que posso colocar o TCP Wrappers para uma solução onde não se tenha um firewall Iptables, mesmo pra estação, todo sistema linux possui o Iptables por default contudo acho que nem todos os usuários de linux possuem conhecimento técnico para manipular as tabelas do Firewall, então é algo que meio que um pseudo firewall, onde só controla o acesso por IP.
O funcionamento do TCPWrappers é relativamente simples, temos alguns os seguintes arquivos de configuração:
/etc/hosts.allow
/etc/hosts.deny
A ideia é a seguinte, você permite ou bloqueia nesses arquivos de configuração outros endereços IP que podem se conectar no seu sistema. O arquivo /etc/hosts.allow contém regras para os hosts que poderão acessar, se o host corresponder a uma regra, ele acessa e o arquivo /etc/hosts.deny não é consultado. Caso nenhuma regra combine com a requisição então o arquivo /etc/hosts.deny é consultado especificando as estações que não são permitidas a se conectarem, então se combinar alguma regra, o host é barrado.
A estrutura desses arquivos é simples:
services:host_ipv4[: comando do shell ]
Em services é especificado quais serviços terão o acesso controlado. É aceito o nome do processo, o número da porta ou caracteres especiais como: ALL, LOCAL, KNOW, UNKNOW, PARANOID E EXCEPT.
Em host_ipv4 é onde entra os endereços dos hosts, também aceita os caracteres especiais.
Em comando do shell é especificado um comando do shell para ser executado.
Agora vou dar um exemplo de configuração onde aceita conexões ssh ( porta 22 ) de um determinado endereço da rede e negar o acesso a todos os outros endereço da rede:
## Arquivo /etc/hosts.allow
sshd:192.168.1.50
## Arquivo /etc/hosts.deny
sshd:192.168.1.
Observe que foi utilizado o ‘.’ (ponto), ele então subentende que é o range inteiro /24.
Caso queria liberar apenas o ssh para um host e negar todos os outros protocolos, pode ser realizado da seguinte forma apenas alterando o hosts.deny e deixando o hosts.allow como está no exemplo anterior. Segue:
## Arquivo /etc/hosts.deny
ALL:ALL
Agora um exemplo bloqueando mais de um serviço:
## Arquivo /etc/hosts.deny
vsftpd,sshd:ALL
No exemplo anterior, ele vai negar o protocolo ftp e ssh para todos os hosts da rede, então caso queira permitir alguém é só declarar no /etc/hosts.allow que é consultado primeiro.
Caso nenhuma regra tanto pra allow e deny combine, o host é liberado.
Fontes:
https://pt.wikipedia.org/wiki/TCP_Wrapper
https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/6/html/security_guide/sect-security_guide-tcp_wrappers_and_xinetd-tcp_wrappers_configuration_files
