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