Tengo un servidor Debian desde el cual quiero bloquear todos los puertos entrantes y salientes (especialmente todos los puertos de correo electrónico salientes), excepto aquellos que agrego específicamente en iptables. La configuración actual que tengo está funcionando y parece lo suficientemente restrictiva, pero cuando inicio una telnetsesión para probar, por ejemplo, el puerto 25 para smtp, parece conectarse sin problemas, aunque no abrí específicamente el puerto 25 como puerto de SALIDA. Me di cuenta de que cuando limpio las iptables con iptables -F, la conexión está bloqueada, pero la resolución de DNS y el tráfico http tampoco funcionan. Podría ser importante mencionar que también ejecuto Docker en este servidor, lo que significa que Docker mantiene sus propias cadenas de iptables que no enumeraré específicamente en esta pregunta. Ninguna de las reglas de Docker tiene el puerto 25,pero ¿tal vez Docker establece las reglas generales demasiado sueltas?

No he encontrado una manera fácil de intentar enviar un correo electrónico al puerto smtp 25, pero supuse que establecer con éxito una sesión de telnet también permitiría utilizar la misma conexión para enviar correo.

¿Alguien podría indicarme la dirección correcta?

La salida de telnet:

$ telnet smtp-relay.gmail.com 25
Trying 2a00:1450:4013:c03::1c...
Connected to smtp-relay.gmail.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP k6sm844273wms.37 - gsmtp

Cadenas de ENTRADA y SALIDA de mis iptables actuales:

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             match-set blacklist src
ACCEPT     icmp --  192.168.4.0/24       anywhere             icmp echo-request
ACCEPT     tcp  --  192.168.4.0/24       anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp echo-reply state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:domain state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport sports http,https state RELATED,ESTABLISHED

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     icmp --  anywhere             192.168.4.0/24       icmp echo-reply state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             192.168.4.0/24       tcp spt:ssh state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https
answer
$ telnet smtp-relay.gmail.com 25
Trying 2a00:1450:4013:c03::1c...

Su sistema tiene IPv6 habilitado y se está conectando al servidor remoto que lo usa.

Solo muestra extractos de su firewall IPv4, así que supongo que no configuró su firewall Ipv6 adecuadamente.