Как разрешить порт через брандмауэр на AlmaLinux
firewalld — это программа брандмауэра по умолчанию, которая предустановлена в Red Hat Enterprise Linux и его производных дистрибутивах Linux , таких как AlmaLinux .
По умолчанию брандмауэр включен, а это означает, что очень ограниченное количество служб может принимать входящий трафик. Это хорошая функция безопасности, но это означает, что пользователь должен быть достаточно осведомленным, чтобы настраивать брандмауэр всякий раз, когда он устанавливает новую службу в системе, например HTTPD или SSH. В противном случае подключения из Интернета не смогут получить доступ к этим службам.
Вместо того, чтобы полностью отключать брандмауэр в AlmaLinux , мы можем разрешить определенные порты через брандмауэр, что позволяет входящим соединениям достигать наших служб. В этом руководстве мы увидим, как разрешить порт через брандмауэр в AlmaLinux. Не стесняйтесь следить за тем, недавно ли вы установили AlmaLinux или перешли с CentOS на AlmaLinux .
Как разрешить порт через брандмауэр на AlmaLinux
Следуйте пошаговым инструкциям ниже, чтобы разрешить порты или службы через firewalld на AlmaLinux. Вы также увидите, как проверить открытые порты, которые настроил firewalld.
При проверке открытых портов брандмауэра в RHEL 8 / CentOS 8 Linux важно знать, что порты брандмауэра можно открыть двумя основными способами. Во-первых, порт брандмауэра можно открыть как часть предварительно настроенной службы. Возьмем такой пример , где мы открываем порт для HTTP
к public
зоне.
# firewall-cmd --zone=public --add-service=http --permanent
Конечно, добавление HTTP-сервиса в firewalld эквивалентно открытию порта 80
.
Во-вторых, порты можно открывать напрямую как порты, предопределенные пользователем. Возьмем этот пример, где мы открываем порт 8080
..
# firewall-cmd --zone=public --add-port 8080/tcp --permanent
Поскольку 8080 не имеет связанной службы, нам необходимо указать номер порта, а не имя службы, если мы хотим открыть этот порт.
Чтобы проверить, какие сервисные порты открыты, выполните следующую команду..
# firewall-cmd --zone=public --list-services cockpit dhcpv6-client http https ssh
Для указанных выше служб (кокпит, DHCP, HTTP, HTTPS и SSH) открыты соответствующие номера портов.
Чтобы проверить, какие номера портов открыты, используйте эту команду.
# firewall-cmd --zone=public --list-ports 20/tcp 8080/tcp
Указанные выше порты 20
и 8080
открыты для входящего трафика.
После того, как вы разрешите свои порты и службы через брандмауэр, нам нужно будет перезагрузить firewalld, чтобы изменения вступили в силу. Все правила с этой --permanent
опцией теперь станут частью конфигурации среды выполнения. Правила без этой опции будут отброшены.
# firewall-cmd --reload
Мы также можем увидеть список всех открытых сервисов и портов, используя --list-all
опцию.
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
--zone=
синтаксис.# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Если вам нужно закрыть один из ранее настроенных открытых портов, вы можете использовать следующий синтаксис команды. В этом примере мы закрываем порт для HTTPS.
# firewall-cmd --zone=public --permanent --remove-service=https
Это все, что нужно сделать. Чтобы узнать больше о firewalld и команде firewall-cmd
Linux, ознакомьтесь с нашим специальным руководством по введению в firewalld и firewall-cmd .
Общие примеры портов
Используйте приведенные ниже команды в качестве простого справочного руководства, чтобы разрешить некоторые из наиболее распространенных служб через брандмауэр на AlmaLinux.
Как разрешить HTTP через брандмауэр.
# firewall-cmd --zone=public --add-service=http --permanent
Разрешить HTTPS через брандмауэр.
# firewall-cmd --zone=public --add-service=https --permanent
Разрешить MySQL через брандмауэр.
# firewall-cmd --zone=public --add-service=mysql --permanent
Как разрешить SSH через брандмауэр..
# firewall-cmd --zone=public --add-service=ssh --permanent
# firewall-cmd --zone=public --add-service=dns --permanent
Как разрешить PostgreSQL через брандмауэр.
# firewall-cmd --zone=public --add-service=postgresql --permanent
Разрешить Telnet через брандмауэр.
# firewall-cmd --zone=public --add-service=telnet --permanent
В этом руководстве мы увидели, как разрешить порт или службу через брандмауэр в AlmaLinux. Для этого использовалась команда firewall-cmd, связанная с firewalld, которая упрощает процесс, если мы знаем правильный синтаксис для использования. Мы также видели несколько примеров разрешения многих наиболее распространенных служб через брандмауэр. Не забудьте обратить особое внимание на то, в какой зоне вы применяете новые правила.