Чи потрібно мені відновлювати правила iptable кожного разу під час завантаження?


18

Кожен раз, коли я перезавантажуюсь, я втрачаю правила iptables, які мене так довго вводять. Я знаю, що можу зберегти їх і відновити під час завантаження , але чи все-таки можна зберегти їх назавжди? Мені справді потрібно щоразу відновлювати їх під час завантаження? Серйозно?

Проблема в тому, що у мене є ВЕЛИЧЕЗНИЙ список IP-адрес, в яких я використовую цикл часу, щоб завантажити їх. Це може зайняти до 10 хвилин.

Це мій домашній FTP-сервер. Це невеликий vm з 1 Гб оперативної пам’яті і дуже малою потужністю обробки. Є дуже багато IP-адрес, тому що я майже відмовився від азіатського континенту. Мені не потрібно, щоб вони щодня з грубою силою вдаряли мій FTP-сервер. Я також блокую gov. монітори, трекери та спамери.

Це цикл while, який я використовую для завантаження в список.

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

Ваше запитання трохи неоднозначне, коли ви говорите «збережіть їх назавжди», я подумав, що ви мали на увазі як у файл, але після прочитання решти це звучить як те, що ви насправді маєте на увазі, що вам не хочеться перезавантажувати їх вручну під час завантаження кожного разу. Крім того, я думаю, що кількість правил, які потрібно буде перезавантажити, буде однаковим, тому це займе певний час, але вам не доведеться робити це вручну, відповівши відповіді панкай.
Джефф Веллінг

Відповіді:


21

Спочатку створіть файл із вмістом iptables-save:

sudo iptables-save > /etc/iptables_rules

Не важливо, куди ви помістите файл, все, що вам потрібно зробити, це переконатися, що наступний рядок стосується того самого файлу. Далі відкрийте /etc/rc.localта додайте цей рядок:

/sbin/iptables-restore < /etc/iptables_rules

Відтепер кожен раз, коли ваш комп'ютер увімкнеться або перезапустить iptables, завантажуватимуться правила з вказаного вами файлу.


1
Я отримую -bash: /etc/iptables_rules: Permission deniedпо першій команді. Що дивно використовувати судо і все.
капдрагон

5
Мені довелося скористатися, sudo sh -c '/sbin/iptables-save > /etc/iptables.save'щоб усунути Permission deniedпомилку. Довідка
капрагон

Ви можете створити файл у будь-якому каталозі, не обов’язково створювати файл у / etc /
pankaj sharma

8
Я б не рекомендував використовувати /etc/rc.localдля цього. Вона виконується пізніше, ніж решта запуску вашої системи, і, можливо, залишає вашу систему в невоєнному стані. Я б запропонував розмістити цей однорядковий скрипт у /etc/network/if-up.d/firewall(новий файл). Це гарантує, що воно буде виконуватися кожного разу при включенні мережевих інтерфейсів.
gertvdijk

2
Помилка дозволів є нормальною / очікуваною. sudo застосовується лише до команди перед ">", перенаправлення файлів здійснюється оболонкою окремо.
ImaginaryRobots

16
apt-get install iptables-persistent

При встановленні він повинен зберігати поточну конфігурацію iptables. В іншому випадку ви можете зберегти їх у ці файли (залежно від v4 або v6), і стійкі до iptables завантажуватимуть їх під час завантаження :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

1

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

http://ipset.netfilter.org/index.html

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