¿Qué es una configuración sólida de iptables para mi escritorio?

¿Qué es una configuración sólida de iptables para mi escritorio?

En mi escritorio, quiero configurar iptables de manera bastante estricta. No veo ninguna razón por la que deba permitir nada excepto el tráfico de Internet que inicié. Y tal vez incluso eso podría limitarse a unos pocos puertos. ¿Cuáles son las reglas básicas que pueden cerrar mi escritorio? Yo sólo necesito:

  • Para navegar por internet
  • Descargar correo electrónico

¿Algún conjunto de reglas recomendado?

Respuesta1

Las siguientes reglas permitirán todas las conexiones salientes, pero bloquearán las conexiones entrantes. Las cadenas INPUT y FORWARD están configuradas para rechazar paquetes de forma predeterminada, la cadena OUTPUT está configurada para aceptar paquetes de forma predeterminada y la última regla permite paquetes entrantes que forman parte de conexiones existentes (que en este caso solo pueden ser conexiones salientes).

iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT

Si desea restringir el tráfico saliente, debe cambiar la política de SALIDA para rechazar y agregar reglas para aceptar tráfico en ciertos puertos. Por ejemplo:

iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT

Respuesta2

El siguiente iptables-restorescript debería ser suficiente para sus necesidades:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT

El script se puede acortar aún más eliminando la regla que permite pings ICMP, pero no recomendaría hacerlo. En mi opinión, responder al ping no daña mucho la seguridad (si es que lo hace) y puede ser útil para solucionar problemas de red.

Si desea permitir conexiones entrantes en un puerto TCP en particular (por ejemplo, para permitir sshconexiones), puede agregar reglas a su script, como las siguientes, justo encima de la COMMITdeclaración:

-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

información relacionada