Как добавить новую зону в firewalld, не блокируя `port=80/tcp` в `zone=public` в Ubuntu 20.04

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

Итак, мой вопрос: как добавить новую зону без ее блокировки?

Я описываю то, что я сделал ниже.

( редактировать - в конце этих вопросов я объясняю, что эти же действия успешны в Ubuntu 18.04 и Centos 8, но не работают в Ubuntu 20.04)

Сначала я устанавливаю чистый экземпляр Ubuntu 20.04 на VPS. Затем я запускаю эти команды от имени пользователя root из терминала:

      # make sure ufw is not used
systemctl stop ufw && systemctl disable ufw;

# install a webserver so I can test port 80 will give me a web page
apt-get install -y apache2;

# install firewalld and configure
apt-get install -y firewalld;
systemctl start firewalld;
firewall-cmd --permanent --zone=public --add-port=80/tcp;
firewall-cmd --reload;

Теперь, когда я захожу на IP-адрес своего сервера с помощью веб-браузера, я вижу веб-страницу Apache по умолчанию.

Далее, вот что становится необычным. Я перечислю свои эксперименты в том порядке, в котором я их проводил:

Эксперимент 1 – нет активных зон

Я запускаю командуfirewall-cmd --get-active-zones.

Результат: терминал ничего не показывает.

Эксперимент 2. Добавьте Zone=John без правил.

Я запускаю эти три команды:

      firewall-cmd --new-zone=john --permanent;
firewall-cmd --reload;
firewall-cmd --get-active-zones;

Результат:

Веб-страница отображается правильно.

Но мой терминал по-прежнему не печатает никаких активных зон.

Эксперимент 3. Добавьте правила в зону=john.

Я запускаю эти три команды:

      # replace 1.1.1.1 with my home's ip address
firewall-cmd --zone=john --add-source=1.1.1.1/24 --permanent;
firewall-cmd --reload;
firewall-cmd --get-active-zones;

Результат:

Порт 80 блокируется, время ожидания веб-страницы истекает и она недоступна.

Мой терминал печатает:

      john
  sources: 1.1.1.1/24

Эксперимент 4 — удалить зону = Джон

Я запускаю эти команды:

      firewall-cmd --delete-zone=john --permanent;
firewall-cmd --reload;

Результат:

Моя веб-страница может перезагрузиться снова.

Эксперимент 5 — добавление интерфейса=eth0 в зону=public

Я попытался активировать свою публичную зону с помощью этой команды:

      firewall-cmd --zone=public --permanent --add-interface=eth0;
firewall-cmd
firewall-cmd --reload;
firewall-cmd --get-active-zones;

Результат:

Моя веб-страница все еще может загружаться.

Мой терминал показывает:

      public
  interfaces: eth0

Эксперимент 6 — повторное добавление Zone=john

Я запускаю эти команды:

      firewall-cmd --new-zone=john --permanent;
firewall-cmd --reload;
firewall-cmd --zone=john --add-source=1.1.1.1/24 --permanent;
firewall-cmd --reload;
firewall-cmd --get-active-zones;

Результат:

Порт 80 блокируется, время ожидания веб-страницы истекает и она недоступна.

Мой терминал печатает:

      john
  sources: 1.1.1.1/24
public
  interfaces: eth0

Конечный результат

Итак, после всех этих экспериментов,firewall-cmd --list-all-zonesпокажет это:

      block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


dmz
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


drop
  target: DROP
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


external
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: dhcpv6-client mdns samba-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


internal
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: dhcpv6-client mdns samba-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


john (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 1.1.1.1/24
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


trusted
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


work
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Я пересобрал эту машину VPS, используя Ubuntu 18.04, и запустил тот же сценарий, что и выше. Результат – успех . Я могу добавить новую зону без блокировки.

Я пересобрал эту машину VPS, используя CentOS 8. Затем я взял приведенный выше скрипт и заменилapt-getсyumилиdnf. Результат – успех . Я могу добавить новую зону без блокировки.

Я снова пересобрал эту машину VPS с помощью Ubuntu 20.04 и запустил тот же сценарий. Результат – провал . Новая зона блокируетсяport=80/tcpнаzone=public.

Я не понимаю, почему в Ubuntu 20.04 ничего не получается, а в Ubuntu 18.04 и CentOS 8 все получается.

0 ответов

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