Каждый раз, когда я перезагружаюсь, я теряю правила iptables, которые так долго вводили. Я знаю, что могу сохранить их и восстановить при загрузке , но есть ли способ сохранить их навсегда? Мне действительно нужно каждый раз восстанавливать их при загрузке? Шутки в сторону?
Проблема в том, что у меня ОГРОМНЫЙ список IP-адресов, в которых я использую цикл while для их загрузки. Это может занять более 10 минут.
Это мой домашний FTP-сервер. Это небольшой виртуальный диск с 1 ГБ оперативной памяти и очень маленькой вычислительной мощностью. Есть очень много IP-адресов, потому что я почти отказался от азиатского континента. Мне не нужно, чтобы они каждый день били мой FTP-сервер грубой силой. Я также блокирую правительство. мониторы, трекеры и спамеры.
Это цикл while, который я использую для загрузки в списке.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Ответы:
Сначала создайте файл с содержимым
iptables-save
:Неважно, куда вы положили файл, все, что вам нужно сделать, это убедиться, что следующая строка ссылается на тот же файл. Далее откройте
/etc/rc.local
и добавьте эту строку:С этого момента каждый раз, когда ваш компьютер включается или перезагружается, iptables будет загружать правила из указанного вами файла.
источник
-bash: /etc/iptables_rules: Permission denied
по первой команде. Что странно, используя sudo и все такое.sudo sh -c '/sbin/iptables-save > /etc/iptables.save'
чтобы обойтиPermission denied
ошибку. Ссылка/etc/rc.local
для этого. Он выполняется позже, чем остальная часть вашего запуска системы и, возможно, оставит вашу систему в состоянии без брандмауэра. Я бы предложил разместить этот однострочный скрипт в/etc/network/if-up.d/firewall
(новый файл). Это гарантирует, что он будет выполняться каждый раз, когда вы включаете сетевые интерфейсы.При установке он должен сохранить ваш текущий конфиг iptables. В противном случае вы можете сохранить их в эти файлы (в зависимости от v4 или v6), и iptables-persistent загрузит их при загрузке :)
источник
Если у вас много правил, вам также следует рассмотреть возможность использования ipset в сочетании с iptables. Ipset использует индексированную таблицу базы данных и работает намного быстрее, чем iptables, когда ищет адрес, чтобы принять или отклонить его.
http://ipset.netfilter.org/index.html
источник