Я пробовал много подобных вопросов, как показано ниже, в моем случае я использовал виртуальную машину с ОС Debian в виртуальном поле:
Я попытался сбросить правила 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
Вы пробовали 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 детали врага