Tunneln einer Root-Server IP durch Wireguard

  • Hallöchen zusammen!


    Ist es möglich jeglichen ausgehenden Traffic eines Root-Servers - genauer einer bestimmten IP- über einen Wireguard Tunnel zu versenden / empfangen?


    Mein Root-Server hat aktuell zwei IP-Adressen:

    - 188.23.30.19

    - 91.203.46.190 (zusätzliche IPv4)


    Ich würde gerne den ausgehenden Verkehr der IP 91.203.46.190 über einen Wireguard Tunnel versenden.


    Aktuell sieht die Konfiguration von Wireguard (Mullvad VPN) folgendermaßen aus:

    Code
    1. [Interface]
    2. PrivateKey = Key
    3. Address = 10.64.23.234/32,fc00:bbbb:bbbb:bb01::1:17e9/128
    4. DNS = 193.138.218.74
    5. [Peer]
    6. PublicKey = IF4ROzAOkRKdz+Hy+TWS1LTOZPGaLsm9PW5EN5AEOkc=
    7. Endpoint = 185.116.22.110:51820
    8. AllowedIPs = 0.0.0.0/0, ::/0



    Meine /etc/network/interfaces sieht so aus:

    Code
    1. auto eth0
    2. iface eth0 inet static
    3. address 188.23.30.19
    4. netmask 255.255.252.0
    5. gateway 188.23.32.1
    6. auto eth0:1
    7. iface eth0:1 inet static
    8. address 91.203.46.190
    9. netmask 255.255.255.255


    Wenn ich nun das VPN starte mit:

    Code
    1. wg-quick up mullvad-br1

    Dann schickt er natürlich jeglichen Verkehr durch das VPN, wenn ich das korrekt verstehe. Dann ist der Root-Server auch nicht mehr erreichbar -> Neustart.


    Beim Starten macht Wireguard folgendes:

    Jemand eine Idee wie man Wireguard beibringen kann nur den ausgehenden Verkehr von eth0:1 bzw. 91.204.45.179 über den Tunnel zu senden?

    Webhoster des Jahres 2015, 2016, 2017, 2018 und 2019

    Ich bin dabei! --> RS 2000 G8 <--

  • Hallo,


    zunächst solltest du statt wg-quick die Kommandos manuell ausführen.

    ip link add wg0 type wireguard

    wg setconf wg0 /path/to/inifile.ini

    ip addr add 10.64.23.234/32 dev wg0

    ip link set wg0 up


    Dann brauchst du ein Policy Based Routing. D.h. jeder Verkehr von 91.203.46.190 wird auf eine eigene Routingtabelle gepackt.

    ip rule add from 91.203.46.190/32 table 1234

    ip route add 0.0.0.0/0 dev wg0 table 1234


    Ggf. beim Routing die Metric noch anpassen.

  • Danke für deine Antwort!


    Was meinst du mit?

    wg setconf wg0 /path/to/inifile.ini


    Meinst du damit den Verweis auf die Config-File?:


    Code
    1. [Interface]
    2. PrivateKey = Key
    3. Address = 10.64.23.234/32,fc00:bbbb:bbbb:bb01::1:17e9/128
    4. DNS = 193.138.218.74
    5. [Peer]
    6. PublicKey = IF4ROzAOkRKdz+Hy+TWS1LTOZPGaLsm9PW5EN5AEOkc=
    7. Endpoint = 185.116.22.110:51820
    8. AllowedIPs = 0.0.0.0/0, ::/0

    Führe ich den Befehl aus:

    Quote

    wg setconf wg0 /etc/wireguard/mullvad-de1.conf


    Kommt:

    Code
    1. Line unrecognized: `Address=10.64.23.234/32,c00:bbbb:bbbb:bb01::1:17e9/128
    2. Configuration parsing error

    Kommentiere ich dann die fehlerhaften Zeilen aus, nimmt er die Config. Weiterhin tut sich allerdings nichts, auch nicht, nachdem ich die Befehle

    ip rule add from 91.203.46.190/32 table 1234

    ip route add 0.0.0.0/0 dev wg0 table 1234

    hinzugefügt habe.

    Über das eth0:1 geht kein Traffic raus. Und wg0 zeigt an:

    Code
    1. wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
    2. inet 10.64.23.234 netmask 255.255.255.255 destination 10.64.23.234
    3. unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
    4. RX packets 0 bytes 0 (0.0 B)
    5. RX errors 0 dropped 0 overruns 0 frame 0
    6. TX packets 0 bytes 0 (0.0 B)
    7. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


    Da stimmt noch etwas nicht.

    Webhoster des Jahres 2015, 2016, 2017, 2018 und 2019

    Ich bin dabei! --> RS 2000 G8 <--

  • Wie sieht denn die Peer Config am anderen Ende aus?

    Sendet der Kernel die Packete wirklich unter der Adresse raus?

    Die Config am anderen Ende / vom Server kenne ich nicht. Es handelt sich um den VPN-Anbieter Mullvad.


    Die gepostete Client-Config ist original und funktioniert auch.

    Webhoster des Jahres 2015, 2016, 2017, 2018 und 2019

    Ich bin dabei! --> RS 2000 G8 <--

  • So baut sich nun der Tunnel auf:

    Code
    1. ip link add wg0 type wireguard
    2. wg setconf wg0 /etc/wireguard/mullvad-de1.conf
    3. ip address add 10.64.23.234/32 dev wg0
    4. ip link set mtu 1420 up dev wg0
    5. ip rule add from 91.203.46.190/32 table 51820
    6. ip route add 0.0.0.0/0 dev wg0 table 51820
    7. ip rule add table main suppress_prefixlength 0

    Output wg:

    Code
    1. public key: 771nxYCweEGdEvjhZiAgim8psz+BPJH2Uy6KXPohUAc=
    2. private key: (hidden)
    3. listening port: 34860
    4. fwmark: 0xca6c
    5. peer: IF4ROzAOkRKdz+Hy+TWS1LTOZPGaLsm9PW5EN5AEOkc=
    6. endpoint: 185.216.33.114:51820
    7. allowed ips: 0.0.0.0/0, ::/0
    8. latest handshake: 10 seconds ago
    9. transfer: 952 B received, 61.56 KiB sent

    Config von /etc/wireguard/mullvad-de1.conf:

    Code
    1. [Interface]
    2. PrivateKey = (hidden)
    3. [Peer]
    4. PublicKey = IF4ROzAOkRKdz+Hy+TWS1LTOZPGaLsm9PW5EN5AEOkc=
    5. Endpoint = 185.216.33.114:51820
    6. AllowedIPs = 0.0.0.0/0, ::/0

    Wenn ich dann versuche über eht0:1 etwas zu versenden passiert allerdings nichts - keine Antwort.

    Code
    1. curl --interface eth0:1 ipinfo.io

    Webhoster des Jahres 2015, 2016, 2017, 2018 und 2019

    Ich bin dabei! --> RS 2000 G8 <--

  • keine Antwort.

    Das wundert mich ehrlich gesagt nicht.

    Warum sollte ein VPN Anbieter Pakete aus dem 91. Subnet ohne NAT rausschicken?


    Du musst dein Vorhaben nochmal genau erklären und sagen, warum das ganze funktionieren sollte. Die eingehenden Pakete sollen über Netcup reinkommen und die ausgehenden über den VPN mit der Absenderadresse. Da wird dir schon die Tunnelgegenseite einen Strich durch die Rechnung machen. Allowed-IPs blockiert dort alles, was nicht drinne steht. Und 91. steht da bestimmt nicht als Allowed IPs auf der Gegenseite in Allowed-IPs.

  • Ein Webserver lauscht auf der Adresse 188.23.30.19, Darunter liegt eine Anwendung, die nach außen an unterschiedliche (im System vorhandene) IP-Adressen gebunden werden kann. Diese Anwendung schickt dann Anfragen über die IP 91.203.46.190 an öffentlich erreichbare Adressen im Internet.


    Nun möchte ich eben, dass alle Pakete die von der IP 91.203.46.190 abgehen in den Tunnel gesteckt werden und darüber laufen.

    Webhoster des Jahres 2015, 2016, 2017, 2018 und 2019

    Ich bin dabei! --> RS 2000 G8 <--