butterbot
Goto Top

Linux OpenVPN Client als Side2Side "Router"

Moin Moin,

ich bin gerade dabei eine Ubuntu Server VM als "VPN-Router" zu nutzen.
Die VM hat zwei Netzwerkkarten, eine wo die FritzBox mit dem Internetzugang dran ist und das andere geht zum Switch mit VLAN.

Der Plan ist es, dass das VLAN zum UniFi AP geht und ein Netzwerk ausstrahlt, welches komplett durch die VPN geht.

Die Netzwerkkarte hat das richtige VLAN was auch am AP ankommt.
Das kann ich dadurch bestätigen, da ich auf der VM für die zweite Netzwerkkarte einen DHCP-Server erstellt habe und das WLAN Gerät in dem WLAN genau die IP bekommt, die dieser DHCP Server ausgibt.
(ISC-DHCP-Server)

Somit besteht schonmal die Konnektivität zum AP, nur die VPN bekomme ich nicht geroutet bzw. rüber geleitet.
Er bindet das ganze halt immer auf die "Netzwerkkarte" tun0 und nicht auf die zweite ens192 wo das VLAN drauf ist.

jj@vpn-router:~$ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

(Netzwerkkarte mit Fritz!Box im Nacken)
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:a0:76 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 10.100.10.43/14 brd 10.103.255.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:a076/64 scope link 
       valid_lft forever preferred_lft forever

(Netzwerkkarte mit VLAN zum AP)
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:a0:80 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 10.100.5.1/24 brd 10.100.5.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:a080/64 scope link 
       valid_lft forever preferred_lft forever

17: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.8.1.4/24 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::7cfa:244c:2d4a:cf7e/64 scope link stable-privacy 

Ich will mit OpenVPN die config von dem Anbieter NordVPN durch die zweite Netzwerkkarte leiten für das WLAN.
Er verbindet soweit, aber halt nur auf tun0.
Ich habe etwas gegoogelt und Sachen mit iptables und route add gefunden, hat bei mir aber nicht funktioniert.

Kennt ihr euch damit aus und könnt mir helfen?

Liebe Grüße

Content-ID: 6710150287

Url: https://administrator.de/contentid/6710150287

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

6247018886
Lösung 6247018886 10.04.2023 aktualisiert um 08:09:18 Uhr
Goto Top
Nennt sich "Policy-Routing" und besteht aus folgenden Schritten:
  • Forwarding aktivieren: sudo sysctl -w net.ipv4.ip_forward=1
  • Erstellen einer neuen Routing-Tabelle: sudo echo 1 vpn >>/etc/iproute2/rt_tables
  • Erstellen der Default-Route in der neuen Tabelle über das Tunnel-GW: sudo ip route add default via 10.8.1.1 dev tun0 table vpn
  • Erstellen einer Routing Rule welche bestimmt welcher Traffic den Weg über die neue Routing-Tabelle nimmt : sudo ip rule add from 10.100.5.0/24 table vpn
  • Firewall Regel die den Traffic über den Tunnel MASQERADED : sudo iptables -t nat -A POSTROUTING -o tun0 -s 10.100.5.0/24 -j MASQUERADE
  • Firewall Regel die das Forwarding erlaubt falls die Forward Chain per Default gedroppt wird: sudo iptables -A FORWARD -s 10.100.5.0/24 -o tun0 -j ACCEPT

Soweit das grundlegende Vorgehen. Mehr kannst du bei Google und dem Stichwort "Linux Policy Routing" nachlesen.

hat bei mir aber nicht funktioniert.
Naja, die Vorgehensweise hängt auch primär davon ab mit welcher Distro du überhaupt unterwegs bist etc. Das fehlt hier ja vollkommen im Post.
Blind nachmachen sollte man auch nicht, sondern sich die Grundlagen anlesen, und dann jeden Command verstehen wenn man sich daran begibt.

Cheers briggs
orcape
orcape 10.04.2023 um 09:15:32 Uhr
Goto Top
Hi ButterBot,
nur mal noch ein Hinweis, um Dir vielleicht noch irgendwelche "zusätzlichen Kopfschmerzen" beim Routing zu ersparen.
(Netzwerkkarte mit Fritz!Box im Nacken)
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:a0:76 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 10.100.10.43/14 brd 10.103.255.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:a076/64 scope link 
       valid_lft forever preferred_lft forever

(Netzwerkkarte mit VLAN zum AP)
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:a0:80 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 10.100.5.1/24 brd 10.100.5.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:a080/64 scope link 
       valid_lft forever preferred_lft forever

Du hast hier eine Netzwerküberschneidung drin. Die /14 er Netzmaske würde ich noch einmal überdenken wollen. face-wink
Gruß orcape
6247018886
6247018886 10.04.2023 aktualisiert um 09:30:45 Uhr
Goto Top
Du hast hier eine Netzwerküberschneidung drin. Die /14 er Netzmaske würde ich noch einmal überdenken wollen.
Oh ja folgenreicher Tippfehler 😜 , good find👍
orcape
orcape 10.04.2023 um 10:53:20 Uhr
Goto Top
@ButterBot
Was mir noch gerade in den Sinn kam, zum Thema Routing und OpenVPN.
Normalerweise bestimmt der OpenVPN-Server und dessen Client-spezifische Überschreibungen, was mit dem Routing hinter dem OpenVPN-Client passiert.
Da diese Einstellungen auf dem NordVPN-Server von Dir aber wohl kaum modifiziert werden können, ist es wohl ohne die von @6247018886 vorgeschlagene Lösung kaum machbar.
Gruß orcape
ButterBot
ButterBot 10.04.2023 um 15:49:39 Uhr
Goto Top
Zitat von @6247018886:

Nennt sich "Policy-Routing" und besteht aus folgenden Schritten:

Soweit das grundlegende Vorgehen. Mehr kannst du bei Google und dem Stichwort "Linux Policy Routing" nachlesen.

Mega, danke dir, das geht!

Naja, die Vorgehensweise hängt auch primär davon ab mit welcher Distro du überhaupt unterwegs bist etc. Das fehlt hier ja vollkommen im Post.
Blind nachmachen sollte man auch nicht, sondern sich die Grundlagen anlesen, und dann jeden Command verstehen wenn man sich daran begibt.

Ja, klingt gut.
Ich werde mir das nochmal genauer anschauen und versuchen zu verstehen, interessiert mich ja auch.

Sorry, ja die distro hätte ich noch verraten sollen.
(Ubuntu Server 22.04.2 LTS jammy)


Vielen dank nochmal!
ButterBot
ButterBot 10.04.2023 um 15:50:47 Uhr
Goto Top
Zitat von @orcape:

Hi ButterBot,
nur mal noch ein Hinweis, um Dir vielleicht noch irgendwelche "zusätzlichen Kopfschmerzen" beim Routing zu ersparen.
Du hast hier eine Netzwerküberschneidung drin. Die /14 er Netzmaske würde ich noch einmal überdenken wollen. face-wink

Jo, stimmt danke.
Der Rechner über den ich SSH mache, ist im anderen Netz.
Also ich habe alle VM's in ein Netz gepackt, daher die /14, werde ich aber noch ändern.
Danke dir