Почему мой брандмауэр сбрасывается при перезагрузке?
Я размещаю игровые серверы на своем выделенном сервере и настраивал брандмауэр несколько дней назад (пришлось заново все настроить, жесткий диск вышел из строя, и я забыл выполнить резервное копирование).
Все работало нормально, правила брандмауэра работали правильно, пока мне не пришлось перезагружать сервер. Я перезагрузил сервер используя стандарт 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