Existen enlaces a documentación oficial y recomendada en el sitio web de Netfilter.
Este no es un tema nuevo, los recursos son ilimitados .
La mayoría de los comandos básicos son bastante intuitivos y pueden hacer referencia fácilmente a la página de manual .
netfilter, que es la tecnología de nivel de kernel que permite el filtrado de paquetes, es bastante avanzada. Hay tablas adicionales que pueden alterar paquetes, traducir paquetes y afectar el enrutamiento. La iptablesutilidad es la herramienta de usuario para interactuar con netfilter. Si desea obtener información sobre la funcionalidad avanzada, le sugiero que consulte la documentación mencionada anteriormente. Para una introducción a la funcionalidad básica, lea más.
Para enumerar todas las reglas existentes:
iptables -L -n
-n evita que iptables resuelva ips, lo que produce una salida más rápida.
La tabla predeterminada es la filtertabla, que es la que se usa para aplicar reglas básicas de firewall a las tres cadenas. Las tres cadenas por defecto en la filtertabla son INPUT, OUTPUTy FORWARD.
Las cadenas son en gran parte autoexplicativas. La cadena de ENTRADA afecta los paquetes que ingresan, la cadena de SALIDA afecta los paquetes generados localmente y, finalmente, ENVIAR los paquetes que se enrutan a través del sistema.
Entre los objetivos que puede especificar, puede DROPpaquetes, lo que significa simplemente ignorar y no responder. Puede REJECTpaquetes, donde se enviaría una respuesta icmp a la fuente de la negación. Finalmente, puede ACCEPThacerlo, lo que permite que los paquetes continúen enrutando.
A menudo, con un firewall externo, la opción predeterminada será la DROPopuesta REJECT, ya que reduce la huella visible de su red en Internet. Por ejemplo, una IP que de otro modo limita los servicios a un host específico tendría menos visibilidad con DROP.
Nota, -Asignifica agregar al final de la cadena. Si desea insertar en la parte superior, puede usar -I. Todas las reglas se procesan de arriba hacia abajo. -Dpara su eliminación
A DROPun paquete entrante procedente de 192.168.235.235:
iptables -A INPUT -s 192.168.235.235 -j DROP
Esto salta al DROPobjetivo para todos los protocolos que provienen de esa IP.
Aceptar:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Para evitar el acceso a esa IP desde su servidor o red local:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Puede especificar el -pprotocolo, el -sorigen del paquete, el -ddestino del paquete, el puerto de destino --dport, el puerto de origen --sporty muchos otros indicadores que afectarán la forma en que la regla trata los paquetes.
Si su INPUTpolítica predeterminada fuera DROPy desea permitir que todos en la 192.168.123.0/24subred accedan a SSH en su servidor, este es un ejemplo:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Así es, ¡también puedes usar la notación CIDR !
En términos generales, la mejor política predeterminada es DROPpara todas las cadenas. Cada cadena tiene una política predeterminada, que se especifica mediante la -Pbandera. Incluso si tiene su política establecida por defecto DROP, se recomienda que la entrada final en una cadena también sea una DROP.
Por ejemplo, para cambiar la política a DROPlas cadenas INPUT, FORWARD y OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Tenga cuidado , si especifica la política predeterminada de DROP for INPUT en un sistema remoto sin primero permitirse el acceso SSH, podría evitar el acceso al sistema. Si está en un sistema remoto, puede especificar un crontab temporal para eliminar todas las reglas cada 5 minutos como a prueba de fallas.
Para eliminar todas las reglas y permitir todo el tráfico:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Tenga en cuenta que -Xelimina todas las cadenas creadas. -FLimpia todas las reglas.
Hay herramientas nativas para guardar y restaurar las reglas. En particular, iptables-savey iptables-restore. La mayoría de las distribuciones modernas de Linux tienen savey restorefuncionan dentro de un archivo de inicio de iptables proporcionado con el sistema.
Existen otras prácticas recomendadas de firewall, como descartar paquetes mal formados y otro tipo de tráfico no deseado. Esta es una ventaja de utilizar una utilidad front-end como Shorewall , ya que implementará muchas de estas políticas de forma predeterminada. Sin embargo, estoy de acuerdo con su enfoque y prefiero mantener mis propias reglas directamente también, y estas mismas mejores prácticas se pueden implementar sin un front-end.
Tutorial de Iptables
fuente
Encontré https://help.ubuntu.com/community/IptablesHowTo útil recientemente. No creo que nada allí sea especialmente específico de Ubuntu.
fuente