Керування правилами 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

Спробуйте ipsetable '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-Resto. Зазвичай це викликається одним із ваших сценаріїв init.

Ви можете додати додаткові вхідні файли до рядка відновлення iptables. Вам доведеться знайти, де цей рядок у вашій системі, але в моєму вікні 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

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


Чи корисні вони через командний рядок? Мій сервер віддалений, і я дуже не віддаю перевагу todo X над SSH

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

0

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

. / etc / sysconfig / pre_routing_rules

або такий, як у верхній частині файлу iptables, на який ви посилаєтесь.


Я запускаю Fedora та CentOS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.