У меня есть много правил для настройки 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, на который вы ссылаетесь.