Как разрешить порт через брандмауэр на AlmaLinux

Как разрешить порт через брандмауэр на 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:
Обратите внимание, что firewalld работает с зонами. В зависимости от того, какую зону использует ваш сетевой интерфейс (ы), вам может потребоваться добавить разрешенный порт в эту конкретную зону. Первый шаг выше показывает, как добавить правило в «публичную» зону. Чтобы увидеть правила конкретно для этой зоны, продолжайте использовать --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-cmdLinux, ознакомьтесь с нашим специальным руководством по введению в 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
Разрешить DNS через брандмауэр.
# 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, которая упрощает процесс, если мы знаем правильный синтаксис для использования. Мы также видели несколько примеров разрешения многих наиболее распространенных служб через брандмауэр. Не забудьте обратить особое внимание на то, в какой зоне вы применяете новые правила.