Почему мой брандмауэр сбрасывается при перезагрузке?

Я размещаю игровые серверы на своем выделенном сервере и настраивал брандмауэр несколько дней назад (пришлось заново все настроить, жесткий диск вышел из строя, и я забыл выполнить резервное копирование).

Все работало нормально, правила брандмауэра работали правильно, пока мне не пришлось перезагружать сервер. Я перезагрузил сервер используя стандарт reboot команда, и сервер никогда не возвращался.

Я связался с моим провайдером, который посмотрел на него, и заметил, что правила в iptables были полностью сброшены, блокируя каждый порт на сервере.

Я включил брандмауэр через sudo ufw enable и добавил соответствующие в iptables ( как видно здесь):

sudo ufw enable
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8881 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8881 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8880 -j DROP
sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8881 -j DROP
sudo iptables-save > /etc/network/iptables.rules
reboot

В моем interfaces файл, который я положил pre-up iptables-restore < /etc/network/iptables.rules в конце.

Что я сделал не так, или если я не сделал ничего плохого, то почему ufw сбросить / заблокировать все порты при перезагрузке сервера?

1 ответ

Решение

Хорошо, если вы используете iptables из командной строки вы не восстановитесь при перезагрузке или перезагрузке.

Вы можете установить свои правила брандмауэра с помощью ufw инструкции здесь или если вам действительно нужно использовать iptables вам нужно сохранить ваши правила в файл и восстановить их до того, как ваша сеть загрузится, вы также должны отключить ufw как предположил бодхи.зазен:

sudo ufw disable # You don't want UFW managaing your firewall if you are.
iptables -A INPUT -p tcp --match multiport --dports 1:79 -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 81:65535 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.rules"

Предполагая, что вы настроили свои сетевые интерфейсы, используя /etc/network/interfaces

Найдите заглушку для вашего интерфейса и добавьте в раздел следующее:

pre-up iptables-restore < /etc/iptables.rules

например

auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
# post-down iptables-restore < /etc/iptables.downrules # if needed

Более подробные инструкции и варианты здесь

Другие вопросы по тегам