Перезагрузка / перезапуск Iptables в Ubuntu 18.04

У меня есть проблема с iptables в Ubuntu 18.04 до того, что я использовал с Centos 7 и Red Hat, и я могу просто перезапустить с

systemctl restart iptables

, но в Ubuntu это не работает. Я не мог найти iptable под init.d.

Кто-нибудь может мне помочь, как я могу перезапустить или перезагрузить его в Ubuntu 18.04?

14
задан 7 July 2018 в 17:45

5 ответов

Если Вы хотели бы, чтобы Ваш брандмауэр Ubuntu функционировал похожим способом к RedHat/Fedora в Ubuntu 18.04, Вы, вероятно, хотите их:

sudo apt install iptables-persistent netfilter-persistent

Затем отредактируйте правила в /etc/iptables/rules.v[46]

Другие команды, которые могли бы быть полезными:

netfilter-persistent save
netfilter-persistent start

iptables-save  > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

iptables-restore  < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

systemctl stop    netfilter-persistent
systemctl start   netfilter-persistent
systemctl restart netfilter-persistent

Эти два пакета подобны, но обеспечивают немного отличающуюся функциональность. Если Вы только устанавливаете iptables-persistent, Вы не получите сервисный файл определения для корректной обработки в systemd, например, /lib/systemd/system/netfilter-persistent.service

Если Вы только устанавливаете netfilter-persistent, Вы найдете, что правила правильно не применяются при начальной загрузке согласно README

netfilter-persistent and its plugins
------------------------------------

netfilter-persistent does no work on its own. You need the accompanying
plugins (for example, iptables-persistent) to load and save filter rules.

However, commands are run from netfilter-persistent. For example, to save
all filter rules:

   netfilter-persistent save

or to load them:

   netfilter-persistent start

For more details, see `man netfilter-persistent`.

The system service will try to load rules at startup if enabled, but by
default it will not flush rules at shutdown. This behaviour can be changed
by editing /etc/default/netfilter-persistent.
26
ответ дан 7 July 2018 в 17:45

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

Для Ubuntu 18.04 кажется, что firewalld стал по умолчанию, где ufw установлен, но не активен.

root@localhost:~# firewall-cmd --state 
running
root@localhost:~# ufw status
Status: inactive

Поэтому вместо создания собственных правил соответствия iptables вы должны использовать эти интерфейсы для создания конфигурации брандмауэра.

Я не знаком с ufw, но уверен, что вы найдете информацию здесь с помощью Askubuntu или где-то еще в Интернете.
firewalld поставляется с графическим интерфейсом (firewall-config) и инструментом командной строки firewall-cmd.
С firewalld у вас есть возможность добавить правила, не применяя их прямо сейчас ( постоянный ), и применять их только после перезагрузки брандмауэра. Или вы можете добавить их в свою рабочую конфигурацию , протестировать ее и затем добавить в постоянную конфигурацию.
Например, перезагрузить Недавно добавив постоянную конфигурацию к вашим работающим правилам , вам нужно будет ввести команду следующим образом или сделать соответствующие щелчки в графическом интерфейсе.

firewall-cmd --reload

На первый взгляд это может показаться немного более сложным, поскольку firewalld следует зонам и концепции цепочек . Но он прекрасно интегрируется с NetworkManager , поставляется с графическим интерфейсом ...
Хорошей отправной точкой для знакомства с ней является здесь .

4
ответ дан 7 July 2018 в 17:45

Вы можете проверить содержимое пакета с помощью:

dpkg -L iptables-persistent

И тогда вы обнаружите, что следующая команда верна:

/etc/init.d/netfilter-persistent restart
2
ответ дан 7 July 2018 в 17:45

Debian / Ubuntu не имеет сценария инициализации для iptables (в отличие от любых fedora / RHEL / Centos)

У вас есть e, чтобы написать сценарий, или смотрите сброс iptables при перезагрузке сервера

Поочередно используйте UFW https://help.ubuntu.com/community/UFW

Или firewalld

Как мы можем заменить iptables с firewalld в Ubuntu 16.04?

-2
ответ дан 7 July 2018 в 17:45

В Ubuntu 1804 для сохранения состояния используйте команду: iptables-save > /etc/iptables/rules.v4

или просто вручную добавьте строку iptables в файл: /etc/iptables/rules.v4

0
ответ дан 1 February 2020 в 13:39

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

Похожие вопросы: