- Настройка firewalld CentOS 7 с примерами команд
- Запуск и остановка firewalld
- Зоны firewalld
- Пример: разрешаем ssh на нестандартном порте
- Разные полезные команды:
- Маскарад (masquerade, он же nat, он же. ):
- Преимущества firewalld
- Недостатки firewalld
- Не хочу firewalld! Верните мне старый iptables!
- Firewalld
- Contents
- Installation
- Usage
- Configuration
- Zones
- Zone information
- Changing zone of an interface
- Default zones
- Services
- Adding or removing services from a zone
- Ports
- NAT masquerade
- Port forwarding
- Tips and tricks
- Port or service timeout
- Converting runtime configuration to permanent
- Check services details
- Firewalld, установка и настройка, зоны, NAT, проброс портов
- Зоны и службы Firewalld
- Управление Firewalld
- Rich rules в firewalld
- Трансляция сетевых адресов (NAT)
- Настройка маскарадинга в firewalld
- проброс портов в firewalld
- Заключение
Настройка firewalld CentOS 7 с примерами команд
Centos 7, в отличие от CentOS 6, в базе идет с новым брандмауэром — firewalld. Его можно отключить и заменить на старый добрый iptables, но если к этому нет прямых предпосылок, то лучше привыкать к чему-то новому, а не упираться в старое. Это не значит, что Windows 10 лучше Windows 7, а Windows XP лучше Windows 7 😉 Хороший пример на эту тему — selinux. Если вначале почти все (и я тоже) его отключали и даже немного ругали, то теперь почти никто это не советует, только если есть уверенность, что так надо. Напротив, многие уже привыкли (или привыкают) пользоваться semanage. Не будем и мы сразу отключать firewalld, а попробуем, как он на вкус.
Firewalld — это не принципиально иной брандмауэр. Это другая надстройка над netfilter, поэтому если вы обладаете опытом работы с iptables, то помучившись немного вы спокойно начнете пользоваться новым инструментом.
Запуск и остановка firewalld
Проверим, запущен ли firewalld:
# systemctl status firewalld
Тут будет расширенная информация. Чтобы коротко, да (работает) или нет можно так:
# firewall-cmd —state
running
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl start firewalld
# systemctl enable firewalld
Зоны firewalld
В firewalld широко используется понятие зоны. Список всех допустимых зон по-умолчанию:
# firewall-cmd —get-zones
block dmz drop external home internal public trusted work
Назначение зон (условно, конечно):
- drop — все входящие пакеты отбрасываются (drop) без ответа. Разрешены только исходящие соединения.
- block — входящие соединения отклоняются (rejected) с ответом icmp-host-prohibited (или icmp6-adm-prohibited). Разрешены только инициированные системой соединения.
- public — зона по-умолчанию. Из названия ясно, что эта зона нацелена на работу в общественных сетях. Мы не доверяем этой сети и разрешаем только определенные входящие соединения.
- external — зона для внешнего интерфейса роутера (т.н. маскарадинг). Разрешены только определенные нами входящие соединения.
- dmz — зона DMZ, разрешены только определенные входящие соединения.
- work — зона рабочей сети. Мы все еще не доверяем никому, но уже не так сильно, как раньше 🙂 Разрешены только определенные входящие соединения.
- home — домашняя зона. Мы доверяем окружению, но разрешены только определенные входящие соединения
- internal — внутренняя зона. Мы доверяем окружению, но разрешены только определенные входящие соединения
- trusted — разрешено все.
Список всех активных зон:
# firewall-cmd —get-active-zones
public
interfaces: enp1s0
Ага, зона public, к которой присоединен сетевой интерфейс enp1so. Дальше в зону public добавим новый порт, на котором будет висеть sshd.
Зная имя сетевого интерфейса (например, enp1s0), можно узнать, к какой зоне он принадлежит:
# firewall-cmd —get-zone-of-interface=enp1s0
public
А можно узнать, какие интерфейсы принадлежат конкретной зоне:
# firewall-cmd —zone=public —list-interfaces
enp1s0
Пример: разрешаем ssh на нестандартном порте
Давайте разрешим доступ к серверу по ssh на порте 2234/tcp, а не на 22/tcp, как по-умолчанию. Попутно чуть-чуть коснемся selinux.
Сначала посмотрим, что вообще разрешено постоянно на нашем сервере:
# firewall-cmd —permanent —list-all
public (default)
interfaces:
sources:
services: ssh dhcpv6-client
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Я не использую пока ipv6, поэтому сразу уберу соотв. правило из firewalld:
# firewall-cmd —permanent —zone=public —remove-service=dhcpv6-client
Разрешим на постоянной основе (чтобы после перезагрузки не потерлось) соединение на порт 2234/tcp (на него повесим sshd):
# firewall-cmd —permanent —zone=public —add-port=2234/tcp
# firewall-cmd —zone=public —list-ports
2234/tcp
Ок, порт открыт. Редактируем конфиг sshd:
# nano /etc/ssh/sshd_config
.
port 2234
.
# systemctl restart sshd.service
Но SELinux, которую вы, надеюсь, не отключали, не даст подключиться к ssh на нестандартном порте (порт 2234/tcp для sshd — нестандартный). Вы можете этот шаг пропустить и проверить, как сработатет защита SELinux, а можете сразу все настроить:
# yum provides semanage
# yum install policycoreutils-python
# semanage port -a -t ssh_port_t -p tcp 2234
Вот теперь все ок. Проверяем подключение по ssh на новом порте. Если все ок, закрываем доступ к порту 22:
# firewall-cmd —permanent —zone=public —remove-service=ssh
# firewall-cmd —reload
Смотрим, что получилось:
# firewall-cmd —list-all
public (default, active)
interfaces:
sources:
services:
ports: 2234/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Разные полезные команды:
Включить режим блокировки всех исходящих и входящих пакетов:
Выключить режим блокировки всех исходящих и входящих пакетов:
Узнать, включен ли режим блокировки всех исходящих и входящих пакетов:
Перезагрузить правила firewalld без потери текущих соединений:
Перезагрузить правила firewalld и сбросить текущие соединения (рекомендуется только в случае проблем):
Добавить к зоне сетевой интерфейс:
# firewall-cmd —zone=public —add-interface=em1
Добавить к зоне сетевой интерфейс (сохранится после перезагрузки firewall):
# firewall-cmd —zone=public —permanent —add-interface=em1
Можно в конфиге ifcfg-enp1s0 указать, какой зоне принадлежит этот интерфейс. Для этого добавим ZONE=work в файл /etc/sysconfig/network-scripts/ifcfg-enp1s0. Если параметр ZONE не указан, будет назначена зона по-умолчанию (параметр DefaultZone в файле /etc/firewalld/firewalld.conf.
Разрешить диапазон портов:
# firewall-cmd —zone=public —add-port=5059-5061/udp
Маскарад (masquerade, он же nat, он же. ):
# firewall-cmd —zone=external —query-masquerade
# firewall-cmd —zone=external —add-masquerade
Здесь надо отметить, что вы можете включить masquerade и для зоны public, например.
Перенаправить входящие на 22 порт на другой хост:
# firewall-cmd —zone=external —add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23
Перенаправить входящие на 22 порт на другой хост с изменением порта назначения (с 22 на 192.168.1.23:2055):
# firewall-cmd —zone=external /
—add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23
На этом закончу, т.к. примеров может быть бесконечно много. Добавлю только, что лично я не составил окончательно свое мнение по поводу нововведения firewalld, т.к. к синтаксису привыкаешь долго и если в вашем зоопарке встречаются разные OS Linux, то по первости могут быть проблемы именно с привычкой. Но освоив firewalld, вы расширите кругозор — чаще всего, это стоит затраченных усилий.
Преимущества firewalld
Основное преимущество — вы немного абстрагируетесь от цепочек iptables.Для включения перенаправления портов не придется думать про PREROUTING или POSTROUTING в дополнение к FORWARD. Вам дается «API от iptables от производителя», что-то в этом роде. Если вы включили nat, то неважно, где конкретно (под каким порядковым номером текущих правил) размещено правило. Вы просто указываете — включи nat на eth0. И без глупостей 😉 Это может быть удобно, если надо организовать web интерфейс управления брандмауэром.
Есть возможность проверить статус (например, включен nat или нет!). И также использовать это в своих скриптах, в логике вашего приложения, например. Я не знаю, как в iptables создать именно запрос статуса (вкл/выкл). Можно, конечно, что-то в роде iptables -L -t nat | grep ‘. ‘, но согласитесь, это немного не то же самое, что выполнить ‘firewall-cmd —zone=external —query-masquerade’. Есть, к примеру, сотни VM с CentOS, в которых могут немного отличаться названия wan интерфейсов или еще что-то в этом роде. А так вы имеете универсальный командлет, который даст ожидаемый результат на разных машинах.
Недостатки firewalld
Основной недостаток, на мой взгляд, это то, что при привыкании начнется отвыкание от «чистого» iptables, который и в Debian, и в Ubuntu, и в CentOS и, вообще, везде. Даже, кстати, в микротик синтаксис и цепочки похожи по типу на iptables. Это на любителя, конечно. И профессионалу все равно, с чем работать, если есть конкретные условия, он будет работать с тем, что есть. Но. я ретроград и отчаянно сопротивляюсь (при отсутсвии явных преимуществ) новинкам, которые каждый крупный игрок реализует под себя. RedHat выгодно, если все больше новых специалистов будут асами в firewalld.
И если вы перешли на firewalld, то уже чистый синтаксис iptables вам только помешает — будет каша или просто сломается работа брандмауэра, если вы начнете изменять/дополнять правила не с помощью стандартного синтаксиса firewalld.
Не хочу firewalld! Верните мне старый iptables!
Если все же вы хотите вернуть прошлое и заменить firewalld на iptables, то сделать это совсем не трудно:
Новичкам тут не место:
# systemctl disable firewalld
# systemctl stop firewalld
Ставим старый добрый iptables:
# yum install iptables-services
# systemctl start iptables
# systemctl start ip6tables
Автозапуск при включении:
# systemctl enable iptables
# systemctl enable ip6tables
Для сохранения правил iptables после перезагрузки:
# /sbin/iptables-save > /etc/sysconfig/iptables
# /sbin/ip6tables-save > /etc/sysconfig/ip6tables
# service iptables save
Текущие правила находятся в файлах:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Перезапуск iptables (например, после совершения каких-либо изменений):
Источник
Firewalld
firewalld is a firewall daemon developed by Red Hat. It uses nftables by default. From project home page:
Firewalld provides a dynamically managed firewall with support for network/firewall zones that define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall settings, ethernet bridges and IP sets. There is a separation of runtime and permanent configuration options. It also provides an interface for services or applications to add firewall rules directly.
Contents
Installation
Usage
You can control the firewall rules with the firewall-cmd console utility.
firewall-offline-cmd utility can be used to configure when firewalld is not running. It features similar syntax to firewall-cmd .
GUI is available as firewall-config which comes with firewalld package.
Configuration
Configuration at run time can be changed using firewall-cmd .
Zones
Zone is a collection of rules that can be applied to a specific interface.
To have an overview of the current zones and interfaces they are applied to:
Some commands (such as adding/removing ports/services) require a zone to specified.
Zone can be specified by name by passing —zone=zone_name parameter.
If no zone is specified default zone is assumed.
Zone information
You can list all the zones with entirety their configuration:
or just a specific zone
Changing zone of an interface
There zone is a new zone that you want to assign interface to.
Using NetworkManager to manage zones
NetworkManager can assign different connection profiles to different zones. This allows for example, adding a home WiFi connection to the «home» zone, a work WiFi connection to the «work» zone, and all other WiFi connections to the default «public» zone.
List connection profiles:
Assign the «myssid» profile to the «home» zone:
Default zones
When a new interface is connected the default zone will be applied. You can query the name of the default zone using:
The default zone can be changed using following command.
Services
Services are pre-made rules corresponding to a specific daemon. For example, ssh service corresponds to SSH and opens ports 22 when assigned to a zone.
To get a list of available services enter following command:
You can query information about particular service:
Adding or removing services from a zone
To add a service to a zone:
Ports
Ports can be directly opened on a specific zone.
There protocol is either tcp or udp .
To close the port use —remove-port option with same port number and protocol.
NAT masquerade
This command has the same effect as iptables -t nat -A POSTROUTING -j MASQUERADE :
Port forwarding
If you have firewalld configured on a router, and you have enabled NAT masquerading as above, it is simple to set up port forwarding through firewalld:
This will forward port 12345/tcp on the firewall’s public interface to port 22 (standard SSH) on the internal system at IP address 10.20.30.40. To remove this forwarded port:
Unfortunately you have to type the entire forward declaration in order to remove it, specifying only the port and the protocol is not enough.
Tips and tricks
Port or service timeout
Service or port can be added for a limited amount of time using —timeout=value option passed during addition command. Value is either number of seconds, minutes if postfixed with m or hours h . For example, adding SSH service for 3 hours:
Converting runtime configuration to permanent
You can make the runtime (current temporary) configuration permanent (meaning it persists through restarts)
Check services details
The configuration files for the default supported services are located at /usr/lib/firewalld/services/ and user-created service files would be in /etc/firewalld/services/ .
Источник
Firewalld, установка и настройка, зоны, NAT, проброс портов
Firewalld — решение для управления брандмауэром, доступное во многих дистрибутивах Linux, которое работает как интерфейс для системы фильтрации пакетов iptables, предоставляемой ядром Linux. В данном руководстве мы рассмотрим установку и настройку брандмауэра при помощи административного инструмента firewall-cmd.
Зоны и службы Firewalld
Прежде всего важно понять концепцию зон. Зоны используются для определения уровня доверия к сетевым соединениям за счет разделения входящего трафика по его уникальным характеристикам. Таким образом, к различным зонам можно применять различные правила. Для зоны указываются активные опции брандмауэра в виде предварительно определенных служб, портов и протоколов, маскарадинга/перенаправления портов и rich rules.
Firewalld фильтрует входящий трафик по различным зонам в зависимости от конкретных правил, применяемых к каждой зоне. При определении зоны для входящего соединения будет применяться следующая логика. Если IP-адрес отправителя соответствует определенным для зоны значениям, то пакет будет направляться через эту зону. Если этот адрес не соответствует ни одной зоне, то проверяется соответствие входящего интерфейса пакета фильтру зоны, и в случае такого соответствия используется эта зона. Во всех остальных случаях используется зона по умолчанию, изначально заданная как public. Для нее предполагается, что вы не доверяете другим компьютерам в сети и разрешаете работу только ограниченного числа служб.
В firewalld есть ряд зон с предварительно настроенными разрешениями для различных служб. Вы можете изменять эти настройки или создавать собственные зоны. В порядке от наименее доверенных к наиболее доверенным эти зоны следующие:
drop — минимальный уровень доверия. Все входящие соединения блокируются без ответа, допускаются только исходящие соединения.
block — аналогично предыдущему, но при отклонении входящих запросов отправляется сообщение icmp-host-prohibited или icmp6-adm-prohibited.
public — представляет общественные, недоверенные сети. Вы не доверяете другим компьютерам, но можете разрешать избранные входящие соединения в индивидуальном порядке.
external — внешние сети при использовании брандмауэра в качестве шлюза. Она настроена для маскирования NAT, поэтому ваша внутренняя сеть остается частной, но доступной.
internal — внутренняя сторона шлюза. Компьютеры обладают достаточным уровнем доверия, доступен ряд дополнительных служб.
dmz — используется для компьютеров, расположенных в DMZ («демилитаризованная зона», изолированные компьютеры без доступа к остальной сети). Разрешены только определенные входящие соединения.
work — используется для рабочих машин. Доверять большинству компьютеров в сети. Может быть разрешено еще несколько служб.
home — домашняя среда. Обычно означает, что вы доверяете большинству других компьютеров и разрешаете работу еще нескольких служб.
trusted — доверять всем машинам в сети. Наиболее открытая из всех доступных опций, должна использоваться с осторожностью.
В зонах могут быть установлены разрешения для пользовательских или предварительно заданных служб. Конфигурация предварительно заданных служб находится в директории /usr/lib/firewalld/services. Например, вот содержимое файла /usr/lib/firewalld/services/kerberos.
Можно создавать свои службы для использования в firewalld, создавая файл аналогичного формата в директории /usr/lib/firewalld/services, имя файла также должно заканчиваться на .xml. После создания пользовательских файлов в этой директории нужно запустить команду restorecon для применения подходящих контекстов SELinux.
Управление Firewalld
В Centos 7 firewalld установлен по умолчанию, если же его нет, то можно установить следующей командой:
После установки нужно включить службу
Добавляем в автозагрузку
После запуска сервиса брандмауэр должен заработать, ваши сетевые интерфейсы распределятся по настроенным зонам (или попадут в зону по умолчанию), и к ним будут применяться соответствующие правила.
Проверить работу и доступность службы можно командой
Этот результат показывает, что брандмауэр работает с конфигурацией по умолчанию.
При настройке конфигурации firewalld командой firewall-cmd можно указать опцию —permanent для изменения постоянных файлов конфигурации, записанных на диске. Если запускать команду без этой опции, изменится только текущая конфигурация, и при перезапуске все изменения будут потеряны. Если вы внесли изменения в текущую конфигурацию, можно сохранить их в постоянную при помощи команды
При внесении изменений в постоянную конфигурацию они не будут применены, пока вы не выполните
Изменения можно сделать временными при помощи опции —timeout, в которой мы можем указать время действия правила в секундах, по истечении которого оно будет удалено.
Это очень полезно при удаленном управлении системой: вы не сможете постоянно заблокировать себе доступ из-за ошибки в правиле, так как по истечении указанного времени изменение будет отменено. Опции —timeout и —permanent нельзя использовать одновременно.
Далее мы рассмотрим ряд других распространенных и полезных опций команды firewall-cmd. Если не указывать зону при изменении конфигурации, будет использоваться зона по умолчанию. Зону можно указать при помощи опции —zone=ИМЯ_ЗОНЫ
—get-default-zone — вывод зоны, установленной в качестве зоны по умолчанию, изначально это зона public.
—new-zone=ИМЯ_ЗОНЫ — создание новой пользовательской зоны, требуется опция —permanent.
—set-default-zone — изменение зоны по умолчанию public на любую желаемую зону. Данная зона по умолчанию будет использоваться на всех интерфейсах, если не указано иное.
—get-zones — вывод списка всех доступных зон.
—list-all-zones выводит более подробную информацию о каждой зоне, для примера приведем результат для одной из них.
—get-active-zones выводит только те зоны, которые в данный момент используются и связаны с каким-либо интерфейсом.
—get-services позволяет получить список предварительно заданных служб, которые можно использовать в правилах брандмауэра. Эти службы привязаны к портам.
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https
—list-services используется для получения списка служб, разрешенных для зоны. Ниже приведен заданный по умолчанию список для зоны public.
—add-service применяется для добавления служб в указанной зоне, в данном примере мы добавим предварительно заданную службу kerberos в зону public.
—remove-service выполняет обратную процедуру и прекращает доступ службы в зону.
—add-source=IP-адрес — добавить в зону IP-адрес или диапазон адресов. Это означает, что если адрес источника входящего трафика будет соответствовать диапазону, то к этому трафику будет применяться установленная зона. В данном случае мы установим соответствие зоны testing и трафика с диапазона 10.10.10.0/24.
—remove-source=IP-адрес — удаление IP-адреса или диапазона адресов, ранее добавленных для зоны.
Для одной зоны можно указывать в качестве источника несколько IP-адресов или диапазонов.
—add-port=ПОРТ/ПРОТОКОЛ — добавить в зону TCP или UDP порт. Принцип действия аналогичен —add-source.
—list-ports — вывод списка портов, разрешенных для указанной зоны. Мы только что добавили TCP-порт 9000 в зоне по умолчанию и видим его в списке.
—remove-port удаляет порты, ранее добавленные —add-port.
Более подробную информацию об этих и других опциях можно получить на соответствующей странице руководства. В ее конце есть несколько примеров.
В следующем примере создается новая зона ‘test’, применяемая к трафику с диапазона 192.168.1.0/24. После чего мы разрешаем для зоны службу ssh и TCP-порт 9000.
Так как все изменения вносились с опцией —permanent, требуется перезапуск текущей конфигурации.
Судя по имени службы ssh, в данном случае разрешается входящее подключение к TCP-порту 22, но мы можем удостовериться в этом, проверив файл конфигурации службы.
Также можно просмотреть информацию о зоне test и увидеть, какие изменения мы внесли.
Диапазон адресов источника 192.168.1.0/24, разрешены входящие подключения для службы ssh и TCP-порта 9000.
Рассмотренные правила достаточно просты. Далее мы познакомимся с rich rules, которые обеспечивают гораздо большую гибкость.
Rich rules в firewalld
Rich rules предоставляют гораздо больший уровень контроля, благодаря более тонким настройкам. Также их можно использовать для настройки ведения лога, маскарадинга, проброс портов и ограничения трафика.
Синтаксис и примеры rich rules подробно описаны в соответствующей странице руководства.
При наличии нескольких rich rules они обрабатываются в определенном порядке. Сначала применяются правила перенаправления портов и маскарадинга. Далее идут правила ведения логов. Потом разрешающие правила, а в самом конце — запрещающие. Для пакета используется первое правило из указанного порядка, которое ему подойдет. если он не соответствует ни одному правилу, то к нему будет применено отклонение по умолчанию.
Рассмотрим наиболее важные опции для работы с rich rules.
—add-rich-rule=’ПРАВИЛО’ — добавить правило, в данном примере мы разрешаем трафик с диапазона 10.0.0.0/24 только в диапазон 192.168.0.10/32 через TCP-порты c 8080 по 8090.
—list-rich-rules — вывод всех rich rules для указанной зоны. Мы видим только что созданное нами правило.
—remove-rich-rule — удалить rich rule, синтаксис такой же как у —add-rich-rule.
Создадим rich rule, отклоняющее любой трафик с диапазона 192.168.0.10/24.
Reject выдает ICMP-пакет об отклонении, тогда как drop просто отклоняет трафик без дополнительных действий. Поэтому drop может быть предпочтительнее в плане безопасности, так как ответ об отклонении раскрывает существование системы.
При использовании в rich rules адресов источника или получателя нужно указывать семейство rule family ipv4 или ipv6 в зависимости от используемой адресации.
Rich rules могут использоваться для ограничения трафика. Например, так можно ограничить количество входящих SSH-соединений десятью в минуту:
Также можно применять rich rules для записи сообщений в файл лога. Которое также может быть ограничено. Здесь мы ведем лог SSH-соединений с диапазона адресов 192.168.0.0/24, но количество записей ограничено 50 в минуту. Записываются только сообщения уровня ‘info’ или более важные.
Трансляция сетевых адресов (NAT)
Командой firewall-cmd можно настроить NAT с маскарадингом или пробросом портов. Маскарадинг можно настроить только для IPv4, но не для IPv6.
Настройка маскарадинга в firewalld
Маскарадинг -это подмена ip адреса отправителя(маскарад) на внешний адрес нашего сервера, когда компьютер с неким внутренним ip адресом пытается получить к доступ к ресурсам в интернете. Ответы на эти пакеты также пойдут через наш сервер. И адрес сервера будет подменен на ip отправителя, чтобы трафик отправлялся на узел, который инициировал отправку.
Маскарадинг для зоны можно включить опцией —add-masquerade
При помощи опции —query-masquerade мы можем убедиться, что маскарадинг успешно включен. В данном случае мы запросим постоянную конфигурацию, так как изменили только ее и еще не выполнили перезапуск.
В нашем примере маскарадингу будет подвергаться любой пакет, отправляемый на адреса, указанные в зоне ‘testing’. Для более тонкой настройки можно воспользоваться rich rules.
Здесь маскарадинг выполняется для всего трафика с диапазона адресов 192.168.1.0/24.
проброс портов в firewalld
Как следует из названия, при пробросе портов весь трафик, отправленный на конкретный порт, будет перенаправляться либо на другой порт локальной системы, либо на порт внешней системы. Если требуется проброс на внешнюю сеть, нужно также настроить маскарадинг.
В рассмотренном ниже примере локальная система будет перенаправлять весь трафик, отправленный на порт 22, на TCP-порт 2222 на адрес 10.0.0.10. Правило перенаправления портов будет применяться только для отправителей, указанных в зоне ‘testing’.
Убедиться в успешной работе проброса портов можно при помощи опции —query-forward-port.
Целиком вводить запись, которую вы делали при добавлении проброса портов, достаточно неудобно. Лучше воспользоваться опцией —list-all, она покажет все перенаправляемые порты.
Также эта команда показывает включен или отключен маскарадинг.
Для более тонкой настройки снова можно воспользоваться rich rules. В данном примере мы можем указать конкретный адрес отправителя в зоне testing, а не всю зону.
Также мы можем не использовать параметр to-addr, в этом случае перенаправление портов полностью будет выполняться на локальной системе. Действующие rich rules можно просмотреть, используя опцию —list-rich-rules.
Заключение
Команда firewall-cmd позволяет нам создавать базовые правила для firewalld, а также rich rules с очень подробными пользовательскими параметрами. Мы также рассмотрели маскарадинг и перенаправление портов для отправки трафика на другие узлы при помощи трансляции сетевых адресов (NAT).
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник