En esta guía, aprenderemos ¿Qué es un envoltorio TCP?para que sirve como Instalar contenedores TCP en Linux,y cómo Restricción del acceso a servidores Linux mediante contenedores TCP.
Tabla de Contenidos
¿Qué es un envoltorio TCP?
contenedor TCP (también conocido como tcp_envoltorio) es un sistema ACL (Lista de control de acceso) basado en host de código abierto para restringir los servicios de red TCP en función de nombres de host, direcciones IP, direcciones de red, etc. Decide a qué host se le debe permitir acceder a un servicio de red en particular.
TCP Wrapper fue desarrollado por programadores y físicos holandeses Witze Zweze Venima 1990 en la Universidad Tecnológica de Eindhoven. Lo mantuvo hasta 1995, luego lo lanzó bajo la licencia BSD en 2001.
¿Los TCP Wrappers son un reemplazo del firewall?
No haga. precaución TCP Wrapper no es un reemplazo completo para un firewall configurado correctamente. es solamente un valiosa adición Mejore la seguridad de los servidores Linux.
Algunas distribuciones de Linux como Debian, Ubuntu han eliminado TCP Wrappers de los repositorios oficiales. Porque la última versión de tcp_wrappers se lanzó hace 20 años. En ese momento, era una herramienta muy poderosa para «bloquear todo el tráfico».
Sin embargo, ahora podemos usar firewall/iptables/nftables para manejar todo el tráfico Capa de red O utilice un filtrado similar a nivel de aplicación. Pero TCP Wrappers solo bloquea las conexiones entrantes a nivel de aplicación.
Si aún prefiere usar TCP Wrappers por cualquier motivo, siempre se recomienda usar TCP Wrappers junto con firewalls configurados correctamente y otros mecanismos y herramientas de seguridad para fortalecer la seguridad de su servidor Linux.
Instalar contenedores TCP en Linux
TCP Wrappers están disponibles en los repositorios oficiales de la mayoría de los sistemas operativos Linux.
Dependiendo de la distribución de Linux que esté utilizando, puede instalar TCP Wrappers de la siguiente manera.
Sistema basado en arcoCerciorarse [Community] Habilite el repositorio y ejecute los siguientes comandos para TCP Wrappers en Arch Linux y sus variantes, como EndeavourOS y Manjaro Linux:
$ sudo pacman -S tcp-wrappers
En Fedora, RHEL, CentOS, AlmaLinux y Rocky Linux:
asegúrese de haber habilitado [EPEL] Repositorio:
$ sudo dnf install epel-release
Luego instale el envoltorio TCP con el comando:
$ sudo dnf install tcp_wrappers
En los sistemas RHEL 6, debe usar yum en lugar de dnf para instalar el contenedor TCP.
$ sudo yum install tcp_wrappers
Configurar el envoltorio TCP
TCP Wrappers implementa el control de acceso con la ayuda de dos archivos de configuración:
/etc/hosts.allow,
/etc/hosts.deny.
Estos dos archivos de lista de control de acceso determinan si los clientes específicos pueden acceder a su servidor Linux.
/etc/hosts.permitir archivo
Este /etc/hosts.allow
El archivo contiene una lista de hosts o redes permitidos o no permitidos. Esto significa que podemos permitir o denegar conexiones a servicios de red definiendo reglas de acceso en este archivo.
/etc/hosts.deny archivo
Este /etc/hosts.deny
El archivo contiene una lista de hosts o redes que no pueden acceder a su servidor Linux.Las reglas de acceso en este archivo también se pueden establecer en /etc/hosts.allow
y ‘deny
‘ opciones
La sintaxis típica para definir una regla de acceso es:
daemon_list : client_list : option : option ...
Dónde,
daemon_list
– El nombre del servicio de red, como SSH, FTP, Portmap, etc.clients_list
– Lista separada por comas de nombres de host válidos, direcciones IP o direcciones de red.options
– Una acción opcional que especifica qué hacer cuando la regla coincide.
Ambos archivos tienen la misma sintaxis.
Reglas para recordar
Antes de usar TCP Wrappers, debe comprender las siguientes reglas importantes. Tenga en cuenta que TCP Wrapper solo hace referencia a estos dos archivos (hosts.allow y hosts.deny).
- reglas de acceso en
/etc/hosts.allow
Aplique el archivo primero.tienen prioridad sobre las reglas/etc/hosts.deny
documento.Por tanto, si se permite el acceso al servicio/etc/hosts.allow
archivo y una regla que deniega el acceso al mismo servicio/etc/hosts.deny
ser ignorado. - Solo se permite una regla por servicio en ambos archivos (
hosts.allow
yhosts.deny
documento). - El orden de las reglas es muy importante. Solo se considera la primera regla coincidente para un servicio determinado. Lo mismo se aplica a ambos archivos.
- Si no hay reglas de servicio coincidentes en ambos archivos, o si ninguno de los archivos existe, todos los hosts remotos pueden acceder al servicio.
- Cualquier cambio en cualquiera de los archivos surtirá efecto inmediatamente sin reiniciar el servicio de red.
Restricción del acceso a servidores Linux mediante contenedores TCP
La forma recomendada de asegurar un servidor Linux es Bloquear todas las conexiones entrantesy solo permite unos pocos hosts o redes específicas.
Para hacer esto, edite /etc/hosts.deny
documento:
$ sudo vi /etc/hosts.deny
Agregue las siguientes líneas. Esta línea se niega a conectarse a todos los servicios y todas las redes.
ALL: ALL
Luego, edita /etc/hosts.allow
documento:
$ sudo vi /etc/hosts.allow
y le permite elegir un host o una red específica.
sshd: 192.168.43.192 192.168.43.193
También puede especificar un nombre de host válido en lugar de una dirección IP, como se muestra a continuación.
sshd: server1.ostechnix.lan server2.ostechnx.lan
Alternativamente, puede /etc/hosts.allow
el archivo en sí.
editar /etc/hosts.permitir archivo y agregue las siguientes líneas.
sshd: 192.168.43.192 192.168.43.193 sshd: ALL: DENY
En este caso no es necesario especificar ninguna regla /etc/hosts.deny
documento.
De acuerdo con las reglas anteriores, se rechazarán todas las conexiones entrantes a todos los hosts excepto dos hosts 192.168.43.192, 192.168.43.193.
Ahora, intente conectarse a su servidor Linux desde cualquier host que no sea el anterior y obtendrá el siguiente error.
ssh_exchange_identification: read: Connection reset by peer
Puede verificar esto desde los archivos de registro del servidor Linux como se muestra a continuación.
$ cat /var/log/secure
Salida de muestra:
Jun 16 19:40:17 server sshd[15782]: refused connect from 192.168.43.150 (192.168.43.150)
Asimismo, puede definir reglas para otros servicios, como vsftpd, en /etc/hosts.allow
El archivo es como se muestra a continuación.
vsftpd: 192.168.43.192 vsftpd: ALL: DENY
De nuevo, no es necesario /etc/hosts.deny
documento. De acuerdo con las reglas anteriores, el host remoto con la dirección IP 192.168.43.192 puede acceder al servidor Linux a través de FTP. Todos los demás hosts serán rechazados.
Además, puede definir reglas de acceso en diferentes formatos en el archivo /etc/hosts.allow como se muestra a continuación.
sshd: 192.168.43.192 #Allow a single host for SSH service sshd: 192.168.43.0/255.255.255.0 #Allow a /24 prefix for SSH vsftpd: 192.168.43.192 #Allow a single host for FTP vsftpd: 192.168.43.0/255.255.255.0 #Allow a /24 prefix for FTP vsftpd: server1.ostechnix.lan #Allow a single host for FTP
Permitir todos los hosts excepto hosts específicos
Puede permitir conexiones entrantes de todos los hosts, pero no de hosts específicos.Por ejemplo, permitir conexiones entrantes de todos los hosts 192.168.43 subred, pero no del host 192.168.43.192agrega la siguiente linea /etc/hosts.allow
documento.
ALL: 192.168.43. EXCEPT 192.168.43.192
En el caso anterior, no necesita agregar ninguna regla en el archivo /etc/hosts.deny.
O puede especificar un nombre de host en lugar de una dirección IP como se muestra a continuación.
ALL: .ostechnix.lan EXCEPT badhost.ostechnix.lan
Consulte la página del manual para obtener más detalles.
$ man tcpd
En conclusión
Como puede ver, ¡proteger los servicios de red en sistemas Linux es fácil con TCP Wrappers! Pero tenga en cuenta que TCP Wrapper no reemplaza a un firewall. Debe usarse con cortafuegos y otras herramientas de seguridad.
recurso: