Logiss.ru

Ваша компьютерная помощь
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как открыть порт в CentOS 7

Как открыть порт в CentOS 7

CentOS

Всем привет, давайте рассмотрим ситуацию, что вы поставили нужную вам службу например 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:

Ссылка на основную публикацию
Adblock
detector