Назад | Перейти на главную страницу

Iptables не восстанавливал новые правила после перезагрузки

Я пробовал много подобных вопросов, как показано ниже, в моем случае я использовал виртуальную машину с ОС Debian в виртуальном поле:

  1. Как запустить / остановить iptables на Ubuntu?
  2. https://unix.stackexchange.com/questions/52376/why-do-iptables-rules-disappear-when-restarting-my-debian-system
  3. https://www.digitalocean.com/community/tutorials/how-to-list-and-delete-iptables-firewall-rules
  4. https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-iptables-on-ubuntu-14-04

Я попытался сбросить правила iptables с помощью этой команды.

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Следует с этой командой

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Когда я перезагружаю виртуальную машину, у меня все те же правила. Я пытался использовать iptables-save, и у меня всегда были эти правила.

# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*nat
:PREROUTING ACCEPT [127:23299]
:INPUT ACCEPT [14:1996]
:OUTPUT ACCEPT [32:1947]
:POSTROUTING ACCEPT [32:1947]
:OUTPUT_direct - [0:0]
:POSTROUTING_ZONES - [0:0]
:POSTROUTING_ZONES_SOURCE - [0:0]
:POSTROUTING_direct - [0:0]
:POST_public - [0:0]
:POST_public_allow - [0:0]
:POST_public_deny - [0:0]
:POST_public_log - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A OUTPUT -j OUTPUT_direct
-A POSTROUTING -j POSTROUTING_direct
-A POSTROUTING -j POSTROUTING_ZONES_SOURCE
-A POSTROUTING -j POSTROUTING_ZONES
-A POSTROUTING_ZONES -g POST_public
-A POST_public -j POST_public_log
-A POST_public -j POST_public_deny
-A POST_public -j POST_public_allow
-A PREROUTING_ZONES -g PRE_public
-A PRE_public -j PRE_public_log
-A PRE_public -j PRE_public_deny
-A PRE_public -j PRE_public_allow
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*mangle
:PREROUTING ACCEPT [4925:1051078]
:INPUT ACCEPT [4925:1051078]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4791:1080206]
:POSTROUTING ACCEPT [4791:1080206]
:FORWARD_direct - [0:0]
:INPUT_direct - [0:0]
:OUTPUT_direct - [0:0]
:POSTROUTING_direct - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A INPUT -j INPUT_direct
-A FORWARD -j FORWARD_direct
-A OUTPUT -j OUTPUT_direct
-A POSTROUTING -j POSTROUTING_direct
-A PREROUTING_ZONES -g PRE_public
-A PRE_public -j PRE_public_log
-A PRE_public -j PRE_public_deny
-A PRE_public -j PRE_public_allow
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*security
:INPUT ACCEPT [4826:1030935]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4814:1084121]
:FORWARD_direct - [0:0]
:INPUT_direct - [0:0]
:OUTPUT_direct - [0:0]
-A INPUT -j INPUT_direct
-A FORWARD -j FORWARD_direct
-A OUTPUT -j OUTPUT_direct
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*raw
:PREROUTING ACCEPT [4949:1054264]
:OUTPUT ACCEPT [4815:1084545]
:OUTPUT_direct - [0:0]
:PREROUTING_direct - [0:0]
-A PREROUTING -j PREROUTING_direct
-A OUTPUT -j OUTPUT_direct
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*filter
:INPUT ACCEPT [2653:591941]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2649:609004]
COMMIT
# Completed on Wed Mar 28 03:44:14 2018

Я хочу, чтобы правила были ниже. Я установил свой rules.v4 к этой команде:

# Generated by iptables-save v1.4.21 on Tue Mar 27 02:48:59 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Tue Mar 27 02:48:59 2018

Но всякий раз, когда я перезагружаю систему, у меня всегда остаются предыдущие правила ...

Что могло пойти не так с моей конфигурацией? Я что-то пропустил

Я попытался удалить iptables-persistent и снова установить его, но правила остались прежними ...

Что в твоем rules.v4 это то, что будет использоваться при загрузке системы. Вы можете сохранить текущую конфигурацию iptables-save > rules.v4 и тогда он будет сохраняться после перезагрузки, если вы используете iptables-persistent

Потому что iptables-save печатает вашу конфигурацию только в STDOUT, но вы хотите сохранить свою конфигурацию в rules.v4 файл.

Чтобы сохранить текущие правила в файл, используйте iptables-save. Например:

iptables-save > /etc/sysconfig/iptables

Чтобы загрузить сохраненные правила из этого файла, используйте iptables-restore. Например:

iptables-restore < /etc/sysconfig/iptables

Обычно я помещаю скрипт брандмауэра в мою корневую папку, которая включает все команды iptables. В конце добавляю

iptables-save > /etc/iptables.conf
ip6tables-save > /etc/ip6tables.conf

Затем сохраните, chmod + x скрипт и запустите его.

Затем в моем / etc / network / interfaces я добавляю

pre-up iptables-restore < /etc/iptables.conf
pre-up ip6tables-restore < /etc/ip6tables.conf

в раздел iface lo.

Это также позволяет мне копировать настройки брандмауэра между серверами, поскольку я обычно использую удаление политики и открываю только необходимые порты.

Также большая проблема безопасности:

sudo iptables -P INPUT ACCEPT

Эта команда устанавливает ПОЛИТИКУ на принятие. Это означает, что каждый порт на вашем компьютере открыт. Всегда используйте отбрасывание политики и открывайте только необходимые порты.

iptables не сохраняет вашу конфигурацию по умолчанию и не восстанавливает правила после перезагрузки.

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

iptables сохранить

sudo iptables-save > /etc/iptables.rules

iptables восстановить

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

Вы также можете создать ряд правил, когда ваш интерфейс выходит из строя.

пример

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

https://help.ubuntu.com/community/IptablesHowTo

Вы пробовали UFW (несложный брандмауэр) ?! https://wiki.debian.org/Uncomplicated%20Firewall%20%28ufw%29

Это интерфейсная программа для cmd, которая использует IPTables (также у вас есть gufw, если необходимо), что упрощает использование iptables в реальном времени.

Вам необходимо установить пакет iptables-persistent (apt-get install iptables-persistent) и сохранить свои правила в /etc/iptables/rules.v4 для ipv4 и /etc/iptables/rules.v6 для ipv6 (если есть). Проверять, выписываться https://unix.stackexchange.com/questions/125833/why-isnt-the-iptables-persistent-service-saving-my-changes детали врага