Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
lx:net:wireguard [10.11.2022 05:19] – gelöscht - Externe Bearbeitung (Unknown date) 127.0.0.1 | lx:net:wireguard [10.11.2022 16:56] (aktuell) – Andy Haubenschmid | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Wireguard ====== | ||
+ | {{ lx: | ||
+ | Nachdem ich heute endlich mal das [[https:// | ||
+ | Es ist supereinfach damit ein funktionierendes VPN hinzubekommen. | ||
+ | Und weil es ein Kernelmodul ist, enfällt das hin- und herschieben der Pakete wie bei [[lx: | ||
+ | ===== Testaufbau ===== | ||
+ | Client soll ein Raspi sein, im WLAN. Als Server nehmen wir pfSense((obwohl das KernelModule für Free BSD im pfSense Repo " | ||
+ | |||
+ | Ich habe als Netzwek 10.0.8.0/24 genommen, das Raspi hat die ip 10.0.8.9 und die pfSense hat 10.0.8.8 im Beispiel. | ||
+ | |||
+ | |||
+ | ==== installation auf dem Raspi ==== | ||
+ | Das Kernelmodul ist schon integriert, kann mit '' | ||
+ | < | ||
+ | sudo apt install wireguard wireguard-tools | ||
+ | </ | ||
+ | installiert. Danach sollte das Programm '' | ||
+ | |||
+ | Einen neuen Public- und Private- Key generieren geht mit | ||
+ | < | ||
+ | wg genkey | tee / | ||
+ | </ | ||
+ | |||
+ | === Konfigurieren des Interfaces === | ||
+ | siehe auch [[https:// | ||
+ | |||
+ | < | ||
+ | wg set wg0 listen-port 1234 private-key / | ||
+ | < | ||
+ | </ | ||
+ | Damit hören wir auf UDP Port 1234 für ankommende Verbindungen, | ||
+ | |||
+ | |||
+ | ==== Installation auf pfSense ==== | ||
+ | Siehe auch [[https:// | ||
+ | |||
+ | Auf pfSense unter '' | ||
+ | |||
+ | |||
+ | Danach unter '' | ||
+ | < | ||
+ | Enable | ||
+ | Description | ||
+ | Listen Port [ 1234 ] | ||
+ | Interface Keys [ ........................... ] [ ................................ ] [ Generate ] | ||
+ | | ||
+ | </ | ||
+ | Auf '' | ||
+ | Erst jetzt bekommen wir ein Netzwerkinterface '' | ||
+ | <WRAP center round important 60%> | ||
+ | Achtung: Die Firewall filtert [[https:// | ||
+ | </ | ||
+ | |||
+ | Also dann unter '' | ||
+ | |||
+ | Nun noch unter '' | ||
+ | |||
+ | Dann brauchen wir den PublicKey vom Raspi '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | ==== testen vom Raspi aus ==== | ||
+ | Erst mal die Netzwerkkarte wie gewohnt konfigurieren. | ||
+ | < | ||
+ | ip address add dev wg0 10.0.8.9/24 | ||
+ | ip link set up dev wg0 | ||
+ | </ | ||
+ | Bei meinem ersten Test hat's nicht funktioniert -> Firewallregeln auf der pfSense! Müssen am richtigen Ort eingetragen werden. | ||
+ | < | ||
+ | root@raspberrypi: | ||
+ | PING 10.0.8.8 (10.10.8.8) 56(84) bytes of data. | ||
+ | From 10.0.8.9 icmp_seq=1 Destination Host Unreachable | ||
+ | ping: sendmsg: Der notwendige Schlüssel ist nicht verfügbar | ||
+ | </ | ||
+ | Aber was wir schön sehen ist die Fehlermeldung. Neben der ICMP " | ||
+ | |||
+ | Da war mein Fehler, dass ich für pfSense eine falsche '' | ||
+ | < | ||
+ | wg set wg0 listen-port 1234 private-key / | ||
+ | < | ||
+ | </ | ||
+ | Findest du den Fehler? | ||
+ | |||
+ | Danach funktioniert' | ||
+ | |||
+ | Soll nun vom Raspi über den Wireguard Tunnel in ein Netz hinter der pfSense Firewall geroutet werden, so muss dieses Netz auf dem Raspi auch in die Routing Tabelle eingetragen werden. | ||
+ | |||
+ | <WRAP center round todo 80%> | ||
+ | * IPs und Netzwerk einfacher abbilden | ||
+ | * Unterschied vom Tunnel Netzwerk und externem Netzwerk einfacher darstellen | ||
+ | * Beispiel für Routing Tabelle im Raspi hinzufügen | ||
+ | </ | ||
+ | |||
+ | ==== Installieren und kompilieren auf alten Linux Kernel ==== | ||
+ | Da ich noch einige alte Kernel habe, hier dann die Anleitung, wie es auf einem alten Linux installiert werden kann. | ||
+ | Dazu muss der Kernel selber übersetzt werden. Dazu brauchen wir eine Build Umgebung: | ||
+ | < | ||
+ | sudo apt-get install libelf-dev linux-headers-$(uname -r) build-essential pkg-config | ||
+ | </ | ||
+ | Wireguard Kernelmodule herunterladen und übersetzen | ||
+ | < | ||
+ | git clone https:// | ||
+ | make -C wireguard-linux-compat/ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | der Abschnitt " | ||
+ | </ | ||
+ | .:. |