Wiki page wireguard changed with summary [created] by Dan

This commit is contained in:
ORG_User 2024-05-01 22:56:43 +02:00
parent 6d484264f0
commit 51a4b93de3
1 changed files with 242 additions and 0 deletions

View File

@ -0,0 +1,242 @@
FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)//
====== WireGuard ======
[[https://www.wireguard.com/|WireGuard]]® ist ein extrem einfaches, aber dennoch schnelles und modernes VPN, das modernste Kryptographie nutzt. Es zielt darauf ab, schneller, einfacher, schlanker und nützlicher als IPsec zu sein, während es die massiven Kopfschmerzen vermeidet. Es soll wesentlich leistungsfähiger sein als OpenVPN. WireGuard ist als Allzweck-VPN konzipiert, das sowohl auf eingebetteten Schnittstellen als auch auf Supercomputern läuft und für viele verschiedene Umstände geeignet ist. Ursprünglich für den Linux-Kernel veröffentlicht, ist es jetzt plattformübergreifend (Windows, macOS, BSD, iOS, Android) und weit verbreitet. Es wird derzeit intensiv weiterentwickelt, kann aber schon jetzt als die sicherste, benutzerfreundlichste und einfachste VPN-Lösung in der Branche angesehen werden.
===== Voraussetzungen =====
Wenn du deine Services zu Hause nutzen möchtest, egal wo du bist, sind folgende Schritte erforderlich.
==== Dynamic DNS ====
Wenn du keine statische IP von deinem Internet Service Provider (ISP) hast, ist ein dynamisches DNS (DDNS) erforderlich.\\
Du musst also ein Konto bei einem der unten aufgeführten Anbieter einrichten:
* https://freedns.afraid.org/
* https://www.duckdns.org/
* https://www.noip.com/
<alert type="info" icon="fa fa-info-circle">Überprüfe auch deinen Router auf diese Anbieter. Manchmal kannst du dort deine Anmeldedaten eingeben.</alert>
=== DDClient ===
Installiere ''ddclient'' und suche nach dem von dir gewählten Anbieter und gib dort deine Anmeldedaten ein.
<code>
pacman -S ddclient
nano /etc/ddclient/ddclient.conf
</code>
<code>
systemctl enable --now ddclient.service
</code>
<alert type="info" icon="fa fa-info-circle">Siehe auch https://wiki.archlinux.org/title/Dynamic_DNS#ddclient. Einige Beispiele sind in der Tabelle zu finden.</alert>
==== Portweiterleitung ====
[[https://de.wikipedia.org/wiki/Portweiterleitung|Was ist das?]]
Wir werden Wireguard verwenden, um über das Internet auf deinen Server zuzugreifen. Dazu musst du einen Port in deinem Router öffnen und ihn an deinen Server weiterleiten.\\
Der Wireguard-Port wird standardmäßig auf ''51820'' verwaltet. Wenn du dies ändern möchtest, musst du den Port auf die von dir gewählte Nummer umleiten und das Tutorial entsprechend anpassen.
Das folgende Beispiel basiert auf [[https://opnsense.org/|OPNsense]], ist aber im Grunde auch für andere Geräte geeignet.\\
Das Beispiel unten hat auch einen anderen Zielport (1212). Wenn du diesen ebenfalls ändern möchtest, musst du ''Endpoint = <server public IP or domain>:1212'' unter [[#keys1|clients]] ebenfalls ändern:
{{:en:server:services:opnsense-wireguard-port_forwarding.png?direct|}}
===== Server =====
Mach alles mit root.
<code>
su
</code>
==== Packet ====
<code>
pacman -S wireguard-tools
</code>
==== Keys ====
<code>
cd /etc/wireguard/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
</code>
==== wg0.conf ====
=== Interface ===
Kopiere den privaten Schlüssel und füge ihn unter ''PrivateKey = '' ein.
<code>
cat privatekey
</code>
<code>
nano wg0.conf
</code>
<code>
[Interface]
PrivateKey = <Private Key>
Address = 10.0.0.1/24
ListenPort = 51820
</code>
=== Peer ===
- [[#clients|Gehe zuerst zu clients]] und befolge die Anweisungen.
- Kopiere den **publickey** und den **presharedkey** von deinem client.
<code>
cat /etc/wireguard/clients/phones/pinephone/publickey
cat /etc/wireguard/clients/phones/pinephone/presharedkey
</code>
- Füge den peer hinzu
<code>
nano /etc/wireguard/wg0.conf
</code>
<code>
[Peer]
# pinephone
PublicKey = <client public key>
PresharedKey = <preshared key>
AllowedIPs = 10.0.0.2/32
</code>
===== Clients =====
Erstelle Clients für //laptop//, //desktop//, //phone// und so weiter. Wofür auch immer du es brauchst.
<code>
mkdir -p /etc/wireguard/clients/phones/pinephone/
</code>
<alert type="danger" icon="fa fa-warning">\\
Es ist besser, sie woanders zu speichern. Auf einem USB-Stick oder so. Oder lösche sie einfach nach der Konfiguration.</alert>
==== Keys ====
<code>
cd /etc/wireguard/clients/phones/pinephone/
umask 077; wg genkey | tee privatekey | wg pubkey > publickey | wg genpsk > presharedkey
</code>
<code>
cat privatekey && cat /etc/wireguard/publickey && cat presharedkey
</code>
<code>
nano pinephone.conf
</code>
<code>
[Interface]
PrivateKey = <pinephones-privatekey>
Address = 10.0.0.2/24
[Peer]
PublicKey = <server public key>
PresharedKey = <preshared key>
Endpoint = <server public IP or domain>:51820
AllowedIPs = 0.0.0.0/0
</code>
<alert type="info" icon="fa fa-info-circle">**Optional:**\\
Füge in der Konfiguration deines Clients unter ''[Interface]'' einen weiteren DNS-Server hinzu, z.B. wenn du nicht den DNS-Server deines Providers verwenden willst.
\\
''DNS = `dns server`''</alert>
==== Berechtigungen ====
Setze die richtigen Berechtigungen.
<code>
chmod -R 600 /etc/wireguard/clients/
</code>
==== Kopiere die Datei ====
Kopiere deine Datei ''%%.conf%%'' auf dein Gerät.
<code>
scp pinephone.conf USER@IP:~/
</code>
=== Generiere einen QR Code ===
Du kannst auch einen QR-Code erstellen.
<code>
pacman -S qrencode
</code>
<code>
qrencode -t ansiutf8 < pinephone.conf
</code>
==== Zurück zu peer ====
[[#peer|Click]]
 
==== Mehr clients ====
Wenn du mehr Clients brauchst, folge einfach wieder dem [[#clients|clients]]-Prozess und füge den [[#peer|peer]] zu deinem Server zwischen deinen anderen Clients hinzu.
<alert type="info" icon="fa fa-info-circle">Stoppe Wireguard für das Hinzufügen neuer Clients/Peers.\\
''systemctl stop wg-quick@wg0.service''</alert>
 
===== Start =====
<code>
systemctl enable --now wg-quick@wg0.service
</code>
===== Firewall =====
Basierend auf [[firewalld]].
- Erstelle eine neue [[firewalld#zone|zone]] (nenne es: ''wireguard'')
- füge "''wg0'' [[firewalld#interface|interface]]" zu deiner neuen //**wireguard zone**// hinzu
- füge/öffne [[firewalld#service|wireguards service]] (port 51820) zu deiner //**home zone**//
- füge/öffne [[firewalld#service|https service]] (port 443) zu deiner //**wireguard zone**// (um deine Services zu erreichen, die auf [[ssl]] basieren)
- füge [[firewalld#masquerade|masquerade]] zu deiner //**home zone**// hinzu
- und erstelle eine [[firewalld#new_policy|neue policy]] für den Zugang zum Internet und zu deinen Services
===== Überprüfe =====
Du kannst die Verbindungen deiner Clients mit dem Befehl ''wg'' auf deinem Wireguard-Server überprüfen. Es wird Folgendes angezeigt:
<code>
latest handshake: 1 minute, 52 seconds ago
transfer: 1.22 MiB received, 3.80 MiB sent
</code>
Überprüfe auch die IP-Adresse deiner Clients, zum Beispiel mit https://dnsleaktest.com, die die IP-Adresse deines Zuhauses sein sollte, und klicke auf die Schaltfläche **//Extended test//** für den DNS-Server, den du verwendest, der auf deinem Android-Gerät anders sein kann, wenn DNS nicht auf der [[#clients|Clients]]-Seite eingestellt ist.