Вопрос или проблема
У меня работает VPN Wireguard для доступа к локальной сети извне.
Раньше я использовал nft
, но для этого сервера я использую firewalld
.
Вот моя команда nft для разрешения маскарадинга: PostUp = nft add rule inet POSTROUTING_%i postrouting ip daddr 192.168.1.1/24 masquerade
Как это сделать с помощью firewalld?
Основной интерфейс и интерфейс VPN находятся в общественной зоне.
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: cockpit dhcpv6-client nfs samba ssh vnc-server
ports: 80/tcp 443/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Ответ или решение
Настройка маскарадинга между интерфейсами на выбранные адреса назначения с использованием Firewalld может показаться сложной задачей. Ниже приведен пошаговый процесс на русском языке, раскрывающий, как это осуществить.
Определение задачи
У вас есть настроенная VPN WireGuard для доступа к вашей локальной сети из внешних сетей. Вы привыкли использовать nftables
для создания правил маскарадинга, но на данном сервере перешли на использование firewalld
. Ваша командная строка для nftables
выглядела так: PostUp = nft add rule inet POSTROUTING_%i postrouting ip daddr 192.168.1.1/24 masquerade
. Теперь вам необходимо осуществить аналогичное действие с помощью firewalld
. Основной интерфейс и VPN-интерфейс относятся к публичной зоне.
Шаги для настройки маскарадинга с Firewalld
-
Включение маскарадинга:
Чтобы включить маскарадинг вfirewalld
, сначала убедитесь, что маскарадинг для публичной зоны активирован. Это можно сделать командой:sudo firewall-cmd --zone=public --add-masquerade
Чтобы сохранить изменения постоянно, используйте:
sudo firewall-cmd --zone=public --add-masquerade --permanent
-
Создание Rich Rule:
Если вы хотите ограничить маскарадинг определёнными адресами назначения, то вам нужно использовать богатое правило (rich rule). Пример команды для добавления такого правила:sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" destination address="192.168.1.0/24" masquerade'
И для постоянного добавления:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" destination address="192.168.1.0/24" masquerade' --permanent
-
Перезагрузка параметров Firewalld:
Чтобы все внесенные изменения вступили в силу, перезапустите сервис:sudo firewall-cmd --reload
-
Проверка статуса:
Убедитесь, что маскарадинг и ваше богатое правило активированы:sudo firewall-cmd --zone=public --query-masquerade sudo firewall-cmd --zone=public --list-rich-rules
Эти шаги помогут вам настроить маскарадинг интерфейса с использованием Firewalld так же, как вы делали это раньше с помощью nftables
. Этот процесс обеспечивает безопасность вашей сети и гарантирует изолированный доступ из внешней сети через VPN.