Как открыть порт в CentOS 7
Как открыть порт в CentOS 7
Всем привет, давайте рассмотрим ситуацию, что вы поставили нужную вам службу например Apache пытаетесь зайти по ip адресу в браузере а он не открывается, дело в том, что в CentOS по умолчанию все порты закрыты на iptable. Давайте этому научимся. НАм нужно открыть порты 443 и 80.
iptables -I INPUT -p tcp —dport 80 -m state —state NEW -j ACCEPT
iptables -I INPUT -p tcp —dport 443 -m state —state NEW -j ACCEPT
сохраняем это все дело
service iptables save
и перезапускаем iptable
/etc/init.d/iptables restart
Популярные Похожие записи:
9 Responses to Как открыть порт в CentOS
Иван, спасибо вам за сайт. Нашла тут хорошую инструкцию по установке Centos, но вот беда — доступа в инет с него не было. Пролистала ваши статьи и… «В CentOS по умолчанию все порты закрыты на iptables…». Приплыли. Открыла порты и всё в ажуре! Спасибо.
Добрый день, сайт и задумывался как помощь многочисленным людям, по своему опыту сталкивался со многими вещами, и всегда не хватало в интернете сайтов с подробными инструкциями, что я и пытаюсь исправить)) правда если бы у меня еще были коллеги авторы было бы еще быстрее:)
Оказалось, кривизна моих рук оставляет ждать лучшего. Эти команды вносят указанные правила в конфиг iptables, но указанные порты остаются закрытым по результатам проверки netstat -tlnd.
Открыты 22, 8000 и всё.
Бьюсь второй день, не помогает правка самого конфига (/etc/sysconfig/iptables) c последующим сохранением (service iptables save). После перезапуска службы /etc/init.d/iptables конфиг прежний. Подскажите, куда смотреть?
Добрый день а какая у вас версия Centos? Если 7 то там по умолчанию используется FirewallD а не iptable, если хотите его вернуть нужно выполнить
systemctl stop firewalld
systemctl disable firewalld
Устанавливаем его
yum install iptables-services
systemctl start iptables
systemctl enable iptables
можете еще добавить графический вариант
yum install system-config-firewall-tui
перезагрузка
а если настраивать FirewallD то там вот такой синтаксис firewall-cmd —permanent —add-port=№порта/протокол
Добрый день, отличный у вас сайт, такого крупного блога, который ведет один человек я не встречал. Спасибо.
Иван, у меня версия Centos 6.7. Может в этом проблема?
Ирина, добрый день попробуйте поставить утилиту yum install system-config-firewall-tui и открыть из графического режима. В 6 версии описанный в статье метод на моей практике работал всегда. А вы все делаете из под рутовой учетки?
Иван, сайт отличный, порты открылись, интернет потёк
Добрый день! нужна помощь, есть vps сервер, centos 7.3 к нему нужен доступ через браузер, к примеру 81.213.233.21:20025 или 81.213.233.21:10223 , открытый 22 и 10223 порт, это прокси сервер, пытаюсь открыть порт командой sudo firewall-cmd —zone=public —permanent —add-port=20025/tcp, sudo firewall-cmd —zone=public —permanent —add-port=20025/udp, пишет что он есть в зоне public, но доступа к нему нет, что уже только не пробовал, может нужно как-то пробросить порты? но как? уже не знаю что делать
Настройка 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 7
Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.
FirewallD — это законченное решение межсетевого экрана, которое управляет системными правилами iptables и предоставляет интерфейс D-Bus для работы с ними. Начиная с CentOS 7, FirewallD заменяет iptables в качестве инструмента управления брандмауэром по умолчанию.
В этом руководстве мы покажем вам, как настроить брандмауэр с помощью FirewallD в вашей системе CentOS 7, и объясним вам основные концепции FirewallD.
Подготовка
Прежде чем приступить к изучению этого руководства, убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды от имени пользователя sudo, а не root. Если у вас нет пользователя sudo в вашей системе CentOS, вы можете создать его, следуя этим инструкциям .
Основные концепции Firewalld
FirewallD использует концепции зон и служб, а не цепочку и правила iptables. В зависимости от зон и служб, которые вы настраиваете, вы можете контролировать, какой трафик разрешен или запрещен в систему и из системы.
FirewallD можно настроить и управлять им с помощью утилиты командной строки firewall-cmd .
Зоны Firewalld
Зоны — это предопределенные наборы правил, определяющие, какой трафик должен быть разрешен в зависимости от уровня доверия в сетях, к которым подключен ваш компьютер. Вы можете назначить зоне сетевые интерфейсы и источники.
Ниже приведены зоны, предоставляемые FirewallD, упорядоченные в соответствии с уровнем доверия зоны от ненадежных до доверенных:
- drop : все входящие соединения отбрасываются без уведомления. Разрешены только исходящие соединения.
- block : все входящие соединения отклоняются сообщением icmp-host-prohibited icmp6-adm-prohibited для IPv4 и icmp6-adm-prohibited -hibited для IPv6n. Разрешены только исходящие соединения.
- public : для использования в ненадежных общественных местах. Вы не доверяете другим компьютерам в сети, но можете разрешить выбранные входящие соединения.
- external : для использования во внешних сетях с включенной маскировкой NAT, когда ваша система действует как шлюз или маршрутизатор. Разрешены только выбранные входящие соединения.
- internal : для использования во внутренних сетях, когда ваша система действует как шлюз или маршрутизатор. Другим системам в сети обычно доверяют. Разрешены только выбранные входящие соединения.
- dmz : используется для компьютеров, расположенных в вашей демилитаризованной зоне, которые имеют ограниченный доступ к остальной части вашей сети. Разрешены только выбранные входящие соединения.
- работа : Используется для рабочих машин. Другим компьютерам в сети обычно доверяют. Разрешены только выбранные входящие соединения.
- home : Используется для домашних машин. Другим компьютерам в сети обычно доверяют. Разрешены только выбранные входящие соединения.
- доверенный : все сетевые подключения принимаются. Доверяйте всем компьютерам в сети.
Услуги межсетевого экрана
Сервисы Firewalld — это предопределенные правила, которые применяются в зоне и определяют необходимые настройки, чтобы разрешить входящий трафик для конкретной службы.
Среда выполнения Firewalld и постоянные настройки
Firewalld использует два отдельных набора конфигураций: время выполнения и постоянную конфигурацию.
Конфигурация среды выполнения — это фактическая рабочая конфигурация, которая не сохраняется при перезагрузке. Когда служба Firewalld запускается, она загружает постоянную конфигурацию, которая становится конфигурацией времени выполнения.
По умолчанию при внесении изменений в конфигурацию Firewalld с помощью утилиты firewall-cmd изменения применяются к конфигурации среды выполнения. Чтобы сделать изменения постоянными, вам нужно использовать параметр —permanent .
Установка и включение FirewallD
Firewalld по умолчанию установлен в CentOS 7, но если он не установлен в вашей системе, вы можете установить пакет, набрав:
По умолчанию служба Firewalld отключена. Вы можете проверить статус брандмауэра с помощью:
Если вы только что установили или не активирован ранее, команда печати not running . В противном случае вы увидите running .
Чтобы запустить службу FirewallD и включить ее при загрузке:
Работа с зонами Firewalld
После включения службы FirewallD в первый раз public зона устанавливается как зона по умолчанию. Вы можете просмотреть зону по умолчанию, набрав:
Чтобы получить список всех доступных зон, введите:
По умолчанию всем сетевым интерфейсам назначается зона по умолчанию. Чтобы проверить, какие зоны используются вашим сетевым интерфейсом, введите:
Приведенный выше вывод говорит нам, что оба интерфейса eth0 и eth1 назначены публичной зоне.
Вы можете распечатать настройки конфигурации зоны с помощью:
Из выходных данных выше мы видим, что публичная зона активна и установлена по умолчанию, используемая как интерфейсами eth0 и eth1 . Кроме того, разрешены соединения, относящиеся к клиенту DHCP и SSH.
Если вы хотите проверить конфигурации всех доступных типов зон:
Команда выводит на печать огромный список с настройками всех доступных зон.
Изменение зоны интерфейса
Вы можете легко изменить Зону интерфейса, используя параметр —zone в сочетании с параметром —change-interface . Следующая команда назначит интерфейс eth1 рабочей зоне:
Проверьте изменения, набрав:
Изменение зоны по умолчанию
Чтобы изменить зону по умолчанию, используйте параметр —set-default-zone за которым следует имя зоны, которую вы хотите сделать по умолчанию.
Например, чтобы изменить зону по умолчанию на домашнюю, вы должны выполнить следующую команду:
Проверьте изменения с помощью:
Открытие порта или сервиса
С помощью FirewallD вы можете разрешить трафик для определенных портов на основе предопределенных правил, называемых службами.
Чтобы получить список всех доступных по умолчанию услуг, введите:
Вы можете найти дополнительную информацию о каждой службе, открыв связанный файл .xml в каталоге /usr/lib/firewalld/services . Например, служба HTTP определяется так:
Чтобы разрешить входящий HTTP-трафик (порт 80) для интерфейсов в публичной зоне, только для текущего сеанса (конфигурация времени выполнения), введите:
Чтобы убедиться, что служба была успешно добавлена, используйте параметр —list-services :
Если вы хотите оставить порт 80 открытым после перезагрузки, вам нужно будет ввести ту же команду еще раз, но на этот раз с параметром —permanent :
Используйте —list-services вместе с параметром —permanent чтобы проверить свои изменения:
Синтаксис удаления службы такой же, как и при добавлении службы. Просто используйте —remove-service вместо параметра —add-service :
Приведенная выше команда удаляет службу http из постоянной конфигурации публичной зоны.
Что делать, если вы запускаете такое приложение, как Plex Media Server, для которого нет подходящей службы?
В подобных ситуациях у вас есть два варианта. Вы можете либо открыть соответствующие порты, либо определить новую службу FirewallD.
Например, Plex Server прослушивает порт 32400 и использует TCP, чтобы открыть порт в публичной зоне для текущего сеанса, используйте параметр —add-port= :
Чтобы убедиться, что порт был добавлен успешно, используйте параметр —list-ports :
Чтобы порт 32400 открытым после перезагрузки, добавьте правило к постоянным настройкам, выполнив ту же команду с параметром —permanent .
Синтаксис удаления порта такой же, как и при добавлении порта. Просто используйте —remove-port вместо —add-port .
Создание новой службы FirewallD
Как мы уже упоминали, службы по умолчанию хранятся в каталоге /usr/lib/firewalld/services . Самый простой способ создать новую службу — скопировать существующий файл службы в каталог /etc/firewalld/services , который является местом для созданных пользователями служб, и изменить настройки файла.
Например, чтобы создать определение службы для Plex Media Server, мы можем использовать служебный файл SSH:
Откройте только что созданный файл plexmediaserver.xml и измените краткое имя и описание службы в тегах <short> и <description> . Самый важный тег, который вам нужно изменить, — это тег port , который определяет номер порта и протокол, который вы хотите открыть.
В следующем примере мы открываем порты 1900 UDP и 32400 TCP.
Сохраните файл и перезагрузите сервис FirewallD:
Теперь вы можете использовать услугу plexmediaserver в своих зонах так же, как и любую другую услугу.
Порт пересылки с Firewalld
Чтобы перенаправить трафик с одного порта на другой порт или адрес, сначала включите маскировку для желаемой зоны с помощью переключателя —add-masquerade . Например, чтобы включить маскировку для типа external зоны:
- Перенаправлять трафик с одного порта на другой на одном сервере
В следующем примере мы перенаправляем трафик с порта 80 на порт 8080 на том же сервере:
- Перенаправить трафик на другой сервер
В следующем примере мы перенаправляем трафик с порта 80 на порт 80 на сервере с IP 10.10.10.2 :
- Перенаправить трафик на другой сервер через другой порт
В следующем примере мы перенаправляем трафик с порта 80 на порт 8080 на сервере с IP 10.10.10.2 :
Если вы хотите сделать перманент постоянным, просто добавьте параметр —permanent .
Создание набора правил с помощью FirewallD
В следующем примере мы покажем, как настроить брандмауэр, если у вас был веб-сервер. Мы предполагаем, что ваш сервер имеет только один интерфейс eth0 , и вы хотите разрешить входящий трафик только по портам SSH, HTTP и HTTPS.
Измените зону по умолчанию на dmz
Мы будем использовать зону dmz (демилитаризованную), потому что по умолчанию она разрешает только SSH-трафик. Чтобы изменить зону по умолчанию на dmz и назначить ее интерфейсу eth0 , выполните следующие команды:
Откройте порты HTTP и HTTPS:
Чтобы открыть порты HTTP и HTTPS, добавьте в зону dmz постоянные правила обслуживания:
Немедленно внесите изменения в силу, перезагрузив брандмауэр:
Чтобы проверить параметры конфигурации зоны dmz, введите:
Приведенный выше вывод говорит нам, что dmz является зоной по умолчанию, применяется к интерфейсу eth0 и что порты ssh (22), http (80) и https (443) открыты.
Выводы
Вы узнали, как настраивать и управлять службой FirewallD в вашей системе CentOS.
Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.
Блог дяди Freemanа
How to open port in CentOS 7/Как открыть порт на CentOS 7
В версии CentOS 7 для управления iptables начали использовать firewalld, он в свою очередь управляется через команду firewall-cmd.
В отличии от iptables, firewalld оперирует зонами и сервисами, а не цепочками и правилами. Каждому сетевому интерфейсу присваивается определенная зона, она может быть как пользовательская так и предустановленная.
Список предустановленных зон:
- drop — уничтожает все входящие пакеты, исходящие разрешены
- block — уничтожает все входящие пакеты, при этом отправляя сообщение отправителю, что пакет был удален, исходящие разрешены
- public — разрешены входящие соединения только для ssh и dhcp-client
- external — поддерживает NAT для трансляции адресов внутренней сети
- internal — разрешены службы ssh, samba, mdns, dhcp
- dmz — разрешено только ssh подключение
- work — разрешены только ssh и dhcp
- home — то же самое что и internal
- trusted — все разрешено
Эти зоны служат для того, чтобы быстро сменить набор правил интерфейсы, изменив его зону.
Еще одной полезной особенностью firewalld является то, что есть конфигурация выполнения — runtime, и конфигурация постоянная — permanent.
Синтаксис команд
В отличии от iptables, тут довольно все просто:
Если не указывать, что правило будет постоянное, то все изменения будут проводиться только в runtime, то есть действительны только до перезагрузки.
Следующие опции могут быть использованы для манипуляций с зонами:
- —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.
Пример использования
К примеру, мы хотим добавить к зоне какой-либо сервис:
А удалить можно так:
Если мы используем ключ —permanent, то для того, чтобы правила начали работать, нужно использовать команду
которая перечитает правила в конфигурацию исполнения
Если необходимо открыть специфичный порт, то можно просто указать его командой:
Проброс портов в Firewalld настраивается намного проще, чем в iptables. Если вам нужно, например, перенаправить трафик с порта 2223 на порт 22, достаточно добавить к зоне перенаправление:
Здесь перенаправление выполняется только на текущей машине. Если вы хотите настроить сеть NAT и пробрасывать порт на другую машину, то вам нужно сначала включить поддержку masquerade
Затем уже можно добавить порт:
Расширенные правила
Если функциональности зон вам недостаточно, вы можете использовать расширенные правила. Общий синтаксис расширенных правил такой:
Вот значение основных параметров:
- В качестве семейства протоколов можно указать ipv4 или ipv6 или ничего не указывать, тогда правило будет применяться к обоим протоколам;
- source и destination — это отправитель и получатель пакета. В качестве этих параметров может быть использован IP-адрес (address), сервис (service name), порт (port), протокол (protocol) и так далее;
- log — позволяет логгировать прохождение пакетов, например в syslog. В этой настройке вы можете указать префикс строчки лога и уровень подробности логгирования;
- audit — это альтернативный способ логгирования, когда сообщения будут отправляться в службу auditd.
- действие — это действие, которое необходимо выполнить с совпавшим пакетом. Доступны: accept, drop, reject, mark.
Давайте рассмотрим несколько примеров. Нам необходимо заблокировать доступ к серверу для пользователя с IP 135.152.53.5:
Или нам нужно запретить для этого же пользователя только доступ к порту 22: