Я уже спрашивал раньше, как перенаправить порты на 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
Судя по вашему предыдущему вопросу 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