LINUX.ORG.RU
ФорумAdmin

Помогите с пробросом портов WireGuard в Alt Linux 11

 ,


0

1

Добрый день.

У меня есть камера, которая подключена к роутеру, а также ПК на Альт линукс, на котором стоит WireGuard и он тоже подключен к роутеру. Я сконфигурировал WireGuard и ПК доступен из интернета. Но хотелось бы смотреть камеру. Для этого в конфиге WireGuard я добавил правила iptables. Вот они:

#Port forwarding and NAT rules
PostUp = iptables -A FORWARD -i wg0 -o eno2 -j ACCEPT
PostUp = iptables -A FORWARD -i eno2 -o wg0 -m state --state ESTABLISHED,RELATED -j ACCEPT
PostUp = iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 554 -j DNAT --to-destination 192.168.1.77:554
PostUp = iptables -t nat -A POSTROUTING -o eno2 -j MASQUERADE

#Clean up rules when interface goes down
PostDown = iptables -D FORWARD -i wg0 -o eno2 -j ACCEPT
PostDown = iptables -D FORWARD -i eno2 -o wg0 -m state --state ESTABLISHED,RELATED -j ACCEPT
PostDown = iptables -t nat -D PREROUTING -i wg0 -p tcp --dport 554 -j DNAT --to-destination 192.168.1.77:554
PostDown = iptables -t nat -D POSTROUTING -o eno2 -j MASQUERADE

192.168.1.77 это адрес камеры, eno2 название сетевого интерфейса. ifconfig:

eno2      Link encap:Ethernet  HWaddr 00:40:45:40:25:82  
          inet addr:192.168.1.140  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::240:45ff:fe40:2582/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:490846 errors:0 dropped:0 overruns:0 frame:0
          TX packets:505724 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:99534407 (94.9 MiB)  TX bytes:102640663 (97.8 MiB)
          Interrupt:16 Memory:54a00000-54a20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1446 (1.4 KiB)  TX bytes:1446 (1.4 KiB)

wg0       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.5  P-t-P:10.8.0.5  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP  MTU:1420  Metric:1
          RX packets:183469 errors:0 dropped:0 overruns:0 frame:0
          TX packets:179384 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:26449188 (25.2 MiB)  TX bytes:71302828 (67.9 MiB)

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

telnet 10.8.0.5 554
Подключение к 10.8.0.5...Не удалось открыть подключение к этому узлу, на порт 554: Сбой подключения

С самого ПК камера естественно видна и подключение к 192.168.1.77 работает.

Вот видно, что траффик идет, а вот FORWARD не работает.

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 407K   68M ACCEPT     all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  wg0    eno2    anywhere             anywhere            
    0     0 ACCEPT     all  --  eno2   wg0     anywhere             anywhere             state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 418K packets, 98M bytes)
 pkts bytes target     prot opt in     out     source               destination      

Интересный момент, что данные настройки взяты мной с другого ПК, где стоит Ubuntu 22 и там все отлично работает. Подскажите пожалуйста, что нужно поправить? Может у АльтЛинукса есть какие-то нюансы?

Заранее спасибо.


Ответ на: комментарий от AS

Показывает 0. Хотя вот тут я прописал флажок:

/etc/sysctl.conf                                                                                                                  # sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

MCoder
() автор топика
Ответ на: комментарий от MCoder

я могу обратиться к камере по 192.168.1.77

В чем проблема тогда?

Что стоит в AllowedIPs?

Попробуй посмотреть что tcpdump ловит на интерфейсах.

Я, видимо, привык, что проще на роутере OpenWRT wireguard поднимать, а не на каком-то устройстве внутри…

NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 3)
Ответ на: комментарий от NyXzOr

Кажется я понял! AS меня натолкнул на мысль, что forwarding не работает.

Сделал вот так и заработало:

sudo sysctl net.ipv4.ip_forward=1

Вопрос: а в каком конфиге это задать, чтобы при старте системы все работало? Правка /etc/sysctl.conf результатов не дает.

MCoder
() автор топика
Ответ на: комментарий от MCoder

Вопрос: а в каком конфиге это задать, чтобы при старте системы все работало? Правка /etc/sysctl.conf результатов не дает.

По идее должна давать. Хотя если с systemd система, то не знаю. Вообще в ALT, если etcnet используется, принято в /etc/net/sysctl.conf сетевую часть писать, но обработчик, по идее, все файлы просматривает. Хотя если /etc/net/sysctl.conf применяется последним, то 0 и получается наверное, если там 0.

AS ★★★★★
()