Настройка Firewall CentOS 7
Основной брандмауэр в операционных системах Linux — это iptables. Но команды iptables сложны, и многим пользователям тяжело запомнить все опции и случаи, в которых их надо использовать. Поэтому разработчики дистрибутивов создают свои надстройки над iptables, которые помогают упростить управление фаерволом. У CentOS надстройка для управления iptables называется Firewalld.
У Firewalld есть несколько важных отличий, по сравнению с iptables. Здесь управление доступом к сети выполняется на уровне зон и сервисов, а не цепочек и правил. А также правила обновляются динамически, не прерывая запущенных сессий. В этой статье будет рассмотрена настройка Firewall CentOS 7 на примере Firewalld.
Основы использования Firewalld
Как я уже сказал выше, Firewalld работает не с цепочками правил, а с зонами. Каждому сетевому интерфейсу может быть присвоена определенная зона. Зона представляет из себя набор правил, ограничений и разрешений, которые применяются к этому сетевому интерфейсу. Для одного интерфейса может быть выбрана только одна зона. Разработчики создали несколько предустановленных зон:
- drop — блокировать все входящие пакеты, разрешить только исходящие
- block — в отличие от предыдущего варианта отправителю пакета будет отправлено сообщение по блокировке его пакета;
- public — поддерживаются входящие соединения только для ssh и dhclient;
- external — поддерживает NAT для скрытия внутренней сети;
- internal — разрешены сервисы ssh, samba, mdns и dhcp;
- dmz — используется для изолированных сервров, у которых нет доступа к сети. Разрешено только подключение по SSH;
- work — разрешенны сервисы ssh и dhcp;
- home — аналогично internal;
- trusted — всё разрешено.
Таким образом, чтобы разрешить или запретить какой-либо сервис, вам достаточно добавить или удалить его из текущей зоны или сменить зону интерфейса на ту, где он разрешён. Можно провести аналогию с политикой действий по умолчанию для пакетов в iptables. Зона trusted имеет политику ACCEPT и разрешает все подключения, зона block имеет политику DENY, которая запрещает все подключения, а все остальные зоны можно считать наследниками зоны block, плюс в них уже предопределены правила разрешения сетевых подключений для некоторых сервисов.
Также у Firewalld есть два вида конфигурации:
- runtime — действительна только до перезагрузки, все изменения, в которых явно не указано другое, применяются к этой конфигурации;
- permanent — постоянные настройки, которые будут работать и после перезагрузки.
Теперь вы знаете всё необходимое, поэтому перейдём к утилите firewalld-cmd.
Синтаксис и опции firewall-cmd
Управлять настройками Firewalld можно как с помощью консольной утилиты firewall-cmd, так и в графическом интерфейсе. CentOS чаще всего используется на серверах, поэтому вам придётся работать в терминале. Давайте рассмотрим синтаксис утилиты:
firewall-cmd опции
Для управления зонами используется такой синтаксис:
firewall-cmd —конфигурация —zone=зона опции
В качестве конфигурации нужно указать опцию —permanent, чтобы сохранить изменения после перезагрузки или ничего не указывать, тогда изменения будут действительны только до перезагрузки. В качестве зоны используйте имя нужной зоны. Давайте рассмотрим опции утилиты:
- —state — вывести состояние брандмауэра;
- —reload — перезагрузить правила из постоянной конфигурации;
- —complete-reload — жёсткая перезагрузка правил с разрывом всех соединений;
- —runtime-to-permanent — перенести настройки конфигурации runtime в постоянную конфигурацию;
- —permanent — использовать постоянную конфигурацию;
- —get-default-zone — отобразить зону, используемую по умолчанию;
- —set-default-zone — установить зону по умолчанию;
- —get-active-zones — отобразить активные зоны;
- —get-zones — отобразить все доступные зоны;
- —get-services — вывести предопределенные сервисы;
- —list-all-zones — вывести конфигурацию всех зон;
- —new-zone — создать новую зону;
- —delete-zone — удалить зону;
- —list-all — вывести всё, что добавлено, из выбранной зоны;
- —list-services — вывести все сервисы, добавленные к зоне;
- —add-service — добавить сервис к зоне;
- —remove-service — удалить сервис из зоны;
- —list-ports — отобразить порты, добавленные к зоне;
- —add-port — добавить порт к зоне;
- —remove-port — удалить порт из зоны;
- —query-port — показать, добавлен ли порт к зоне;
- —list-protocols — вывести протоколы, добавленные к зоне;
- —add-protocol — добавить протокол к зоне;
- —remove-protocol — удалить протокол из зоны;
- —list-source-ports — вывести порты источника, добавленные к зоне;
- —add-source-port — добавить порт-источник к зоне;
- —remove-source-port — удалить порт-источник из зоны;
- —list-icmp-blocks — вывести список блокировок icmp;
- —add-icmp-block — добавить блокировку icmp;
- —add-icmp-block — удалить блокировку icmp;
- —add-forward-port — добавить порт для перенаправления в NAT;
- —remove-forward-port — удалить порт для перенаправления в NAT;
- —add-masquerade — включить NAT;
- —remove-masquerade — удалить NAT.
Это далеко не все опции утилиты, но для этой статьи нам будет их достаточно.
Настройка Firewall в CentOS 7
1. Статус брандмауэра
Первым делом необходимо посмотреть состояние брандмауэра. Для этого выполните:
sudo systemctl status firewalld

Если служба Firewalld отключена, то необходимо её включить:
sudo systemctl start firewalld sudo systemctl enable firewalld
Теперь нужно посмотреть, запущен ли Firewalld, с помощью команды firewall-cmd:
sudo firewall-cmd —state

Если программа запущена и всё хорошо, то вы получите сообщение «running».
2. Управление зонами
Как вы уже поняли, зоны — это основной инструмент для управления сетевыми подключениями. Чтобы посмотреть зону по умолчанию, выполните:
sudo firewall-cmd —get-default-zone

В моем случае это зона public. Вы можете изменить текущую зону с помощью опции —set-default-zone:
sudo firewall-cmd —set-default-zone=public

Чтобы посмотреть, какие зоны используются для всех сетевых интерфейсов, выполните:
sudo firewall-cmd —get-active-zones

В списке будут выведены зоны и интерфейсы, для которых они присвоены. Такой командой можно посмотреть конфигурацию для определённой зоны. Например, для зоны public:
sudo firewall-cmd —zone=public —list-all

3. Настройка сервисов
Вы можете посмотреть все предопределенные сервисы командой:
sudo firewall-cmd —get-services

Команда выведет все доступные сервисы, вы можете добавить любой из них к зоне, чтобы его разрешить. Например, разрешим подключение к http:
sudo firewall-cmd —zone=public —add-service=http —permanent

А чтобы удалить этот сервис, выполните:
sudo firewall-cmd —zone=public —remove-service=http —permanent
В обоих случаях мы использовали опцию —permanent, чтобы конфигурация сохранялась после перезагрузки. После изменений нужно обновить правила:
sudo firewall-cmd —reload
Затем, если вы посмотрите конфигурацию зоны, то там появится добавленный сервис:
sudo firewall-cmd —zone=public —list-all

4. Как открыть порт в Firewalld
Если для нужной вам программы нет сервиса, вы можете открыть её порт вручную. Для этого просто добавьте нужный порт к зоне. Например порт 8083:
sudo firewall-cmd —zone=public —add-port=8083/tcp —permanent

Чтобы удалить этот порт из зоны, выполните:
sudo firewall-cmd —zone=public —remove-port=8083/tcp —permanent
Аналогично сервисам, чтобы открыть порт в firewall centos 7 надо перезагрузить брандмауэр.
sudo firewall-cmd —reload

5. Проброс портов Firewalld
Проборс портов в Firewalld настраивается намного проще, чем в iptables. Если вам нужно, например, перенаправить трафик с порта 2223 на порт 22, достаточно добавить к зоне перенаправление:
sudo firewall-cmd —zone=public —add-forward-port=port=2223:proto=tcp:toport=22
Здесь перенаправление выполняется только на текущей машине. Если вы хотите настроить сеть NAT и пробрасывать порт на другую машину, то вам нужно сначала включить поддержку masquerade:
sudo firewall-cmd —zone=public —add-masquerade
Затем уже можно добавить порт:
sudo firewall-cmd —zone=publiс —add-forward-port=port=2223:proto=tcp:toport=22:toaddr=192.168.56.4
6. Расширенные правила
Если функциональности зон вам недостаточно, вы можете использовать расширенные правила. Общий синтаксис расширенных правил такой:
rule family = «семейтво» source значение destination значение log audit действие
Вот значение основных параметров:
- В качестве семейства протоколов можно указать ipv4 или ipv6 или ничего не указывать, тогда правило будет применяться к обоим протоколам;
- source и destination — это отправитель и получатель пакета. В качестве этих параметров может быть использован IP-адрес (address), сервис (service name), порт (port), протокол (protocol) и так далее;
- log — позволяет логгировать прохождение пакетов, например в syslog. В этой настройке вы можете указать префикс строчки лога и уровень подробности логгирования;
- audit — это альтернативный способ логгирования, когда сообщения будут отправляться в службу auditd.
- Действие — это действие, которое необходимо выполнить с совпавшим пакетом. Доступны: accept, drop, reject, mark.
Давайте рассмотрим несколько примеров. Нам необходимо заблокировать доступ к серверу для пользователя с IP 135.152.53.5:
sudo firewall-cmd —zone=public —add-rich-rule ‘rule family=»ipv4″ source address=135.152.53.5 reject’

Или нам нужно запретить для этого же пользователя только доступ к порту 22:
sudo firewall-cmd —zone=public —add-rich-rule ‘rule family=»ipv4″ source address=135.152.53.5 port port=22 protocol=tcp reject’
Посмотреть все расширенные правила можно командой:
sudo firewall-cmd —list-rich-rules

Выводы
В этой статье мы разобрали, как выполняется настройка firewall в CentOS 7 и какие задачи можно с помощью него выполнить. Программой намного проще пользоваться, чем iptables, но по моему мнению надстройка фаервола от Ubuntu — ufw ещё проще в использовании.
Настройка брандмауэра с помощью firewalld в CentOS 8

firewalld — программное обеспечение для управления брандмауэрами, поддерживаемое многими дистрибутивами Linux. Выступает в качестве клиентского интерфейса для встроенных в ядро Linux систем фильтрации пакетов nftables и iptables.
В этом обучающем руководстве мы покажем, как настраивать брандмауэр firewalld для сервера CentOS 8 и расскажем об основах управления брандмауэром с помощью административного инструмента firewall-cmd .
Предварительные требования
Для прохождения этого обучающего руководства нам потребуется сервер под управлением CentOS 8. Мы будем считать, что вы выполнили вход на этот сервер в качестве пользователя non-root user с привилегиями sudo . Чтобы выполнить настройку сервера, воспользуйтесь нашим руководством по начальной настройке сервера CentOS 8.
Основные концепции в firewalld
Прежде чем обсуждать фактическое использование утилиты firewall-cmd для управления конфигурацией брандмауэра, мы должны познакомиться с несколькими концепциями, которые вводит этот инструмент.
Демон firewalld управляет группами правил, используя элементы, называемые зонами. Зоны представляют собой набор правил, который определяет разрешенный трафик в зависимости от уровня доверия в сети. Зоне назначаются сетевые интерфейсы, определяющие поведение, которое должен разрешать брандмауэр.
Такая гибкость позволяет легко изменять правила в зависимости от среды, особенно в случае с компьютерами, которые часто перемещаются между сетями (например, с ноутбуками). Вы можете использовать более строгие правила, например, запретить большую часть трафика в публичных сетях WiFi и ввести менее строгие ограничения для домашней сети. Для сервера эти зоны не так важны, поскольку его сетевая среда редко изменяется, если это вообще происходит.
Вне зависимости от того, насколько динамична ваша сетевая среда, вам будет полезно познакомиться с общей идеей, лежащей в основе заданных зон firewalld . Заданные зоны в firewalld упорядочены от наименее доверенных к наиболее доверенным:
- drop: самый низкий уровень доверия. Все входящие соединения отбрасываются без ответа и разрешаются только исходящие соединения.
- block: аналогично вышеописанному, но запросы входящих соединений не просто отбрасываются, а отклоняются с сообщением icmp-host-prohibited или icmp6-adm-prohibited .
- public: публичные сети, к которым нет доверия. Вы не доверяете другим компьютерам, но можете разрешать отдельные входящие соединения на разовой основе.
- external: внешние сети, если вы используете брандмауэр в качестве шлюза. Эта зона настроена для маскировки NAT, чтобы ваша внутренняя сеть оставалась частной, но доступной.
- internal: другая сторона внешней зоны, используемая для внутренней части шлюза. Компьютеры в основном достойны доверия, доступны некоторые дополнительные службы.
- dmz: используется для компьютеров в ДМЗ (изолированные компьютеры, у которых нет доступа к остальной части вашей сети). Разрешены только некоторые входящие соединения.
- work: используется для рабочих компьютеров. Большинство компьютеров в сети являются доверенными. Могут быть разрешены некоторые дополнительные службы.
- home: домашняя среда. Обычно подразумевается, что вы доверяете большей части других компьютеров и что будут приниматься запросы еще нескольких служб.
- trusted: все компьютеры в сети являются доверенными. Наиболее открытый из доступных вариантов, который следует использовать с осторожностью.
Для использования брандмауэра можно создавать правила и изменять свойства зон, а также назначать сетевые интерфейсы в наиболее подходящие зоны.
Постоянство правил
В firewalld правила можно применять к текущему набору правил времени исполнения или использовать как постоянные. При добавлении или изменении правила по умолчанию изменяется только работающий брандмауэр. После перезагрузки системы или службы firewalld сохраняются только постоянные правила.
Большинство операций firewall-cmd могут принимать флаг —permanent , указывающий на необходимость применения изменений к постоянной конфигурации. Кроме того, текущую конфигурацию брандмауэра можно сохранить в постоянной конфигурации с помощью команды firewall-cmd —runtime-to-permanent .
Такое разделение конфигурации времени исполнения и постоянной конфигурации позволяет безопасно тестировать правила на активном брандмауэре и просто перезагружать его в случае возникновения проблем.
Установка и активация firewalld
Брандмауэр firewalld установлен по умолчанию в некоторых дистрибутивах Linux, в том числе во многих образах CentOS 8. Однако вам может потребоваться установить firewalld самостоятельно:
После установки firewalld вы можете активировать службу и перезагрузить сервер. Помните, что в случае активации службы firewalld она будет запускаться при загрузке системы. Прежде чем настраивать такое поведение, лучше создать правила брандмауэра и воспользоваться возможностью протестировать их во избежание потенциальных проблем.
После перезагрузки сервера брандмауэр запускается, сетевые интерфейсы помещаются в настроенные зоны (или возвращаются в заданные по умолчанию зоны), и все правила зон применяются к соответствующим интерфейсам.
Чтобы проверить работу и доступность службы, можно использовать следующую команду:
Это показывает, что наш брандмауэр запущен и работает с конфигурацией по умолчанию.
Знакомство с текущими правилами брандмауэра
Прежде чем мы начнем вносить изменения, мы познакомимся со средой и правилами firewalld, используемыми по умолчанию.
Изучение параметров по умолчанию
Чтобы посмотреть, какая зона выбрана по умолчанию, можно использовать следующую команду:
Поскольку мы не отправили firewalld никаких команд для отклонения от основной зоны и никакие наши интерфейсы не настроены на привязку к другой зоне, эта зона будет единственной активной зоной (зоной, контролирующей трафик для наших интерфейсов). Это можно проверить с помощью следующей команды:
Здесь мы видим, что на нашем сервере брандмауэр контролирует два сетевых интерфейса ( eth0 и eth1 ). Управление обоими интерфейсами осуществляется в соответствии с правилами, заданными для зоны public.
Как же узнать, какие правила заданы для зоны public? Конфигурацию зоны по умолчанию можно распечатать с помощью следующей команды:
Из выводимых результатов мы видим, что эта зона активна и используется по умолчанию и что с ней связаны интерфейсы eth0 и eth1 (все это мы уже знали из предыдущих запросов). Также мы видим, что эта зона разрешает трафик клиента DHCP (для назначения IP-адресов), SSH (для удаленного администрирования) и Cockpit (веб-консоль).
Изучение альтернативных зон
Мы получили представление о конфигурации зоны по умолчанию и активной зоны. Также мы можем получить информацию о других зонах.
Чтобы получить список доступных зон, введите команду:
Чтобы посмотреть конкретную конфигурацию, относящуюся к зоне, необходимо добавить параметр —zone= к команде —list-all :
Вы можете вывести все определения зон, используя опцию —list-all-zones . Возможно вы захотите вывести результаты на пейджер для удобства просмотра:
Далее мы узнаем о назначении зон сетевым интерфейсам.
Выбор зон для интерфейсов
Если вы не настроили сетевые интерфейсы иным образом, каждый интерфейс будет помещен в зону по умолчанию при запуске брандмауэра.
Изменение зоны интерфейса
Для перемещения интерфейса между зонами во время сеанса следует использовать параметр —zone= в сочетании с параметром —change-interface= . Как и для всех остальных команд, изменяющих брандмауэр, вам потребуется использовать sudo .
Например, интерфейс eth0 можно переместить в зону home с помощью следующей команды:
Примечание. При перемещении интерфейса в новую зону следует помнить, что это может повлиять на работоспособность служб. Например, в данном случае мы перемещаемся в зону home, в которой поддерживается SSH. Это означает, что наше соединение не должно быть отброшено. В некоторых других зонах SSH по умолчанию не поддерживается, при переходе в такую зону ваше соединение будет разорвано, и вы не сможете снова войти на сервер.
Чтобы убедиться в успешности операции мы можем снова запросить активные зоны:
Изменение зоны по умолчанию
Если все интерфейсы могут быть хорошо обработаны в одной зоне, проще всего определить наиболее подходящую зону как зону по умолчанию, а затем использовать эту зону для конфигурации.
Вы можете изменить зону по умолчанию с помощью параметра —set-default-zone= . При этом немедленно изменятся все интерфейсы, использующие зону по умолчанию:
Установка правил для приложений
Рассмотрим базовый способ определения исключений брандмауэра для служб, которые вы хотите сделать доступными.
Добавление службы к зонам
Самый простой метод заключается в том, чтобы добавлять необходимые службы или порты в используемые зоны. Список доступных определений служб можно получить с помощью опции —get-services :
Примечание. Вы можете получить более подробную информацию о каждой из этих служб, посмотрев соответствующий файл .xml в директории /usr/lib/firewalld/services . Например, служба SSH определяется следующим образом:
Вы можете активировать службу для зоны с помощью параметра —add-service= . Данная операция будет нацелена на зону по умолчанию или на другую зону, заданную параметром —zone= . По умолчанию изменения применяются только к текущему сеансу брандмауэра. Для изменения постоянной конфигурации брандмауэра следует использовать флаг —permanent .
Например, если у нас запущен веб-сервер, обслуживающий стандартный трафик HTTP, мы можем временно разрешить этот трафик для интерфейсов в зоне public с помощью следующей команды:
Вы можете опустить флаг —zone= , если хотите внести изменения в зону по умолчанию. Для проверки успешного выполнения операции можно использовать команду —list-all или —list-services :
После подтверждения надлежащей работы всех систем вы можете изменить постоянные правила брандмауэра, чтобы служба была доступна после перезагрузки системы. Чтобы сделать предыдущие изменения постоянными, нужно ввести их повторно и добавить флаг —permanent :
Также можно использовать флаг —runtime-to-permanent для сохранения текущей конфигурации брандмауэра в постоянной конфигурации:
Будьте осторожны, поскольку при этом все изменения в текущей конфигурации брандмауэра сохраняются в постоянной конфигурации.
Если вы хотите убедиться. что изменения успешно сохранены в постоянной конфигурации, добавьте флаг —permanent к команде —list-services . Вам потребуются привилегии sudo для выполнения любых операций с флагом —permanent :
Теперь в зоне public разрешен веб-трафик HTTP на порту 80. Если ваш веб-сервер настроен для использования SSL/TLS, вы также можете добавить службу https . Мы можем добавить ее в текущий сеанс и постоянный набор правил с помощью следующей команды:
Что делать, если подходящая служба отсутствует?
В базовом комплекте firewalld представлены многие распространенные приложения, к которым вы можете захотеть предоставить доступ. Однако возможны ситуации, когда эти службы не будут соответствовать вашим требованиям.
В этой ситуации у вас будет два варианта.
Открытие порта для зон
Проще всего добавить поддержку определенного приложения можно посредством открытия используемых им портов в соответствующих зонах. Для этого нужно указать порт или диапазон портов, а также протокол (TCP или UDP), связанный с портами.
Например, если наше приложение работает на порту 5000 и использует TCP, мы можем временно добавить его в зону public с помощью параметра —add-port= . Протоколы могут назначаться как tcp или udp :
Мы можем проверить успешность назначения с помощью операции —list-ports :
Также можно указать последовательный диапазон портов, разделив начальный и конечный порты диапазона дефисом. Например, если наше приложение используйте порты UDP с 4990 по 4999, мы можем открыть их на public с помощью следующей команды:
После тестирования мы вероятно захотим добавить это правило в брандмауэр на постоянной основе. Используйте для этого sudo firewall-cmd —runtime-to-permanent или запустите команды снова с флагом —permanent :
Определение службы
Открыть порты для зон довольно просто, но также может быть сложно следить за тем, для чего предназначен каждый порт. Если вы будете выводить из эксплуатации службы на своем сервере, вы можете забыть, какие из открытых портов вам еще нужны. Чтобы избежать подобной ситуации, можно определить новую службу.
Службы представляют собой наборы портов с именем и описанием. Использование служб упрощает администрирование портов, но требует некоторой предварительной подготовки. Проще всего начать с копирования существующего скрипта (из директории /usr/lib/firewalld/services ) в директорию /etc/firewalld/services , где брандмауэр ищет нестандартные определения.
Например, мы можем скопировать определение службы SSH и использовать его для определения службы example. Имя файла без суффикса .xml определяет имя службы в списке служб брандмауэра:
Теперь можно изменить определение в скопированном вами файле. Вначале откройте его в предпочитаемом текстовом редакторе. Здесь мы используем vi :
Вначале файл будет содержать только что скопированное вами определение SSH:
Основная часть этого определения представляет собой метаданные. Вы можете изменить короткое имя службы, заключенное в тегах <short> . Это имя службы, предназначенное для чтения людьми. Также следует добавить описание на случай, если вам потребуется дополнительная информация при проведении аудита службы. Единственное изменение конфигурации, которое вам потребуется, и которое повлияет на функциональность службы, будет заключаться в определении портов, где вы идентифицируете номер порта и протокол, который хотите открыть. Можно указать несколько тегов <port/> .
Представьте, что для нашей службы example нам необходимо открыть порт 7777 для TCP и 8888 для UDP. Мы можем изменить существующее определение примерно так:
Сохраните и закройте файл.
Перезагрузите брандмауэр, чтобы получить доступ к новой службе:
Теперь вы увидите ее в списке доступных служб:
Теперь вы можете использовать эту службу в зонах, как и обычно.
Создание собственных зон
Хотя большинству пользователей будет достаточно заданных зон, иногда может быть полезно определить собственные зоны с названиями, соответствующими их функции.
Например, вы можете захотеть создать для своего веб-сервера зону с именем publicweb. При этом вы можете также захотеть использовать другую зону для службы DNS в вашей частной сети. Эту зону вы можете назвать privateDNS.
При добавлении зоны вы должны добавить ее в постоянную конфигурацию брандмауэра. Затем вы можете произвести перезагрузку для активации конфигурации для текущего сеанса. Например, мы можем создать две описанные выше зоны, введя следующие команды:
Вы можете проверить их наличие в постоянной конфигурации с помощью следующей команды:
Как указывалось ранее, пока они будут недоступны в работающем брандмауэре:
Перезагрузите брандмауэр, чтобы добавить эти зоны в активную конфигурацию:
Теперь вы можете назначать в зоны соответствующие службы и порты. Обычно лучше всего изменять активный брандмауэр и сохранять изменения в постоянной конфигурации только после тестирования. Например, для зоны publicweb вы можете захотеть добавить службы SSH, HTTP и HTTPS:
Для зоны privateDNS можно добавить службу DNS:
Затем мы можем изменить интерфейсы на новые зоны, чтобы протестировать их:
Сейчас вы можете протестировать свою конфигурацию. Если эти значения будут работать, эти правила можно будет добавить в постоянную конфигурацию. Для этого можно снова запустить все команды с флагом —permanent , но в этом случае мы используем флаг —runtime-to-permanent для полного сохранения активной конфигурации как постоянной:
Сохранив правила в постоянной конфигурации, перезагрузите брандмауэр, чтобы проверить сохранение изменений:
Проверьте правильность назначения зон:
Убедитесь, что в обеих зонах доступны соответствующие службы:
Вы успешно настроили собственные зоны! Если вы захотите задать одну из этих зон по умолчанию для других интерфейсов, используйте для настройки параметр —set-default-zone= :
Заключение
Теперь вы должны неплохо понимать принципы администрирования службы firewalld в системе CentOS на каждодневной основе.
Служба firewalld позволяет настраивать администрируемые правила и наборы правил, учитывающие условия вашей сетевой среды. Она позволяет легко переключаться между разными политиками брандмауэра посредством использования зон и дает администраторам возможность абстрагировать управление портами в более удобную систему определения служб. Умение работать с этой системой позволит вам воспользоваться преимуществами гибкости и функциональности данного инструмента.
Дополнительную информацию о firewalld можно найти в официальной документации по firewalld.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Open firewall port on CentOS 7 [closed]
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 1 year ago .
I am using CentOS 7 and I have to ensure that ports 2888 and 3888 are open.
I read this article but this did not work because on CentOS 7 OS there is no iptables save command.
Someone told me that the above URL is not valid for CentOS 7. and I should follow this. But this article is not clear to me on exactly what command I need to execute.
but this does not survive reboots.
So how can I open the ports and make it survive reboots?
![]()
12 Answers 12
Use this command to find your active zone(s):
It will say either public, dmz, or something else. You should only apply to the zones required.
In the case of public try:
Then remember to reload the firewall for changes to take effect.
Otherwise, substitute public for your zone, for example, if your zone is dmz:
![]()
![]()
The answer by ganeshragav is correct, but it is also useful to know that you can use:
but if is a known service, you can use:
and then reload the firewall
[ Answer modified to reflect Martin Peter’s comment, original answer had —permanent at end of command line ]
CentOS (RHEL) 7, has changed the firewall to use firewall-cmd which has a notion of zones which is like a Windows version of Public, Home, and Private networks. You should look here to figure out which one you think you should use. EL7 uses public by default so that is what my examples below use.
You can check which zone you are using with firewall-cmd —list-all and change it with firewall-cmd —set-default-zone=<zone> .
You will then know what zone to allow a service (or port) on:
firewall-cmd —permanent —zone=<zone> —add-service=http
firewall-cmd —permanent —zone=<zone> —add-port=80/tcp
You can check if the port has actually be opened by running:
firewall-cmd —zone=<zone> —query-port=80/tcp
firewall-cmd —zone=<zone> —query-service=http
When making changes to the firewall settings in Permanent mode, your selection will only take effect when you reload the firewall or the system restarts.
You can reload the firewall settings with: firewall-cmd —reload .
![]()
Fedora, did it via iptables
![]()
To view open ports, use the following command.
We use the following to see services whose ports are open.
We use the following to see services whose ports are open and see open ports
To add a service to the firewall, we use the following command, in which case the service will use any port to open in the firewall.
For this service to be permanently open we use the following command.
To add a port, use the following command
To run the firewall must be reloaded using the following command.
![]()
While ganeshragav and Sotsir provide correct and directly applicable approaches, it is useful to note that you can add your own services to /etc/firewalld/services . For inspiration, look at /usr/lib/firewalld/services/ , where firewalld’s predefined services are located.
The advantage of this approach is that later you will know why these ports are open, as you’ve described it in the service file. Also, you can now apply it to any zone without the risk of typos. Furthermore, changes to the service will not need to be applied to all zones separately, but just to the service file.
For example, you can create /etc/firewalld/services/foobar.xml :
(For information about the syntax, do man firewalld.service .)
Once this file is created, you can firewall-cmd —reload to have it become available and then permanently add it to some zone with
Как открыть и закрыть порты с помощью IPTables?
IPtables — это брандмауэр по умолчанию, используемый в системах CentOS и RHEL. На наших VPS или Выделенных серверах, брандмауэр активен, тогда как, все порты открыты. Мы делаем это для того, чтобы все пользователи могли подключаться к сервисам, которые они устанавливают, например, cPanel или Plesk. Вы можете использовать правила приведенные ниже для того, чтобы закрыть или открыть некоторые порты на вашем сервере.
Список текущих правил брандмауэра
iptables—L
Эта команда перечисляет все текущие правила брандмауэра, загруженные в IPtables.
Открыть порт в IPtables — CentOS 6
Открыть порт в IPtables — CentOS 7
В CentOS 7 вам следует использовать флаг –permanent, чтобы открыть порт. Как и в CentOS 6, просто замените номер 80 на нужный порт и выполните команду –reload
Эта команда открывает запрошенный порт. В нашем примере это порт 80. Замените 80 на номер порта, который вы хотите открыть. Запустите команду service iptables save, чтобы сохранить правила в конфигурации брандмауэра.
Закрыть порт в IPtables — CentOS 6
Эта команда закроет порт 80 на вашем сервере, и никто не сможет подключиться через этот порт. Замените цифру 80 на требуемый номер порта, а затем запустите команду service iptables save, чтобы сохранить ее в конфигурации IPtables. Вы также можете использовать команду DROP вместо REJECT.
Закрыть порт в IPtables — CentOS 7
Измените число 80 на номер порта, который вы хотите закрыть, затем выполните остальную часть команды, чтобы зафиксировать это в конфигурации брандмауэра.
Домен | Com домены на сайте Hostimul.com
Домен — означает имя веб-сайта, которое позволяет пользователям Интернета получать доступ к своему веб-сайту. Доступ к веб-сайту, не имеющему этого им..
Купить домен | Дешевые цены на домены в Hostimul.com
Купить домен — Нет необходимости тратить время на поиск надежной и прибыльной компании для покупки домена. Как команда Hostimul.com, мы предлагаем вам..
Дешевый Vps в Европе
Дешевый Vps в Европе в Hostimul.com — это виртуальный частный сервер. Вы можете купить это на Hostimul.com, где мы предоставляем виртуальные серверы с..
Vps в Европе
Наш Vps в Европе будет для вас отличным решением, если вы переросли среду общего хостинга и задаетесь вопросом, что делать дальше. Наши специалисты по..
Недорогой выделенный сервер
Недорогой выделенный сервер – это выделенный виртуальный сервер, услуга хостинга, при которой клиент полностью получает в личное пользование виртуальн..
Хостинг с большим дисковым пространством ✅
Хостинг с большим дисковым пространством предоставляет пользователям все преимущества безлимитной услуги. Хостинги предлагают клиентам разные услуги. ..
Быстрый виртуальный хостинг✅
Ищете быстрый виртуальный хостинг ? В Hostimul вы найдете все, что вам нужно. Давайте уточним что такое виртуальный хостинг? Когда придет время выбрат..
Выделенный Сервер в Европе ✔️
Выделенный сервер в Европе, предлагаемый Hostimul.com станет для вас уникальной возможностью получить доступный и надежный сервер для вашего проекта. ..
Купить Хостинг Дешево
Хотите купить хостинг дешево для вашего сайта ? Добро пожаловать в Hostimul.com, где найдете только выгодные тарифы. На рынке доступно несколько веб-х..
Облачный хостинг
Решение выбрать облачный хостинг может быть продиктовано желанием иметь собственный сервер, и не платить за избыточную емкость жесткого диска, которой..
Хостинг недорогой
Ищете хостинг недорогой ? Hostimul.com будет для вас лучшим спутником по обеспечению вашего проекта наилучшей хостинговой услугой. В поисках самого де..
Сервер для сайта
Надежный сервер для сайта необходим каждому, кто желает безопасный “ Дом ” для своего проекта-сайта. Крупному сайту, который интенсивно наполняется но..
Сервер Аренда
Сервер аренда — это услуга, которая нужна особенно тем, кто имеет большой проект или сайт для безопасной и безотказной работы. Основные причины, по ко..
Виртуальный хостинг сайтов ✔️
Ищете виртуальный хостинг сайтов ? Hostimul будет для вас верным спутником по организации вашего проекта онлайн. Увеличьте скорость с помощью веб-хост..
Хостинг для wordpress Украина✔️
Услуга » Хостинг для wordpress Украина » в Hostimul является наиболее востребованной в силу своей надежности и качества обслуживания. Управляемые сайт..
Надежный Хостинг ✔️
Надежный хостинг доступен по адресу Hostimul.com по самым выгодным тарифам ! Владывая значительные средства в создание актуального и интересного сайта..
Хостинг выделенный сервер
Выбрать хостинг выделенный сервер для бизнеса не так просто, как кажется на первый взгляд. Одним из актуальных вариантов является выделенный сервер – ..
Хостинг пробный период✅
Хостинг пробный период доступен в Hostimul.com на целый месяц с бесплатным доменом. Получите удобные услуги управления доменом вместе с учетной запись..
Купить Хостинг Для Сайта ✅
Решили купить хостинг для сайта ? Вы пришли определенно по верному адресу ! Скорость сайта может сильно повлиять как на видимость вашей поисковой сист..
Хостинг для интернет магазина
Ищете хостинг для интернет магазина ? Hostimul будет для вас наиболее лучшим вариантом для безопасной и отказоустойчивой деятельности вашего проекта, ..
Хостинг бесплатный ✔️
Выберите хостинг бесплатный для оптимизации вашего бизнеса. Наши хостинговые услуги также распространяют свои услуги на таких администраторов веб-сайт..
Vps в Сша ☑️
Хотитн продвижения бизнеса онлайн ? Будем рады предложить вам лучшие серверные опции, которые выведут возможности бизнеса на новый уровень. Vps ..
Vps в Украине ☑️
Vps в Украине стал самым популярным среди всех. Технология виртуализации используется службой хостинга, которая предоставляет частные выдел..
Vps в Германи ✅
Vps Германи с использованием Hostimul.com означает, что вы можете быть уверены, что сможете использовать дополнительные ресурсы хостинга ил..
Лучший хостинг ☑️
Хотите продвижение вашего проекта онлайн ? Для этого необходим лучший хостинг, которого вы найдете на Hostimul.com, являющийся лидеро..
Аренда виртуального сервера ☑️
Перед тем, как решитесь аренда виртуального сервера вам необходимо решить какой трафик ваш нужен. Виртуальный сервер это — хост..
Выделенный сервер ☑️
Выделенный сервер идеально подходит для высоконагруженных сайтов, в особенности для игровых порталов, для больших интернет магазинов с высокой посещае..
Купить хостинг ☑️
Купить хостинг — это процесс не самый легкий и требует учет определенных аспектов. Очевидно, чтобы ваш сайт был скоростным и без проблем обслуживал св..
Виртуальный Сервер ☑️
Виртуальный сервер — это сервер, который совместно использует аппаратные и программные ресурсы с другими операционными системами (ОС) по..