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


17

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

Ответы:


11

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

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

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


Моя самая большая проблема с IP-адресом, поэтому я могу использовать это.

Я использую эту функцию. Мой черный / белый список IP-адреса являются самыми большими, поэтому они могут идти в ipset. Я думаю, что предварительная маршрутизация может остаться в главном списке конфигурации

В этой ветке форума есть несколько примеров сценариев, использующих ipsets: forums.gentoo.org/viewtopic-t-863121.html
mivk

3

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

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

И запустите эти файлы из мастер-скрипта.


Ну да, это то, что я делаю. Но если мне нужно просмотреть список правил iptables (например, cat / etc / sysconfig / iptables), он покажет мне все правила, которые были добавлены через iptables-routing.sh iptables-blacklist.sh

2

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

2

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


Это можно использовать через командную строку? Мой сервер удаленный, и я действительно не предпочитаю делать X по SSH

Shorewall - это набор текстовых файлов, которые генерируют правила iptables. Это очень удобно из командной строки и имеет отличную документацию и средства диагностики.
Пол Гир

0

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

, / И т.д. / sysconfig / pre_routing_rules

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


Я использую Fedora и CentOS
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.