Каждый раз, когда я перезагружаюсь, я теряю правила iptables, которые так долго вводили. Я знаю, что могу сохранить их и восстановить их при загрузке , но есть ли способ сохранить их навсегда? Мне действительно нужно каждый раз восстанавливать их при загрузке? Серьезно?
Проблема в том, что у меня есть ОГРОМНЫЙ список IP-адресов, в которых я использую цикл while для их загрузки. Это может занять более 10 минут.
Это мой домашний FTP-сервер. Это небольшой виртуальный диск с 1 ГБ оперативной памяти и очень маленькой вычислительной мощностью. Есть очень много IP-адресов, потому что я почти отказался от азиатского континента. Мне не нужно, чтобы они каждый день били по моему FTP-серверу грубой силой. Я также блокирую правительство. мониторы, трекеры и спамеры.
Это цикл while, который я использую для загрузки в список.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Если у вас много правил, вам также следует рассмотреть возможность использования ipset в сочетании с iptables. Ipset использует индексированную таблицу базы данных и работает намного быстрее, чем iptables, когда ищет адрес, чтобы принять или отклонить его.
apt-get install iptables-persistent
При установке следует сохранить текущую конфигурацию iptables. В противном случае вы можете сохранить их в эти файлы (в зависимости от v4 или v6), и iptables-persistent загрузит их при загрузке:)
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
Во-первых, создайте файл с содержанием iptables-save
:
sudo iptables-save > /etc/iptables_rules
На самом деле не имеет значения, куда вы помещаете файл, все, что вам нужно сделать, это убедиться, что следующая строка ссылается в тот же файл. Затем откройте /etc/rc.local
и добавьте следующую строку:
/sbin/iptables-restore < /etc/iptables_rules
С этого момента каждый раз, когда ваш компьютер включается или перезагружается, iptables будет загружать правила из указанного вами файла.