Administrar reglas de iptables en Linux

17

Tengo muchas reglas para mi configuración de iptables (enrutamiento, prohibiciones de ssh, etc.) También recogí una lista de IP para prohibir desde aquí http://blacklist.linuxadmin.org y ahora se está volviendo realmente complicado.

Mi /etc/sysconfig/iptableses realmente largo. ¿Hay alguna manera de administrar las reglas al incluir reglas de archivos externos?

Por ejemplo:

#include "pre_routing_rules"
#include "ssh_bans"

Esto incluirá las reglas agregadas en los archivos "pre_routing_rules" y "ssh_bans". De esta manera puedo administrar fácilmente mis reglas sin tener que buscar cat /etc/sysconfig/iptables.

peterh - Restablece a Monica
fuente

Respuestas:

11

Prueba los ipsets de iptables . Los ipsets se configuran por separado, y estos también son más rápidos si tiene suficientes direcciones IP para administrar.

La regla de iptables puede referirse a ipset así:

iptables -A ADELANTE -m set --set blocklist src, dst -j DROP

Alexey Naidyonov
fuente
Mi mayor problema es con la dirección IP, así que puedo usar esto.
Estoy usando esta característica. Las IP de mi lista negra / lista blanca son las más grandes, por lo que pueden ir en un ipset. Creo que las cosas previas al enrutamiento pueden permanecer en la lista de configuración principal
Este hilo del foro tiene algunos ejemplos de scripts que usan ipsets: forums.gentoo.org/viewtopic-t-863121.html
mivk
3

Una solución simple es usar múltiples secuencias de comandos bash para cada sección, algo como:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Y ejecute estos archivos desde un script maestro.

Andrei Savu
fuente
Bueno, sí, eso es lo que hago. Pero si tengo que ver la lista de reglas de iptables (por ejemplo, cat / etc / sysconfig / iptables), me mostrará todas las reglas que se agregaron a través de iptables-routing.sh iptables-blacklist.sh
2

iptables no lee el archivo directamente, eso lo hace un programa llamado iptables-restore. Esto generalmente se llama desde uno de sus scripts de inicio.

Puede agregar archivos de entrada adicionales a su línea de restauración de iptables. Tendrá que encontrar dónde está esta línea en su sistema, pero en mi cuadro Debain, está en /etc/init.d/nat

La línea actualmente se lee así:

/sbin/iptables-restore < /etc/network/iptables

Quizás podría cambiarse a algo como esto:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore
Adam Pierce
fuente
2

Tiendo a usar uno de los muchos scripts / herramientas de cortafuegos en la parte superior de iptables, como Firestarter o Shorewall, vienen con muchos archivos, separados por propósito, agregan reglas interesantes para proteger contra ciertos tipos de paquetes falsos y generalmente funcionan bien.

Vinko Vrsalovic
fuente
¿Se pueden usar a través de la línea de comando? Mi servidor es remoto y realmente no prefiero hacer todo X sobre SSH
Shorewall es un conjunto de archivos de texto plano que generan reglas de iptables. Es muy útil desde la línea de comandos y tiene excelentes herramientas de documentación y diagnóstico.
Paul Gear
0

No estoy seguro de qué distribución está ejecutando, ya que la mía no posee el archivo al que se refiere, pero generalmente los archivos que contienen reglas de iptables son solo scripts de shell, por lo que debería poder hacer lo que quiera al tener una línea como :

. / etc / sysconfig / pre_routing_rules

o tal como en la parte superior del archivo iptables al que se refiere.

Comedor de dioses
fuente
Estoy ejecutando Fedora y CentOS