Функциональность пересылки Firewalld с Wireguard

Я уже спрашивал раньше, как перенаправить порты на VPS, на котором запущена служба Wireguard с ufw и iptables в качестве управления.

I должен был сделать это:

(56000 - это случайный порт, который я выбрал) (10.66.66.2 - это внутренний IP-адрес Wireguard)

ufw route allow proto tcp to 10.66.66.2 port 56000

Затем я бы сделал это, чтобы фактически перенаправить порты с помощью iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2

Есть ли способ для меня добиться этого с помощью firewalld вместо этого? чтобы мне не пришлось разделять переадресацию на два места?

И здесь используется маскарадинг / нужен ли он? знать, что он делает и для чего он используется.

Конфигурация VPS Wireguard wg0 для справки:

Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = ***


[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
0
задан 27 June 2021 в 21:08
1 ответ

Судя по вашему предыдущему вопросу UFW, вы используете WireGuard для двух целей: 1) пересылать трафик от клиента WireGuard вашего VPS в Интернет и 2) перенаправить несколько общедоступных портов с вашего VPS обратно клиенту WireGuard. Вам нужен маскарад (он же SNAT) для 1) и переадресация портов (он же DNAT) для 2).

Самый простой способ настроить это с помощью firewalld - привязать общедоступный интерфейс Ethernet вашего VPS ( eth0 в вашем случае) к предопределенной внешней зоне firewalld и интерфейсу WireGuard вашего VPS ( wg0 в вашем случае) в предварительно определенную зону внутреннюю firewalld. Внешняя зона предварительно сконфигурирована с включенным маскированием; обе зоны также предварительно настроены для приема SSH и некоторых других услуг.

Сначала откройте порт прослушивания WireGuard вашего VPS ( 49503 в вашем случае) во внешней зоне :

$ sudo firewall-cmd --zone=external --add-port=49503/udp

и перенаправьте порт TCP 56000 в внешняя зона к тому же порту на 10.66.66.2 :

$ sudo firewall-cmd --zone=external --add-forward-port='port=56000:proto=tcp:toaddr=10.66.66.2'

Затем привяжите eth0 к внешней зоне (которая применяет конфигурацию firewalld для внешняя зона для всех подключений eth0 ):

$ sudo firewall-cmd --zone=external --add-interface=eth0

И привяжите wg0 к внутренней зоне:

$ sudo firewall-cmd --zone=internal --add-interface=wg0

Проверьте свою активную зоны:

$ sudo firewall-cmd --get-active-zones
external
  interfaces: eth0
internal
  interfaces: wg0

И проверьте конфигурацию вашей внешней зоны:

$ sudo firewall-cmd --info-zone=external
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh
  ports: 49503/udp
  protocols:
  masquerade: yes
  forward-ports: port=56000:proto=tcp:toaddr=10.66.66.2
  source-ports:
  icmp-blocks:
  rich rules:

Если все работает правильно, сохраните текущие настройки firewalld:

$ sudo firewall-cmd --runtime-to-permanent
1
ответ дан 28 July 2021 в 14:06

Теги

Похожие вопросы