O pacote TCP Wrappers (tcp_wrappers) faz parte da instalação padrão e oferece controle de de acesso a serviços de rede baseado no host. O componente mais importante do pacote é a biblioteca /usr/lib/libwrap.a. Em termos gerais, um serviço que use o TCP Wrappers é um que foi compilado com vinculação à biblioteca libwrap.a.
Quando uma tentativa de conexão é feita a um serviço que use o TCP Wrappers, o serviço primeiro examina os arquivos de acesso do host (/etc/hosts.allow e /etc/hosts.deny) para determinar se um cliente tem permissão para conectar. Na maioria dos casos, o serviço então usa o daemon syslog (syslogd) para escrever o nome do cliente fazendo o pedido e o serviço requisitado em /var/log/secure ou /var/log/messages.
Se um cliente tiver permissão para conectar, o TCP Wrappers passa o controle da conexão ao serviço que fez o pedido e não participa mais na comunicação entre o cliente e o servidor.
Além de controle de acesso e registro, o TCP Wrappers pode executar comandos para interagir com o cliente antes de negar ou passar o controle da conexão ao serviço de rede requisitado.
A maioria dos serviços de rede do Red Hat Enterprise Linux são vinculados à biblioteca libwrap.a porque o TCP Wrappers é uma adição valiosa ao arsenal de segurança de qualquer administrador de sistemas. Algumas destas aplicações incluem o /usr/sbin/sshd, o /usr/sbin/sendmail, e o /usr/sbin/xinetd.
Para determinar se um binário de serviço de rede está vinculado à libwrap.a, digite o seguinte comando como usuário root.
ldd <nome-do-binário> | grep libwrap
Substitua <nome-do-binário> pelo nome do binário de serviço de rede.
Se o comando não retornar nenhuma saída, o serviço de rede não está vinculado à libwrap.a.
O exemplo a seguir indica que o /usr/sbin/sshd está vinculado à libwrap.a:
[root@myserver ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 =
> /usr/lib/libwrap.so.0 (0x00655000)
[root@myserver ~]#