Děkuji oběma za cennou reakci. Tak jsem se v tom babral asi další 4 hodiny a TCP stále není otevřený. Snažil jsem se to níže sepsat co nejčitelněji ale nepřeju vám tento příběh číst.
SOUHRN:Podle tcpdump data na server přicházejí. Pravidlo, které je má přesměrovat tam zdá se je. iptables loguje data pro ten port, nemohu však najít žádná na protokolu TCP, jen UDP. Wireshark na klientu trafik zobrazuje, ale zdá se, že jen UDP a GVSP, ne TCP... Rád bych ověřil nějak že UDP port je skutečně otevřený, našel jsem následující příkazy ale potřebovaly bynejspíš upravit:
vpn klient: ncat -u -l -p 48280
jiný pc v internetu: nping --udp -p 48280 --data-string 'hello' -c 1 vpnserverIP
Nevím tedy A) proč se zdá že nefunguje TCP přesměrování portu a B) jestli funguje UDP a kterými příkazy to zjistím
PODROBNĚ:Topologie je jak uvádíte - server v internetu a klient v síti LAN, kde je klient napojený na obyčejný WAN router (ten datový tok VPN šifrovaný na klientu jen předává na server a zpět na klienta).
Ano, net.ipv4.ip_forward je zapnutý v /etc/sysctl.conf
Aplikace na klientu je zapnutá a měla by na portu 48280 naslouchat. (je to Transmission a port je u toho nastavený správně)
Wireshark na klientu ukazuje u toho portu který chci přesměrovat záznamy (protokol GVSP) kde se objevuje "[RANGE_ERROR] [BLOCK_DROPPED]" někdy PACKET_RESEND a unknown payload type. Možná je to tak správně, nevím, je to šifrovaný VPN trafik na tun0. Pak jsou tam ještě záznamy protokolu ne GVSP ale UDP. Žádné záznamy TCP. (Transmission software na klientu při kontrole otevřenosti portu 48280 uvádí že kontroluje TCP port...; zkoušel jsem i jiný software a TCP port(+ forwarding), ale je také "zavřený")
Myslel jsem, že ten program Transmission by měl fungovat na UDP ale jeví známky, že nefunguje - možná že je to tím, že torrent vyžaduje pro navázání TCP, nevím.
"tcpdump -i eth0 port 48280" na serveru pak ukazuje packety:
15:34:28.123456 IP nejakehostname.61566 > mojehostname.48280: Flags \[S\], seq 857936979, win 64240, options [mss 1452,nop,wscale 8,nop,nop,sackOK], length 0
Zkoušel jsem zapnout logování na serveru (iptables -A INPUT -j LOG) - nevím zda správně (iptables ukazuje "LOG level warning"), ale ledackteré síťové záznamy se přidávají do kernel logu /var/log/messages, u toho UDP portu 48280 se našly záznamy jako:
Apr 17 15:11:40 let kernel: IN=eth0 OUT= MAC=*** SRC=ciziipadresa DST=mojeipadresaserveru LEN=132 TOS=0x00 PREC=0x20 TTL=113 ID=26107 PROTO=UDP SPT=33078 DPT=48280 LEN=112
v případě tcp protokolu se ale žádné záznamy nezalogovaly :-/, byť tcpdump trafik daného portu zobrazuje. (třeba "tcpdump -i eth0 tcp port 48280")
https://www.yougetsignal.com/tools/open-ports/ a software na klientu ale stále zobrazuje port jako uzavřený.
"iptables -P FORWARD ACCEPT" jsem zkusil, ale politika ale "Chain FORWARD (policy ACCEPT)" už tam bylo.
# iptables -L FORWARD
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- 10.8.0.0/24 anywhere
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- 192.168.42.0/24 192.168.42.0/24
ACCEPT all -- anywhere 192.168.43.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.43.0/24 anywhere
DROP all -- anywhere anywhere
# iptables -L -t nat|grep DNAT
DNAT tcp -- anywhere anywhere tcp dpt:12345 to:127.0.0.1:1082
DNAT tcp -- ciziip.0/24 anywhere tcp dpt:ftp to:ipmehoserveru:21
DNAT udp -- anywhere anywhere udp dpt:ddi-udp-2 to:10.8.0.2:8889
DNAT tcp -- anywhere anywhere tcp dpt:48280 to:10.8.0.2:48280
DNAT tcp -- anywhere anywhere tcp dpt:48281 to:10.8.0.2:48281
DNAT udp -- anywhere anywhere udp dpt:48281 to:10.8.0.2:48281
DNAT udp -- anywhere anywhere udp dpt:48280 to:10.8.0.2:48280
děkuji za reakce a případné nápady co zkusit