Назад | Перейти на главную страницу

Управление правилами iptables в Linux

У меня есть много правил для настройки iptables (маршрутизация, запреты ssh и т. Д.) Я также взял список IP-адресов, которые нужно запретить отсюда http://blacklist.linuxadmin.org и теперь все становится действительно сложно.

Мой /etc/sysconfig/iptables действительно долго. Есть ли способ управлять правилами, включая правила из внешних файлов?

Например:

#include "pre_routing_rules"
#include "ssh_bans"

Это будет включать правила, добавленные в файлы "pre_routing_rules" и "ssh_bans". Таким образом, я могу легко управлять своими правилами, не копаясь в cat /etc/sysconfig/iptables.

Пытаться ipset iptables. ipsets настраиваются отдельно, и они также работают быстрее, если у вас достаточно IP-адресов для управления.

Правило iptables может относиться к ipset следующим образом:

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

Одно простое решение - использовать несколько сценариев bash для каждого раздела, например:

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

И запустите эти файлы из главного скрипта.

iptables не читает файл напрямую, это делает программа iptables-restore. Обычно это вызывается из одного из ваших сценариев инициализации.

Вы можете добавить дополнительные входные файлы в строку iptables-restore. Вам нужно будет найти, где эта строка находится в вашей системе, но в моем поле Debain она находится в /etc/init.d/nat

Сейчас строка выглядит так:

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

Возможно, его можно было бы изменить примерно так:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore

Я обычно использую один из многих сценариев / инструментов межсетевого экрана поверх iptables, например Firestarter или Shorewall, они поставляются с множеством файлов, разделенных по назначению, добавляют интересные правила для защиты от определенных типов поддельных пакетов, и они обычно работают хорошо.

Я не уверен, какой дистрибутив вы используете, поскольку у меня нет файла, на который вы ссылаетесь, но обычно файлы, содержащие правила iptables, являются просто сценариями оболочки, поэтому вы должны иметь возможность делать то, что хотите, имея строку Такие как :

. / и т.д. / sysconfig / pre_routing_rules

или что-то подобное в верхней части файла iptables, на который вы ссылаетесь.