1. Открытие портов 80 и 443 в firewalld

Открытие портов

Чтобы открыть порты 80 и 443 в текущей зоне (по умолчанию это обычно зона public) и сделать настройки постоянными:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp

Альтернативный способ: использование служб

Поскольку порты 80 и 443 соответствуют службам http и https, можно добавить их вместо указания портов напрямую:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Применение изменений

После добавления портов или служб необходимо перезагрузить firewalld, чтобы применить постоянные настройки:

sudo firewall-cmd --reload

Проверка

Убедитесь, что порты или службы добавлены:

sudo firewall-cmd --list-all

Пример вывода:

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

Или проверьте только порты:

sudo firewall-cmd --list-ports

Вывод: 80/tcp 443/tcp

Для проверки постоянных настроек:

sudo firewall-cmd --permanent --list-all

Примечания

  • Если вы используете нестандартную зону (не public), укажите её явно, например:
  sudo firewall-cmd --zone=dmz --permanent --add-service=http
  sudo firewall-cmd --zone=dmz --permanent --add-service=https
  sudo firewall-cmd --reload
  • Убедитесь, что firewalld запущен:
  sudo systemctl status firewalld

Если не запущен, включите и запустите:

  sudo systemctl enable firewalld
  sudo systemctl start firewalld

---

2. Открытие портов 80 и 443 в iptables (если firewalld отключён)

Если вы отключили firewalld и используете iptables, выполните следующие шаги:

Добавление правил

Добавьте правила для открытия портов 80 и 443:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Сохранение правил

Чтобы правила сохранялись после перезагрузки, используйте iptables-save:

sudo iptables-save > /etc/sysconfig/iptables

Убедитесь, что iptables-сервис включён

Если используется iptables-services:

sudo systemctl enable iptables
sudo systemctl start iptables

Проверка

Проверьте текущие правила:

sudo iptables -L -v -n --line-numbers

Пример вывода:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     1234 567K  ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2       10  600  ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

Или используйте:

sudo iptables-save

---

3. Рекомендация

  • В RHEL 8 предпочтительно использовать firewalld, так как он проще в управлении и поддерживает динамические изменения без потери соединений. Использование служб (http, https) вместо прямого указания портов упрощает управление, так как службы автоматически включают нужные порты (80 для http, 443 для https).
  • Если вы используете iptables, убедитесь, что firewalld отключён, чтобы избежать конфликтов:
  sudo systemctl stop firewalld
  sudo systemctl disable firewalld

---

Ответ на ваш вопрос

Для открытия портов 80 и 443 перманентно в RHEL 8 используйте:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Эти команды заменяют функциональность iptables-save для постоянного сохранения настроек в firewalld. Проверяйте настройки с помощью sudo firewall-cmd --list-all.

========================
---

  • name: Open ports 80 and 443 permanently in firewalld

hosts: all
become: yes
tasks:

  • name: Ensure firewalld is installed

dnf:
name: firewalld
state: present

  • name: Ensure firewalld is started and enabled

systemd:
name: firewalld
state: started
enabled: yes

  • name: Open HTTP service (port 80) permanently

firewalld:
service: http
permanent: yes
state: enabled
immediate: yes

  • name: Open HTTPS service (port 443) permanently

firewalld:
service: https
permanent: yes
state: enabled
immediate: yes

  • name: Reload firewalld to apply changes

command: firewall-cmd --reload
args:
warn: no
--------

  • name: Open port 80 permanently

firewalld:
port: 80/tcp
permanent: yes
state: enabled
immediate: yes

  • name: Open port 443 permanently

firewalld:
port: 443/tcp
permanent: yes
state: enabled
immediate: yes
----------------------------

[file-name 000157_2025-06-16_06-44-36.txt]