Tutoriales

Restricción del acceso a servidores Linux mediante contenedores TCP

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.

¿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 y hosts.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:

LEER  Implemente un clúster de Kubernetes en AWS con Amazon EKS

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba