1

Temat: Dziwna ale potrzebna konfiguracja OpenVPN z modemem HiLink

Witam.

Proszę o pomoc w takim (dość dziwnym zagadnieniu).

- mam w sieci server openvpn z publicznym IP (pracuje w trybie TUN po UDP)
- łączę się do niego przez klientów z zewnątrz
- komunikacja client2client włączona i działa
- jeden z klientów (C1) działa poprzez modem HiLink (standardowo 192.168.8.1) bez otwartego, publicznego IP
- jest potrzeba aby klient drugi (C2) mógł się dostać do panelu konfiguracyjnego modemu HiLink
- oczywiście komunikacja powinna wyglądać tak: C2->server->C1->modem
- oczywiście logując się poprzez ssh na C1 mam dostęp do modemy (w sensie ping - gui nie mam jak)

Podpowiem, że tunelowanie poprzez ssh nie dział gdyż GUI modemu HiLink po wysłaniu pierwszych pakietów http robi przekierowanie na swój adres 192.168.8.1 i przeglądarka po stronie C2 już nie jest w stanie otworzyć strony (czyli podmienia 127.0.0.1:XXXX na 192.168.8.1:443)

Zostaje więc "jakoś" wymusić routing/NAT z C1 do modemu dla ruchu przychodzącego przez server VPN.

Czy ktoś może podpowiedzieć jakie podejście zastosować na C1? Robić NAT pakietów z tun0? A może routing wystarczy? Zapewne tez jeszcze coś firewall na C1 blokuje (openwrt + luci + luci-vpn).

Bardzo proszę o podpowiedź.

Dzieki,
MvincM

2

Odp: Dziwna ale potrzebna konfiguracja OpenVPN z modemem HiLink

Witam.

A sam sobie odpowiem i pozostawię dla potomnych wink

Prawie wszystko jest opisane w poniższych artykułach:

http://backreference.org/2009/11/15/openvpn-and-iroute/
https://community.openvpn.net/openvpn/wiki/RoutedLans
https://wiki.openwrt.org/doc/howto/vpn. … penvpn.tun

One są wprost prawdziwe dla przypadku gdy serwery/klienty OpenVPN są postawione na "deafult gateway" danej sieci/węzła. Jeśli nie jest tak (tak jak w moim przypadku) to trzeba:

- obowiązkowo zrobić w konfiguracji serwera openvpn: push "route ..." - to jest zbędne jeśli jest serwer=default
- stworzyć interfejs "vpn" i spiąć go z tun0
- dodać strefę "vpn" w standardowym ustawieniu firewall OpenWRT
- otworzyć ruch na trasie vpn->wan (gdyż HiLink jest widziany jako wan)
- zastosować SNAT dla ruchu z tun0 tak aby przykrywał cały ruch do lokalnej sieci (dla HiLink będzie to przeważnie 192.168.8.0)

I gotowe! Mamy dostęp do swojego HiLink LTE z zewnątrz poprzez bezpieczny serwer VPN z publicznym IP (a te już naprawdę można tanio kupić na rynku - mowa oczywiście o wirtualnych). A jak szukamy publicznego serwera dla testów i nie potrzebujemy SLA 99,99 to można do zabawy zakupić coś za 15PLN rocznie (minus taki, że trzeba OpenVPN na dosyć niestandardowym porcie stawiać no i trzeba samemu system, serwer itd.) mowa o

https://clients.inceptionhosting.com/cart.php?gid=13

Pozdrawiam,
MvicnM

3

Odp: Dziwna ale potrzebna konfiguracja OpenVPN z modemem HiLink

mvincm mógłbym prosić jaka dokładnie masz konfigurację. Mam problem właśnie z dostaniem się do klienta (wt3020h) na modem hilink E3276. O ile podpięty do tego routera rejestrator jest fajnie widoczny ze świata o tyle do GUI E3276 za żadne skarby nie chce mnie przepuścić. Server działa i ma stały adres IP od UPC. Klienci też wszyscy się łącza bezproblemowo. Tak u mnie wygląda firewall na kliencie:


config defaults
    option syn_flood '1'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'
    option network 'lan'

config zone
    option name 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'
    option network 'wan6 wan'

config forwarding
    option src 'lan'
    option dest 'wan'

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-DHCPv6'
    option src 'wan'
    option proto 'udp'
    option src_ip 'fe80::/10'
    option src_port '547'
    option dest_ip 'fe80::/10'
    option dest_port '546'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-MLD'
    option src 'wan'
    option proto 'icmp'
    option src_ip 'fe80::/10'
    list icmp_type '130/0'
    list icmp_type '131/0'
    list icmp_type '132/0'
    list icmp_type '143/0'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Input'
    option src 'wan'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    list icmp_type 'router-solicitation'
    list icmp_type 'neighbour-solicitation'
    list icmp_type 'router-advertisement'
    list icmp_type 'neighbour-advertisement'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Forward'
    option src 'wan'
    option dest '*'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config include
    option path '/etc/firewall.user'

config rule
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

config rule
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

config zone
    option name 'vpn'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option network 'vpn'
    option forward 'ACCEPT'
    option masq '1'

config rule
    option target 'ACCEPT'
    option src 'vpn'
    option dest 'lan'
    option name 'vpn do lan'
    option proto 'all'

config rule
    option target 'ACCEPT'
    option src 'lan'
    option dest 'vpn'
    option name 'z lan do vpn'

config redirect
    option target 'DNAT'
    option src 'vpn'
    option proto 'tcp udp'
    option src_dport '9090'
    option dest_ip '192.168.200.1'
    option dest_port '80'
    option name 'huawei'
    option dest 'wan'

config redirect
    option target 'SNAT'
    option proto 'all'
    option name 'huawei'
    option src_dip '192.168.1.1'
    option src_dport '80'
    option src 'vpn'
    option src_ip '192.168.1.1'
    option dest 'wan'
    option dest_ip '192.168.200.1'

config rule
    option enabled '1'
    option target 'ACCEPT'
    option src 'vpn'
    option dest 'wan'
    option name 'huawei'
    option proto 'all'

Na serverze mam ustawione przekierowanie np portu 9090 na danego klienta VPN.  A na kliencie mam ustawione przekierowanie portu 9090 z VPN do WAN na port 80 co widać powyżej w redirect. SNAt też ustawiłem ale chyba nie do końca rozumiem specyfikę i charakter jego działania. Podpowie ktoś?