Temat: OpenVPN przez mwan3

Próbuję stworzyć taką konfigurację: Router z LEDE jest podłączony do internetu przez port WAN oraz modem na wypadek problemów z internetem z portu WAN. Używam do tego mwan3 zgodnie z poradnikiem. Potrzebuję dostępu do kilku portów z urządzenie podłączony do tego routera. Więc najprostszym wyjściem wydało mi się przekierowanie portów żebym miał dostęp z sieci VPN oraz od strony WANa. Ustawiłem taką konfigurację:

config zone
    option name 'wan'
    option output 'ACCEPT'
    option masq '1'
    option mtu_fix '1'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    list network 'wan wan6'
    list network 'wan2'
        list network 'tun0'

Niestety po zatwierdzeniu zmian wszystkie urządzenie podłączone do routera straciły połączenie z internetem. Przez VPN nie da się podłączyć z routerem mimo tego że po stronie serwera VPN widać połączenie. Nie zgłaszają się nawet po adresy z DHCP. Ma może ktoś pomysł w czym problem? Siedzę nad tym od dobrych kilku godzin. Największym problemem jest to że mam tylko zdalny dostęp do tej sieci.

2

Odp: OpenVPN przez mwan3

list network 'wan'
list network 'wan6'
list network 'wan2'

Jak już w nie 'wan wan6'. Takie coś się przy opcjach stosuje a nie przy listach.

I to jest źle:

list network 'tun0'

Bo tu się umieszcza nazwy sekcji a nie interfejsy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez portals 2018-03-17 17:08:41)

Odp: OpenVPN przez mwan3

Zrobiłem teraz tak:
config zone
        option name 'wan'
        option output 'ACCEPT'
        option masq '1'
        option mtu_fix '1'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        list network 'wan2'
        list network 'wan'
        list network 'wan6'
        list network 'openvpn'
oraz w /etc/config/network
config interface 'openvpn'
        option proto 'none'
        option ifname 'tun0'

Faktycznie jest dużo lepiej bo urządzanie z lana mają połączenie z siecią ale od strony VPN dalej router nie odpowiada na ping - mimo tego że w logach na serwerze mam informacje o połączeniu. Muszę dodać openvpn do mwan3? Nie jestem ogólnie pewien czy dodając VPN do tej samej sekcji firewalla osiągną to co potrzebuję.

4

Odp: OpenVPN przez mwan3

Zrobiłem teraz tak:
/etc/config/firewall

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

config forwarding 'vpn_forwarding_lan_in'
        option src 'vpn'
        option dest 'lan'

config forwarding 'vpn_forwarding_lan_out'
        option src 'lan'
        option dest 'vpn'

config redirect
        option target 'DNAT'
        option dest 'lan'
        option proto 'tcp udp'
        option src_dport '9000'
        option dest_ip '192.168.0.190'
        option dest_port '22'
        option name 'rpi_test'
        option src 'vpn'

/etc/config/network
config interface 'vpn0'
        option proto 'none'
        option ifname 'tun0'
        option auto '1'

Połączyć się mogę tylko z luci i ssh na routerze. Próba połączenia się z VPN przez port 9000 daje timeout. Kto ma jakieś pomysły co jeszcze jest nie tak?

5

Odp: OpenVPN przez mwan3

może uporządkuj nazewnictwo, bo raz masz tak, a raz inaczej...

portals napisał/a:

...
/etc/config/firewall
config zone 'vpn'
...
option src 'vpn'
...
option dest 'vpn'
...
option src 'vpn'
...

/etc/config/network
config interface 'vpn0'
...

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

6 (edytowany przez portals 2018-03-31 11:29:59)

Odp: OpenVPN przez mwan3

Myślałem że tutaj jest istotna nazwa zone w firewallu. Jedno mimo to nic to nie dało. Załączam cały config.
Boje się kombinować bardziej bo obawiam się że odetnę sobie dostęp do routera i musiałbym jechać 300km.
firewall

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

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

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

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 'fc00::/6'
        option dest_ip 'fc00::/6'
        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 rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

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

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

config forwarding 'vpn_forwarding_lan_in'
        option src 'vpn'
        option dest 'lan'

config forwarding 'vpn_forwarding_lan_out'
        option src 'lan'
        option dest 'vpn'

config redirect
        option target 'DNAT'
        option dest 'lan'
        option proto 'tcp udp'
        option src_dport '9000'
        option dest_ip '192.168.0.190'
        option dest_port '22'
        option name 'rpi_test'
        option src 'vpn'

interface

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdd6:3922:000d::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.0.1'

config interface 'wan'
        option ifname 'eth0.2'
        option _orig_ifname 'eth0.2'
        option _orig_bridge 'false'
        option proto 'dhcp'
        option metric '10'
        option dns '8.8.8.8 8.8.4.4'
        option peerdns '0'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 5t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '0 5t'

config interface 'wan2'
        option proto 'wwan'
        option apn 'internet'
        option metric '20'
        option dns '8.8.8.8 8.8.4.4'
        option peerdns '0'

config interface 'vpn'
        option proto 'none'
        option ifname 'tun0'
        option auto '1'

7

Odp: OpenVPN przez mwan3

portals napisał/a:

Myślałem że tutaj jest istotna nazwa zone w firewallu. ...

Dobrze myślałeś smile Zwracam honor. Zmyliło mnie to co było na początku z tymi tun0 i vpn0 i z rozpędu inaczej to potraktowałem.

portals napisał/a:

...Największym problemem jest to że mam tylko zdalny dostęp do tej sieci...
...Boje się kombinować bardziej bo obawiam się że odetnę sobie dostęp do routera i musiałbym jechać 300km....

no to rzeczywiście nieciekawie. Lepiej jakbyś przy (re)starcie routera-clienta otwierał dodatkowy kanał do konfiguracji coś w stylu Reverse SSH.

A to Rpi jak ma skonfigurowany port Ethernet? W Wanie, Lanie?

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

8 (edytowany przez portals 2018-04-02 15:27:22)

Odp: OpenVPN przez mwan3

Jako dostęp awaryjny mam właśnie RPI które jest podłączone po stronie LANa i ma IP 192.168.0.190. Jest ono podłączone do VPN więc w razie wypadku jak tylko idzie się podłączyć do routera od strony LANa i jest internet mam awaryjny dostęp. Jednak mocno grzebiąc w interfejsach i firewalu odcięcie internetu wydaje się mocno prawdopodobne.

Konfiguracja mocno bazuje na podobnej tylko bez mwan3.

Teraz zauważyłem jeszcze przy restarcie firewalla takie ostrzeżenie ale mwan3 wydaje się działać OK.
Warning: Section @zone[1] (wan) cannot resolve device of network 'wan2'

9

Odp: OpenVPN przez mwan3

myślałem o drugim niezależnym kanale dostępu do routera, bo myślałem że ten router nie ma publicznego IP na głównym złączu.

czyli podsumowując:

1. Masz router na LEDE i on ma publiczny IP na głównym złączu z paletą portów dostępnych dla Ciebie bez żadnych ograniczeń, tak? bo tak wynika z posta nr 1

portals napisał/a:

.... Więc najprostszym wyjściem wydało mi się przekierowanie portów żebym miał dostęp z sieci VPN oraz od strony WANa.

2. Myślałem że ten VPN jest na routerze (wg /etc/config/network post nr 6) a tymczasem post nr 8

portals napisał/a:

...Jako dostęp awaryjny mam właśnie RPI które jest podłączone po stronie LANa i ma IP 192.168.0.190. Jest ono podłączone do VPN...

czyli ten RPI jest klientem VPN i jest on w sieci LAN tego routera z LEDE, tak?
bo to zmienia całkowicie podejście, czyli gdzie jest klient OpenVPN?

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

10 (edytowany przez portals 2018-04-04 18:39:46)

Odp: OpenVPN przez mwan3

Faktycznie mogłem napisać trochę chaotycznie ale nie chciałem męczyć nieistotnymi informacjami.
1.Router nie ma publicznego IP. Ma internet z WANa przez siec lokalną nad którą nie mam żadnej kontroli oraz awaryjnie przez modem GSM. Chcę uzyskać dostęp do portów przekierowanych na niego przez VPN. Dostęp do tych portów od strony WANa miał gównie uprościć konfigurację i ewentualnie umożliwić kiedyś prostszy dostęp przy fizycznej obecności.
2. RPI jest po prostu dodatkowym klientem tej samej sieci VPN. Docelowo ma służyć do całkiem czegoś innego a teraz po prostu zostawiłem sobie awaryjny dostęp. Gdy uda się skonfigurować router VPN z RPI będzie wyłączony.

Podsumowując chciałbym żeby działało to tak:
1. Router o którym pisze łączy się z siecią VPN dostaje od niej adres IP np. 10.0.8.10.
2. Ja mogę się dostać do konfiguracji routera przez ssh na IP 10.0.8.10. (do tego punktu wszystkie już działa)
3. Dostać się do urządzeń po stronie LANa tego routera przez VPN po przekierowanym porcie. Np urządzenia A pobiera sobie z routera adres 192.168.0.10 a ja robię przekierowanie tak żebym z sieci VPN mógł dostać się na port 80 urządzenia A (np. 10.0.8.10:8765)

11

Odp: OpenVPN przez mwan3

No to znaczy że chciałbyś to co w poradniku: https://eko.one.pl/?p=openwrt-openvpntu … zaklientem

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

12 (edytowany przez portals 2018-04-04 21:29:50)

Odp: OpenVPN przez mwan3

Prawie tak, próbowałem już tego i niestety też timeout. Zresztą wydaje się to dość równoważne z tym co wpisałem do /etc/config/firewall.Wpisałem:
iptables -I FORWARD -i tun0 -p tcp -d 192.168.0.190 --dport 9000 -j ACCEPT
iptables -t nat -I PREROUTING -i tun0 -p tcp --dport 9000 -j DNAT --to-destination 192.168.0.190:22

Teraz ustaliłem że pakiety dochodzą ale z jakiegoś powodu odpowiedz na nie już nie.

root@LEDE:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    10     0        0 eth0.2
10.8.0.0        10.8.0.9        255.255.255.0   UG    0      0        0 tun0
10.8.0.9        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
192.168.1.0     0.0.0.0         255.255.255.0   U     10     0        0 eth0.2
192.168.1.1     0.0.0.0         255.255.255.255 UH    10     0        0 eth0.2
root@LEDE:~# traceroute 10.8.0.1
traceroute to 10.8.0.1 (10.8.0.1), 30 hops max, 38 byte packets
1  *  *  *
2  *^C
root@LEDE:~# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1): 56 data bytes
64 bytes from 10.8.0.1: seq=0 ttl=64 time=10.750 ms
64 bytes from 10.8.0.1: seq=1 ttl=64 time=11.724 ms
64 bytes from 10.8.0.1: seq=2 ttl=64 time=9.475 ms
^C
--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 9.475/10.649/11.724 ms

13 (edytowany przez mar_w 2018-04-04 22:59:32)

Odp: OpenVPN przez mwan3

1. moim zdaniem nie za bardzo dobrze jest to:

iptables -I FORWARD -i tun0 -p tcp -d 192.168.0.190 --dport 9000 -j ACCEPT

skoro chcesz mieć port nr 22

2. A pokaż jeszcze

# route -n

wykonane na Rpi. bo jeżeli masz to o czym piszesz tutaj:

portals napisał/a:

...2. RPI jest po prostu dodatkowym klientem tej samej sieci VPN.

to znaczy, że on ma własną trasę do tunelu VPN przez własny interfejs tun0.

Czy teraz:
router (mając adres 192.168.0.1) jest klientem VPN (mając adres 10.8.0.10) i masz RPI będące w sieci LAN routera (ma adres 192.168.0.190) też jest klientem VPN z innym adresem np 10.8.0.13 ???

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

14 (edytowany przez portals 2018-04-06 10:58:44)

Odp: OpenVPN przez mwan3

Faktycznie problemem nie był router tylko dodatkowy tunel na RPI. Zrobiłem testy z innym urządzeniem i wszystko jest OK.
Dziękuję za pomoc. Szukałem problem po prostu w złym miejscu.