NoPaste

VPN Wireguard

von scriptorius

Dein Code:
  1. (1) Ddclient Installation auf Server (IPv6)
  2. # apt install curl -y
  3. # apt install ddclient -y
  4.  
  5.       Abfrage:
  6.       > Anbieter des dynamischen dns-Dienstes : anderer
  7.       > Dynamischer DNS-Server: xxx.xxx.io
  8.       > Protokoll für dynamische DNS-Aktualisierung: dyndns2
  9.       > Benutzername ...: xxx.xxx.io
  10.       > Passwort: ***
  11.       > Wiederholung: ***
  12.       > Netzwerkschnittstelle: enp3s0
  13.       > Vollqualifizierte DYN-DNS Domainnamen: xxx.xxx.io
  14.       > ddclient ausführen: Nein
  15.       > ddclient als daemon starten: Ja
  16.       > Intervall: 300
  17.  
  18. # nano /etc/ddclient.conf
  19. >
  20. protocol=dyndns2
  21. usev6=if, if=enp3s0
  22. ssl=yes
  23. use=cmd, cmd='curl https://checkipv6.dedyn.io/'
  24. server=update6.dedyn.io
  25. login=xxx.xxx.io
  26. password='***'
  27. xxx.xxx.io
  28.  
  29.     • # nano /etc/default/ddclient
  30.      >
  31.       ...
  32.       run_dhclient="false"
  33.       ...
  34.       run_ipup="false"
  35.       ...
  36.       run_daemon="true"
  37.       ...
  38.       daemon_interval="300"
  39.  
  40. # service ddclient restart
  41. # ddclient -force   # funktioniert!
  42.  
  43. (2) Wireguard Installation
  44. # nano /etc/apt/sources.list.d/unstable.list
  45. >
  46. deb http://deb.debian.org/debian/ unstable main
  47.  
  48. # nano /etc/apt/preferences.d/limit-unstable
  49. >
  50. Package: *
  51. Pin: release a=unstable
  52. Pin-Priority: 90
  53.  
  54. # apt update
  55. # apt install wireguard --dry-run
  56. (etwas über 60 Pakete sollten es sein; dann:)
  57. # apt install wireguard -y
  58.  
  59. (3) Schlüssel erzeugen für Server-Konfiguration und den ersten Client
  60. Server-Schlüssel:
  61. Geheim:
  62. # cd /etc/wireguard
  63. # umask 077
  64. # wg genkey > server.key   # erstellen
  65. # cat /etc/wireguard/server.key   # anzeigen
  66. Öffentlich:
  67. # cat /etc/wireguard/server.key | wg pubkey   # anzeigen, muss nicht eigens erstellt werden
  68.  
  69. Client-Schlüssel:
  70. Geheim:
  71. # wg genkey | tee /etc/wireguard/client1.key   # erstellen
  72. # cat /etc/wireguard/client1.key   # anzeigen
  73. Öffentlich:
  74. # cat /etc/wireguard/client1.key | wg pubkey   # anzeigen, muss nicht eigen erstellt werden
  75.  
  76. (5) Erstellen der Server- und Clientkonfigfiles
  77. Anfang: Server-Konfiguration auf Server
  78. # cat /etc/wireguard/server.key
  79. > angezeigten privaten Server-Schlüssel kopieren
  80.  
  81. # touch /etc/wireguard/wg0.conf
  82. # nano /etc/wireguard/wg0.conf
  83. >
  84. [Interface]
  85. Address = 10.66.66.1/24, fd42:42:42::1/64
  86. PostUp = iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE; ip6tables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
  87. PostDown = iptables -t nat -D POSTROUTING -o enp3s0 -j MASQUERADE; ip6tables -t nat -D POSTROUTING -o enp3s0 -j MASQUERADE
  88. ListenPort = 53   # mögliche Ports; z. B.: 13401, 1194, 40404, 51820
  89. PrivateKey = >privater Server-Schlüssel hier eintragen<
  90.  
  91. Client-Konfiguration auf Server:
  92. # mkdir /etc/wireguard/clients
  93. # touch /etc/wireguard/clients/client1.conf
  94.  
  95. # cat /etc/wireguard/client1.key
  96. # cat /etc/wireguard/server.key | wg pubkey
  97.  
  98. # nano /etc/wireguard/clients/client1.conf
  99. >
  100. [Interface]
  101. PrivateKey = >privater Client-Schlüssel<
  102. Address = 10.66.66.2/24, fd42:42:42::2/64
  103. # DNS = 176.103.130.130,176.103.130.131
  104.  
  105. [Peer]
  106. PublicKey = >öffentlicher Server-Schlüssel<
  107. Endpoint = mysrv6.dedyn.io:53   # der Port, der gewählt wurde (s.o.)
  108. AllowedIPs = 0.0.0.0/0, ::/0
  109.  
  110. Abschluss: Server-Konfiguration auf Server
  111. # nano /etc/wireguard/wg0.conf
  112. >   # unter [Interface] einfügen
  113. [Peer]
  114. PublicKey = >öffentlicher Client-Schlüssel<
  115. AllowedIPs = 10.66.66.2/32, fd42:42:42::2/128
  116.  
  117. (5) Wireguard-Konfiguration starten und Start automatisieren
  118. # wg-quick up wg0
  119. # wg-quick down wg0
  120. # systemctl start wg-quick@wg0
  121. # systemctl status wg-quick@wg0
  122. # systemctl enable wg-quick@wg0
  123.  
  124. ODER:
  125. chown -v root:root /etc/wireguard/wg0.conf
  126. chmod -v 600 /etc/wireguard/wg0.conf
  127. wg-quick up wg0
  128. systemctl enable wg-quick@wg0.service
  129.  
  130. ANMERKUNG:
  131. Ab jetzt vor jeder Konfiguration:
  132. # wg-quick down wg0
  133. Nach jeder Konfiguration:
  134. # wg-quick up wg0
  135.  
  136. (6) Forwarding auf Server konfigurieren
  137. # touch /etc/sysctl.d/wireguard.conf
  138. # nano /etc/sysctl.d/wireguard.conf
  139. >
  140. net.ipv4.ip_forward=1
  141. net.ipv6.conf.all.forwarding=1
  142. # sysctl -p /etc/sysctl.d/wireguard.conf
  143. # sysctl --system
  144.  
  145. [Die folgenden Zeilen, die bereit oben in /etc/wireguard/wg0.conf eingefügt wurden sind für ein forwarding notwendig:
  146. PostUp = iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE; ip6tables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
  147. PostDown = iptables -t nat -D POSTROUTING -o enp3s0 -j MASQUERADE; ip6tables -t nat -D POSTROUTING -o enp3s0 -j MASQUERADE]
  148.  
  149. (7) QR-Coder für Smartphone-Client erzeugen
  150. # apt install qrencode -y
  151. # cat /etc/wireguard/clients/client1.conf | qrencode -t ansiutf8
  152. > Nach der Wireguard-App Installation kann man den QR-Code scannen

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. Alternativ kannst du den gesamten Eintrag auch als Datei herunterladen.