Problema al configurar iptables (tráfico LDAP bloqueado)

Problema al configurar iptables (tráfico LDAP bloqueado)

Mi servidor de aplicaciones está en una red protegida por un firewall para toda la organización y mi servidor también utiliza fail2ban. Dicho esto, me gustaría configurar una capa adicional de protección con iptables. Estoy teniendo un pequeño problema con mi configuración.

Requisitos:

  1. Denegar el acceso a todos y luego permitir un rango de IP específico (4.3.4.0/16)
  2. Funcionalidad LDAP continua en la aplicación (usando ldap_connecten PHP)
  3. Capacidad de recuperar contenido externo a través de URL

Conocidos:

  • La IP del servidor de aplicaciones es 1.2.3.4
  • El servidor LDAP resuelve en 1.2.100.200 y utiliza el puerto 636
  • La IP estática de mi portátil es 4.3.2.1

Lo que he probado:

Comenzando con una iptablesconfiguración básica que permite el tráfico a través de los puertos 22, 80 y 443, agregué lo siguiente.

# explicitly allow ssh access from my laptop
iptables -A INPUT -s 4.3.2.1 -d 1.2.3.4 -p tcp --dport 22 -j ACCEPT

# deny all traffic
iptables --policy INPUT DROP

# allow traffic from a specific IP range
iptables -A INPUT -s 4.3.4.0/24 -j ACCEPT

# allow traffic from LDAP server IP
iptables -A INPUT -s 1.2.100.200 -j ACCEPT
iptables -A INPUT -p tcp --dport 636 -j ACCEPT

Guardo esa configuración usando service iptables savey luego reinicio el servicio.

Problemas:

Si ya inicié sesión, puedo navegar y usar la aplicación (excepto por una cosa, a continuación). Si no inicio sesión, la autenticación LDAP se bloquea.

El segundo problema es que no puedo acceder a contenido externo con la nueva configuración. Recupero datos de otra máquina usando HTTPS. ¿Se trata simplemente de agregar una regla para permitir el tráfico saliente a la IP de la máquina externa?

Respuesta1

¿Podría el servidor LDAP estar utilizando puertos no estándar?

Puede ver en qué puerto está escuchando el servidor ldap a través denetstat -tlpn

El segundo problema es que no puedo acceder al contenido externo con la nueva configuración.

Supongo que quiere decir que no puede conectarse a los recursos de red desde esta máquina después de aplicar estas reglas. Es probable que las solicitudes se estén enviando (ya que aparentemente no configuró OUTPUTla política predeterminada de DROP) pero el firewall está eliminando las respuestas del servidor remoto.

Puede verificar que esto suceda monitoreando el recuento de paquetes de la política predeterminada a medida que genera el tráfico que le interesa:

root@xxxxxxvld02 ~ $ iptables -nvL
Chain INPUT (policy ACCEPT 157 packets, 18048 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 63 packets, 6998 bytes)
 pkts bytes target     prot opt in     out     source               destination

En lo anterior, 157 packetsen la INPUTcadena está el recuento de paquetes a los que se les aplicó la política predeterminada (las reglas tienen sus propios recuentos a la izquierda y no cambian ese número en la parte superior).

Probablemente quieras crear una regla que permita explícitamente el tráfico relacionado con conexiones ya existentes:

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

información relacionada