Los contenedores TCP son capaces de más que permitir y denegar el acceso a los servicios. Con el argumento de comando opcional, pueden enviar banners de conexión, advertir sobre ataques de hosts particulares y mejorar el registro.
Banner contenedor TCP para un servicio
Para implementar una pancarta contenedora TCP para un servicio, use la opción de pancarta. Este ejemplo implementa un banner para vsftpd. Debe crear un archivo de banner en cualquier parte del sistema, dándole el mismo nombre que el daemon. En este ejemplo, el archivo se llama /etc/banners/vsftpd y contiene las siguientes líneas:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use results in access privileges being removed.
El %c token proporciona una variedad de información del cliente. El token %d (que no se muestra) se expande al nombre del daemon al que el cliente intentó conectarse. Para que este banner se muestre a las conexiones entrantes, agregue la siguiente línea al archivo /etc/hosts.allow:
# vi /etc/hosts.allow vsftpd : ALL : banners /etc/banners/
Envolturas TCP para advertir de posibles ataques
Los envoltorios TCP pueden advertirle de posibles ataques de un host o una red mediante el uso de la directiva de generación. La directiva spawn ejecuta cualquier comando de shell. En este ejemplo, se intenta acceder desde la red 200.182.68.0/24. Coloque la siguiente línea en el archivo /etc/hosts.deny para denegar cualquier intento de conexión desde esa red y para registrar los intentos en un archivo especial:
# vi /etc/hosts.deny ALL : 200.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
Para permitir la conexión y registrarla, coloque la directiva de generación en el archivo /etc/hosts.allow.
Denegar acceso y registrar intento de conexión
La siguiente entrada en /etc/hosts.deny deniega el acceso de todos los clientes a todos los servicios (a menos que se permita específicamente en /etc/hosts.allow) y registra el intento de conexión:
# vi /etc/hosts.deny ALL : ALL : spawn /bin/echo “%c tried to connect to %d and was blocked” >> /var/log/tcpwrappers.log
El nivel de registro se puede elevar utilizando la opción de gravedad. Suponga que cualquiera que intente conectarse a un servidor FTP es un intruso. Para indicar esto, coloque un indicador emergente en los archivos de registro en lugar del indicador predeterminado, información y deniegue la conexión. Para hacer esto, coloque la siguiente línea en /etc/hosts.deny:
# vi /etc/hosts.deny sshd : ALL : severity emerg
Esto utiliza la función de registro de authpriv predeterminada, pero eleva la prioridad del valor predeterminado de info a emerg, que publica mensajes de registro directamente en la consola.
Denegar el acceso desde un dominio específico
El siguiente ejemplo indica que si se intenta una conexión al demonio SSH (sshd) desde un host en el dominio example.com, ejecute el comando echo para agregar el intento a un archivo de registro especial y deniegue la conexión. Debido a que se utiliza la directiva de denegación opcional, esta línea deniega el acceso incluso si aparece en el archivo /etc/hosts.allow:
# vi /etc/hosts.allow sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied >> /var/log/sshd.log \ : deny
Cada campo de opción (generar y denegar) está precedido por una barra invertida (\) para evitar fallas en la regla debido a la longitud.
Comprender los contenedores TCP (/etc/hosts.allow y /etc/hosts.deny) en Linux