Firewall level ipv4 что это

Обновлено: 05.07.2024

Firewalld — утилита для управления встроенным в ядро Linux брандмауэром Netfilter. Несмотря на собственный синтаксис, имеет такой же принцип работы, как Iptables. Дополнительно про управление Netfilter при помощи последнего.

Установка и запуск

В некоторых системах CentOS может не оказаться firewalld. Для его установки вводим:

yum install firewalld

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

systemctl enable firewalld

И для запуска службы:

systemctl start firewalld

Общие команды для управления firewalld

Мягко перечитать правила (применить настройки):

Перечитать правила и сбросить текущие подключения:

* в официальной документации сказано, что данную команду стоит применять только в случаях проблем с firewalld.

Посмотреть созданные правила:

systemctl stop firewalld

systemctl start firewalld

systemctl disable firewalld

systemctl enable firewalld

Сохранить текущие правила, сделав их постоянными (permanent):

Управление правилами

Синтаксис

Общий синтаксис для работы с правилами:

firewall-cmd [опции] [зона] <правило>

* порядок следования параметров не важен.

  • [опции] — дополнительные параметры для создаваемого правила, например --permanent — постоянное правило, то есть будет действовать после перезагрузки. Не обязательный.
  • [зона] — по умолчанию, правила создаются для зоны public. Для работы с конкретной зоной ее необходимо указать, например, --zone=dmz. Не обязательный.
  • <правило> — само правило. Обязательный.

Чтобы правила применялись, не забываем их перечитывать:

Добавление портов

Открыть порт 80:

firewall-cmd --permanent --add-port=80/tcp

* где ключ --permanent — добавить постоянное правило (будет действовать после перезагрузки).

Добавить правило для определенной зоны:

firewall-cmd --permanent --zone=external --add-port=80/tcp

Добавить диапазон портов:

firewall-cmd --permanent --add-port=6500-6700/udp

Добавить несколько правил одной командой:

firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp

Добавление сервиса

Использование служб, вместо портов, может повысить удобство управления правилами за счет объединения нескольких портов в одну службу.

Посмотреть список доступных служб:

Разрешить порт, например, для сервиса ntp:

firewall-cmd --permanent --add-service=ntp

Создать собственную службу:

firewall-cmd --permanent --new-service=name-service

* где name-service — произвольное имя создаваемой службы.

Добавить порт, например TCP 2200 к службе:

firewall-cmd --permanent --service=name-service --add-port=2200/tcp

Задать описание для удобства:

firewall-cmd --permanent --service=name-service --set-short="Service With This Name"

firewall-cmd --permanent --service=name-service --set-description="Long Description For Service With This Name"

Информацию о созданном сервисе можно получить командой:

Теперь созданную службу можно использовать для создания правил, например:

firewall-cmd --permanent --add-service=name-service

Rich-Rule

rich-rule позволяет создавать правила с условиями. Рассмотрим несколько примеров:

2. Или для конкретного порта:

3. Чтобы заблокировать подсеть можно воспользоваться командой:

Список правил с условиями можно отобразить командой:

Удаление правил

Аналогично созданию, но вместо add вводим remove, например --remove-port (удалит порт) или --remove-service (службу).

Удалим правило для открытия 80-о порта:

firewall-cmd --permanent --remove-port=80/tcp

Управление зонами

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

Посмотреть список всех имеющихся зон:

Посмотреть список используемых зон:

Информация о конкретной зоне:

firewall-cmd --list-all --zone=public

Создать правило для зоны public:

firewall-cmd --permanent --zone=public --add-port=80/tcp

Добавить сетевой интерфейс в зону:

firewall-cmd --permanent --zone=public --remove-interface=ens34

firewall-cmd --permanent --zone=internal --add-interface=ens34

* сначала нужно удалить адаптер из текущей зоны.

Задать действие по умолчанию для зоны:

firewall-cmd --permanent --zone=public --set-target=DROP

Создать новую зону:

firewall-cmd --permanent --new-zone=custom_zone

* чтобы система увидела новую зону custom_zone, команда reload обязательная.

Пример настройки NAT (шлюза)

firewall-cmd --permanent --zone=dmz --add-masquerade

* без указания зон, будет включен для public и external.

Для примера берем два ethernet интерфейса — ens32 (внутренний) и ens33 (внешний). Для настройки nat последовательно вводим следующие 4 команды:

firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o ens33 -j MASQUERADE

* правило включает маскарадинг на внешнем интерфейсе ens33. Где опция --direct требуется перед всеми пользовательскими правилами (--passthrough, --add-chain, --remove-chain, --query-chain, --get-chains, --add-rule, --remove-rule, --query-rule, --get-rules); nat — таблица, в которую стоит добавить правило; POSTROUTING 0 — цепочка в таблице nat; опция MASQUERADE указывает сетевому экрану менять внутренний IP-адрес на внешний.

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens32 -o ens33 -j ACCEPT

* добавляет в таблицу filter (цепочку FORWARD) правило, позволяющее хождение трафика с ens32 на ens33.

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens33 -o ens32 -m state --state RELATED,ESTABLISHED -j ACCEPT

* добавляет правило в таблицу filter (цепочку FORWARD), позволяющее хождение трафика с ens33 на ens32 для пакетов, открывающих новый сеанс, который связан с уже открытым другим сеансом (RELATED) и пакетов, которые уже являются частью существующего сеанса (ESTABLISHED).

systemctl restart firewalld

* для того, чтобы сервер CentOS заработал в качестве шлюза, также необходимо настроить ядро. Подробнее в статье Настройка Интернет шлюза на CentOS 7.

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

firewall-cmd --direct --get-all-rules

Проброс портов

Проброс настраивается со следующим синтаксисом:

firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* в данном примере мы будем слушать запросы на порту 25 и передодить их на узел 192.168.0.15 и порт 8025.

Запретить или разрешить трафик между интерфейсами

Предположим, у нас есть два внутренних сетевых интерфейса ens35 и ens36. Мы хотим контролировать трафик между ними.

Запретить

Применяется в случаях, когда на сервере включен FORWARD, но необходимо блокировать трафик между определенными сегменами сети.

Вводим следующие команды:

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens35 -o ens36 -j DROP

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens36 -o ens35 -j DROP

Разрешить

Применяется в случаях, когда интерфейсы находятся в зонах, где по умолчанию, трафик блокируется.

Для разрешения команды, практически, аналогичные:

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens35 -o ens36 -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens36 -o ens35 -j ACCEPT

Разрешить трафик в одном направлении

В предыдущих примерах мы разрешали трафик в обоих направлениях. Если необходимо сделать так, чтобы только сеть ens35 видела сеть ens36, вводим одну команду:

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens35 -o ens36 -j ACCEPT

Возможные проблемы при работе с firewalld

1. Ошибка command not found (команда не найдена).

Возможные причины: не установлен пакет или не запущена служба.

Выполняем установку пакета firewalld:

yum install firewalld firewall-config

systemctl start firewalld

2. Не применяются правила.

Причина: не введена команда перезапуска правил.

Если это не помогло, делаем перезапуск со сбросом подключений:

В некоторых случаях, необходимо перезапустить сетевые службы:

systemctl restart network

В исключительных случаях, перезагружаем компьютер:

3. The interface is under control of NetworkManager and already bound to the default zone.

Ошибка появляется при попытке удалить интерфейс из зоны, настройками которого управляет NetworkManager.

Для решения открываем конфигурационный файл для настройки сетевого интерфейса, например:

И дописываем следующее:

* в данном примере сетевой интерфейс ens34 будет добавлен в зону external.

Автор Статьи

Firewall – это заимствованный из английского языка термин, который переводится как «противопожарная стена». Эта система активно используется в сетевом оборудовании и компьютерах для защиты подключения от различных вирусов и хакерских атак.

Что такое Firewall

Другое название Firewall – межсетевой экран. По сути, это специальный фильтр, который проверяет информацию, полученную из интернета, на предмет наличия вредоносных данных. Например, вирусов. Он сравнивает пакеты данных, приходящие на устройства, с определенной базой, чтобы выделить среди них потенциально опасные.

Но это лишь первая «линия баррикад», потому не стоит полностью на него полагаться. Система защиты поможет избежать самых распространенных проблем, однако не гарантирует 100%-ную безопасность устройства.


Для чего нужен Firewall в роутере

Этот межсетевой экран применяется в роутерах для того, чтобы обезопасить сетевые подключения. Он блокирует вредоносные данные еще на стадии попадания в сеть пользователя, тем самым потенциально спасая все устройства, которые в нее входят.

Практически все современные устройства поставляются со встроенным Firewall, что обеспечивает хотя бы минимальную степень безопасности. Выбирая роутер, рекомендуется отдельное внимание уделить наличию или отсутствию такого функционала. Вполне возможно, что бюджетный вариант не будет им оснащен и станет причиной огромного количества проблем из-за хакерских атак или различных вирусов. На безопасности в данном случае экономить не стоит.

Firewall в роутере можно рассматривать как дополнительную антивирусную программу

Как настроить Firewall в роутере

Можно выделить 3 основных уровня защиты, которые может предоставлять среднестатистический роутер с Firewall:

  1. Минимальная. Самый слабый уровень безопасности, при котором существенно возрастает вероятность хакерской атаки компьютера или заражения вредоносными программами. С другой стороны, немного повышается скорость соединения за счет того, что система будет проверять только небольшую часть данных. Впрочем, преимущество незначительное, а вот возможные проблемы будут крайне серьезными, потому лучше такой режим защиты не выбирать.
  2. Стандартная. Обычно выставлена по умолчанию. Блокируются самые распространенные угрозы, без значительного снижения скорости соединения. Вариант можно порекомендовать пользователям, которые не очень разбираются в теме.
  3. Максимальная. Обеспечивает блокировку всех подозрительных пакетов данных, однако существенно снижает скорость подключения. Зачастую вместо такой настройки лучше использовать любую другую антивирусную программу, установленную непосредственно на устройстве, входящем в сеть.

Названия и отдельные детали этого параметра могут сильно различаться в зависимости от множества параметров. Важно помнить, что большинство провайдеров требуют, чтобы пользователи выставляли определенные настройки, оптимально подходящие для используемого подключения. Поэтому попытка самостоятельно что-то поменять может привести к отключению интернет-соединения.

Заключение

Firewall в роутере нужен в абсолютном большинстве случаев. Каждый год количество вредоносных программ и приложений, вирусов и хакерских атак возрастает на порядок. Никто не может дать 100%-ной гарантии, что устройства пользователя будут защищены абсолютно от всех угроз, однако такая система обороны ПК значительно повышает уровень безопасности сети.

Оставьте свою электронную почту и получайте самые свежие статьи из нашего блога. Подписывайтесь, чтобы ничего не пропустить

Зоны и службы Firewalld

Прежде всего важно понять концепцию зон. Зоны используются для определения уровня доверия к сетевым соединениям за счет разделения входящего трафика по его уникальным характеристикам. Таким образом, к различным зонам можно применять различные правила. Для зоны указываются активные опции брандмауэра в виде предварительно определенных служб, портов и протоколов, маскарадинга/перенаправления портов и rich rules.

Firewalld фильтрует входящий трафик по различным зонам в зависимости от конкретных правил, применяемых к каждой зоне. При определении зоны для входящего соединения будет применяться следующая логика. Если IP-адрес отправителя соответствует определенным для зоны значениям, то пакет будет направляться через эту зону. Если этот адрес не соответствует ни одной зоне, то проверяется соответствие входящего интерфейса пакета фильтру зоны, и в случае такого соответствия используется эта зона. Во всех остальных случаях используется зона по умолчанию, изначально заданная как public. Для нее предполагается, что вы не доверяете другим компьютерам в сети и разрешаете работу только ограниченного числа служб.

В firewalld есть ряд зон с предварительно настроенными разрешениями для различных служб. Вы можете изменять эти настройки или создавать собственные зоны. В порядке от наименее доверенных к наиболее доверенным эти зоны следующие:

В зонах могут быть установлены разрешения для пользовательских или предварительно заданных служб. Конфигурация предварительно заданных служб находится в директории /usr/lib/firewalld/services. Например, вот содержимое файла /usr/lib/firewalld/services/kerberos.


Можно создавать свои службы для использования в firewalld, создавая файл аналогичного формата в директории /usr/lib/firewalld/services, имя файла также должно заканчиваться на .xml. После создания пользовательских файлов в этой директории нужно запустить команду restorecon для применения подходящих контекстов SELinux.

Управление Firewalld

В Centos 7 firewalld установлен по умолчанию, если же его нет, то можно установить следующей командой:

После установки нужно включить службу

Добавляем в автозагрузку

После запуска сервиса брандмауэр должен заработать, ваши сетевые интерфейсы распределятся по настроенным зонам (или попадут в зону по умолчанию), и к ним будут применяться соответствующие правила.

Проверить работу и доступность службы можно командой


Этот результат показывает, что брандмауэр работает с конфигурацией по умолчанию.

При внесении изменений в постоянную конфигурацию они не будут применены, пока вы не выполните





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

Более подробную информацию об этих и других опциях можно получить на соответствующей странице руководства. В ее конце есть несколько примеров.

Судя по имени службы ssh, в данном случае разрешается входящее подключение к TCP-порту 22, но мы можем удостовериться в этом, проверив файл конфигурации службы.


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


Диапазон адресов источника 192.168.1.0/24, разрешены входящие подключения для службы ssh и TCP-порта 9000.

Рассмотренные правила достаточно просты. Далее мы познакомимся с rich rules, которые обеспечивают гораздо большую гибкость.

Rich rules в firewalld

Rich rules предоставляют гораздо больший уровень контроля, благодаря более тонким настройкам. Также их можно использовать для настройки ведения лога, маскарадинга, проброс портов и ограничения трафика.

Синтаксис и примеры rich rules подробно описаны в соответствующей странице руководства.

Рассмотрим наиболее важные опции для работы с rich rules.


Создадим rich rule, отклоняющее любой трафик с диапазона 192.168.0.10/24.

Reject выдает ICMP-пакет об отклонении, тогда как drop просто отклоняет трафик без дополнительных действий. Поэтому drop может быть предпочтительнее в плане безопасности, так как ответ об отклонении раскрывает существование системы.

При использовании в rich rules адресов источника или получателя нужно указывать семейство rule family ipv4 или ipv6 в зависимости от используемой адресации.

Rich rules могут использоваться для ограничения трафика. Например, так можно ограничить количество входящих SSH-соединений десятью в минуту:

Трансляция сетевых адресов (NAT)

Командой firewall-cmd можно настроить NAT с маскарадингом или пробросом портов. Маскарадинг можно настроить только для IPv4, но не для IPv6.

Настройка маскарадинга в firewalld

Маскарадинг -это подмена ip адреса отправителя(маскарад) на внешний адрес нашего сервера, когда компьютер с неким внутренним ip адресом пытается получить к доступ к ресурсам в интернете. Ответы на эти пакеты также пойдут через наш сервер. И адрес сервера будет подменен на ip отправителя, чтобы трафик отправлялся на узел, который инициировал отправку.

Здесь маскарадинг выполняется для всего трафика с диапазона адресов 192.168.1.0/24.

проброс портов в firewalld

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

Также эта команда показывает включен или отключен маскарадинг.

Для более тонкой настройки снова можно воспользоваться rich rules. В данном примере мы можем указать конкретный адрес отправителя в зоне testing, а не всю зону.

Заключение

Команда firewall-cmd позволяет нам создавать базовые правила для firewalld, а также rich rules с очень подробными пользовательскими параметрами. Мы также рассмотрели маскарадинг и перенаправление портов для отправки трафика на другие узлы при помощи трансляции сетевых адресов (NAT).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Для повышения безопасности системы Red Hat Linux предлагает настроить firewall (брандмауэр). Firewall находится между компьютером и сетью и определяет, к каким ресурсам вашего компьютера можно предоставить доступ удаленным пользователям в сети. Грамотно настроенный firewall может существенно увеличить безопасность системы.


Рисунок 3-19. Настройка Firewall

Выберите требуемый уровень безопасности системы.

Если выбрать Высокий (High) , то система не будет принимать соединения (кроме установленных по умолчанию), которые специально не указаны вами. По умолчанию разрешены только следующие соединения:

Ответы DNS (DNS replies)

Если вы выберете Высокий (High) , ваш firewall запретит следующие соединения:

Активный режим FTP (пассивный режим FTP, используемый по умолчанию для большинства клиентов, будет разрешен)

Передача файлов по IRC DCC

Удаленные клиенты системы X Window

Если вы подключены к интернету, но не собираетесь устанавливать сервер, этот уровень будет самым безопасным. Если вам нужны дополнительные сервисы, вы можете выбрать Настроить вручную (Customize) , чтобы определенные сервисы пропускались через firewall.


Обратите внимание

Если вы выберете средний или высокий уровни в процессе данной установки, то способы сетевой аутентификации (NIS и LDAP) не будут работать.

Если выбрать Средний (Medium) , то firewall запретит удаленным компьютерам доступ к определенным ресурсам вашей системы. По умолчанию запрещен доступ к следующим ресурсам:

Дисплей локальной системы X Window для удаленных клиентов X.

Порт X Font сервера (по умолчанию xfs не слушает сеть, т.к. отключен в сервере шрифтов).

Если вы хотите разрешить такие ресурсы, как RealAudio TM , при этом закрывая доступ к обычным системным службам, выберите Средний (Medium) . Вы можете выбрать Настроить вручную (Customize) , чтобы определенные сервисы пропускались через firewall.


Обратите внимание

Если вы выберете средний или высокий уровни в процессе данной установки, то способы сетевой аутентификации (NIS и LDAP) не будут работать.

Выберите Настроить вручную (Customize) , чтобы добавить в список доверенные устройства или разрешить доступ дополнительным входящим службам.

Выбор любого из Доверенных устройств (Trusted Devices) разрешает доступ к вашей системе всему траффику с этого устройства; этот траффик исключается из правил firewall. К примеру, если вы находитесь в локальной сети и подключаетесь к интернету через модемную связь по протоколу PPP, вы можете отметить eth0 , и весь траффик по локальной сети будет разрешен. Выбор eth0 в качестве доверенного устройства означает, что весь траффик по Ethernet разрешен, но интерфейс ppp0 по-прежнему находится за firewall. Если вы хотите запретить траффик по какому-либо интерфейсу, не отмечайте его.

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

Разрешить входящие (Allow Incoming)

Включение этой опции позволяет указанным службам проходить через firewall. Обратите внимание, что при установке типа рабочая станция большинство этих служб не устанавливается.

Если разрешить входящие запросы и ответы DHCP, то это позволит всем сетевым интерфейсам, использующим протокол DHCP, определить свой IP адрес. Обычно DHCP включен. Если DHCP отключен, ваш компьютер не сможет получить IP адрес.

Если вы хотите разрешить доставку входящей почты через firewall, чтобы удаленные компьютеры могли напрямую подключаться к вашему и доставлять почту, включите эту опцию. Если же вы забираете почту с сервера провайдера через протоколы POP3 или IMAP или же используете такой клиент, как fetchmail , вам не нужно включать эту опцию. Имейте в виду, что неправильно настроенный SMTP сервер может позволить злобным спамерам с удаленных компьютеров использовать ваш сервер в своих грязных целях. ;)

Протокол FTP используется для передачи файлов между компьютерами в сети. Если вы хотите открыть доступ на ваш FTP сервер, включите эту опцию. Вам потребуется установить пакет wu-ftpd (а возможно, еще и пакет anonftp ).

Другие порты (Other ports)

Вы можете открыть доступ к портам, которые не были перечислены выше, внеся их в поле Другие порты (Other ports) . Используйте формат port:protocol . Например, если вы хотите открыть доступ по IMAP через ваш firewall, укажите imap:tcp . Точно также можно явно указывать номера портов; чтобы открыть доступ через firewall для UDP пакетов на 1234 порт, введите 1234:udp . Если вы хотите указать несколько портов, вводите их через запятую.


Совет

Для того, чтобы изменить настройки уровня безопасности после завершения процесса установки, воспользуйтесь Утилитой настройки уровня безопасности (Security Level Configuration Tool) .

Для того, чтобы запустить Утилиту настройки уровня безопасности (Security Level Configuration Tool) , введите команду redhat-config-securitylevel в командной строке. Если вы не являетесь пользователем root, появится приглашение ввести пароль root для запуска этой утилиты.

Читайте также: