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]