Настройка firewalld в CentOS 7

Прогресс не стоит на месте, CentOS 7 с по сравнению с более ранними версиями совершенствует, появляются новые пакеты и сервисы. В отличие от своего предшественника CentOS 6, он идет с базовым брендмауэером firewalld. Данный фаервол можно отключить или заменить на привычный iptables. Но раз ПО идет в ногу со временем, то рекомендуем к прочтению данную статью. В ней мы расскажем как пользоваться и настраивать firewalld, на примере CentOS 7. А так же сравним его с привычным iptables.

Firewalld — по сути это такой же внешний интерфейс netfilter, как и iptables. Он поддерживает сети IPv4 и IPv6. Так же есть возможность администрирования отдельных зон, с разной степенью доверия.

Команды управления сервисом firewalld

Для просмотра состояния демона используется следующие команды:

Выхлоп обеих команд одинаков.

systemctl status firewalld

Остановка сервиса firewalld:

Аналогичны и команды старта сервиса, за исключением того что stop заменяется на start.

Далее идет команда ставящая сервис в автозагрузку:

firewalld зоны

Так как мы упоминали про зоны, давайте их рассмотрим.

  1. drop — сброс всего входящего трафика без ответа, доступны только исходящие подключения.
  2. block — данная зона похожа на ранее озвученную, но при этом она дает ответ icmp-host-prohibited или icmp6-adm-prohibited при сбросе.
  3. public — публичная сеть, доверия к которой нет, но есть поддержка входящих соединений, в индивидуальном порядке.
  4. external — внешние сети, поддерживается маскировка NAT, внутренняя сеть остается закрытой, но есть возможность получения доступа.
  5. internal — противоположность external, внутренние сети. узлам в этой сети можно доверять.
  6. dmz — изолированные узлы, не имеющие доступа к остальным. Поддержка некоторых входящих соединений.
  7. work — рабочая сеть, большинству машин в данной зоне можно доверять.
  8. home — домашняя зона, узлам, в данной зоне, можно доверять.
  9. trusted — доверять всем узлам.

Зоны firewalld

Для получения списка активных зон введем:

firewalld get zone

Как видим у нас есть 2 сетевых интерфейса в зоне public. У вас их может быть больше или меньше. А так же их имена могут отличаться.

Так же, мы можем узнать список всех зон введя:

firewalld get all zone

Для получения значений параметров конкретной зоны, добавим в в команду флаг —zone=

Командой выше мы получили параметры зоны public.

firewalld get param oublic zone

Для просмотра параметров всех зон используется следующая команда:

Изменение зоны интерфейса на сеанс

Если требуется перевести какой то из интерфейсов в другую зону, то выполнить это можно так:

Данная команда не постоянна и действует до перезагрузки службы firewalld или сервера,пример для постоянного изменения зоны мы рассмотрим чуть ниже.

Так же, изменение зоны может повлиять на сетевые службы, запущенные на интерфейсе. Некоторые зоны сбрасывают все соединения.

Для успокоения и убеждения что изменение зоны прошло успешно введем:

firewalld change zone

Создание правил для конкретных сервисов

Для поучения списка всех сервисов выполним следующую команду:

firewalld get service

Чтобы добавить нужный сервис в нужную зону, используем команду:

Данной командой мы добавили сервис http в публичную зону. Убедимся в этом:

firewalld add service to zone

Но данными командами мы лишь временно добавили сервис в зону. Для добавления правила на постоянной основе немного модифицируем команду, добавив к ней —permament :

Просмотреть постоянные правила можно так:

Настройка портов

Если требуется открыть доступ не всему сервису, а определенному порту, то это можно сделать так:

Мы открыли 80 порт для публичной зоны. Так же можно открыть диапазон портов, например для сервиса asterisk:

После тестирования добавим правила на постоянной основе:

Для удаления правил портов используется флаг —remove. Например удалим 80 порт:

На этом базовую настройку можно завершить, мы показали как управлять сервисом firewalld, а так же как создавать правила.

Вам также может понравиться

About the Author: Администратор

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *