iptables no parece bloquear los correos salientes

iptables no parece bloquear los correos salientes

Tengo una máquina CentOS ejecutando exim, estoy intentando restringir los correos electrónicos salientes solo a un dominio (digamos dominio.com) y bloquear los correos a todos los demás dominios. Agregué reglas específicas para permitir correos salientes a dominio.com (números de línea 6, 7 y 8) y la acción predeterminada para la cadena de salida es bloquear. Pero aún así se envían correos a Gmail, Yahoo y otros dominios. ¿Qué hay de malo en mis reglas de iptables?

A continuación se detallan las reglas de salida.

    root@host1 [/tmp/logd]# /sbin/iptables -L OUTPUT -n --line-number -v
    Chain OUTPUT (policy DROP 0 packets, 0 bytes)
    num   pkts bytes target     prot opt in     out     source               destination
    1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.x.x.x      /* test */
    2     3455  420K ACCEPT     tcp  --  *      *       0.0.0.0/0            23.x.x.x      tcp dpt:443
    3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.x.x.x       tcp dpt:80
    4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.x.x.x       tcp dpt:80
    5      0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.20.5.21         tcp dpt:80 /* www.spamhaus.org */
    6      0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            216.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    7     69 16484 ACCEPT     tcp  --  *      *       0.0.0.0/0            216.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    8     68 10803 ACCEPT     tcp  --  *      *       0.0.0.0/0            173.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    9   800K  826M LOCALOUTPUT  all  --  *      !lo     0.0.0.0/0            0.0.0.0/0
    10      0     0 ACCEPT     tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    11      0     0 ACCEPT     udp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           udp dpt:53
    12      9   536 ACCEPT     tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           tcp spt:53
    13   2147  313K ACCEPT     udp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           udp spt:53
    14  11324   17M ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
    15   797K  826M INVALID    tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0
    16   797K  826M ACCEPT     all  --  *      !lo     0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    17      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 0
    18      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 8
    29      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 11
    20      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 3
    21    372 25376 LOGDROPOUT  all  --  *      !lo     0.0.0.0/0            0.0.0.0/0

Respuesta1

No sé si también tienes IPv6 en esta caja. Si es así, exim intentará enviar a través de IPv6 de forma predeterminada, antes de volver a recurrir a IPv4. Pero creo que el problema aquí no es iptables per se, sino la forma en que se manejan y buscan esos dominios. Es casi imposible filtrar según la dirección IP, ya que las empresas más grandes tienen varios trucos de enrutamiento y BGP para reducir la latencia y cómo se enruta el tráfico a sus dominios.

En su lugar, le sugeriría que configure exim4 para enviar solo correos electrónicos a sus dominios salientes permitidos y luego pasar a cualquier otra cosa, tal vez con algo como esto:Bloquear correos salientes a algunos usuarios en exim

Respuesta2

Creo que tu idea general de cómo hacer esto es incorrecta. Estos temas suelen llenar libros, pero intentaré explicarlos brevemente:

Probablemente asuma que el servidor de correo domain.comtiene la misma dirección IP que domain.comél. Si bien esto accidentalmente podría ser cierto en algunos (o incluso en muchos) casos, no es cierto en general.

Más bien, hay entradas en los registros DNS de un dominio que determinan qué servidor (dirección IP) maneja el correo del dominio. Es posible que ya hayas visto registros DNS como este:

domain.com.        1H MX 50    mail.domain.com
domain.com.        1H IN A     2.3.4.5
mail.domain.com    1H IN A     1.2.3.4

Esto significa que el servidor de correo (por ejemplo mail.domain.com, ) domain.compodría estar en una dirección IP diferente a domain.comla suya.

Ahora, si envía un correo electrónico desde su programa de software de correo electrónico (también llamado MUA - agente de usuario de correo), el MUA entrega el mensaje a Exim. Cuando Exim intenta transmitir el mensaje al destinatario, primero busca el servidor de correo que manejará el correo para el dominio del destinatario y luego intenta conectarse a ese servidor y entregar el mensaje allí.

Esto significa quetu método incluso podría impedirte enviarcualquiercorreo electrónico.Supongamos domain.comque se resuelve en 1.1.1.1, pero el servidor de correo de domain.comestá en (o se resuelve) en 2.2.2.2. Dado que su firewall permite pasar tráfico solo a 1.1.1.1, no puede enviar ningún correo electrónico ni siquiera a domain.com, porque el correo electrónico a domain.comtendría que entregarse a 2.2.2.2.

Esta es sólo una de varias razones por las que no debería utilizar el firewall para lograr su objetivo. Como dijo @Fredrik Lundhag, deberías configurar Exim en consecuencia.

información relacionada