{"id":148,"date":"2023-08-03T22:07:04","date_gmt":"2023-08-03T20:07:04","guid":{"rendered":"https:\/\/blog.sscho.de\/?p=148"},"modified":"2023-08-03T22:07:07","modified_gmt":"2023-08-03T20:07:07","slug":"erster-wireguard-server-debian-12","status":"publish","type":"post","link":"https:\/\/blog.sscho.de\/?p=148","title":{"rendered":"Erster Wireguard-Server | Debian 12"},"content":{"rendered":"\n<p>Wireguard gibt es ja jetzt schon eine Weile, Zeit also bei meinem kommenden hosted Server die noch recht junge VPN Variante auszuprobieren. <\/p>\n\n\n\n<p>Eine passable Anleitung habe ich hier gefunden:<br><a href=\"https:\/\/www.server-world.info\/en\/note?os=Debian_12&amp;p=wireguard&amp;f=1\">https:\/\/www.server-world.info\/en\/note?os=Debian_12&amp;p=wireguard&amp;f=1<\/a> (<a href=\"https:\/\/archive.is\/wip\/Y64zs\">Archiv<\/a>)<\/p>\n\n\n\n<p>Tats\u00e4chlich ist &#8211; sobald einmal verstanden &#8211; das erstellen der private keys und public keys das schwierigste bei wireguard. Der Rest ist Bestandteil des Linux Kernels.<\/p>\n\n\n\n<p>Hier meine Server-Config mit 3 externen Peers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Interface]\n# specify generated private key for server\nPrivateKey = &lt;private key server>\n# IP address for VPN interface\nAddress = 10.0.88.1\n# UDP port WireGuard server listens\nListenPort = 51820\n\n\n# possible to set any commands after WireGuard starts\/stops\n# set routing rules like follows to access to local network via VPN session\n# &#91;wg0] \u21d2 VPN interface name\n# &#91;eth0] \u21d2 Ethernet interface name\nPostUp = echo 1 > \/proc\/sys\/net\/ipv4\/ip_forward; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nPostDown = echo 0 > \/proc\/sys\/net\/ipv4\/ip_forward; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\n\n&#91;Peer]\n# specify public key pc1\nPublicKey = &lt;public key pc1>\nAllowedIPs = 10.0.88.5\/32\nPersistentKeepalive = 25\n\n&#91;Peer]\n# specify public key pc2\nPublicKey = &lt;public key pc2>\nAllowedIPs = 10.0.88.6\/32\nPersistentKeepalive = 25\n\n&#91;Peer]\n# specify public key pc3\nPublicKey = &lt;public key pc3>\nAllowedIPs = 10.0.88.7\/32\nPersistentKeepalive = 25\n<\/code><\/pre>\n\n\n\n<p>Auf dem ersten Peer sieht es so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Interface]\r\nPrivateKey = &lt;private key pc1>\r\nAddress = 10.0.88.5\/32\r\n\r\n&#91;Peer]\r\nPublicKey = &lt;public key server>\r\nAllowedIPs = 10.0.88.0\/24\r\nEndpoint = 89.58.xxx.xxx:51820\r\nPersistentKeepalive = 25\r<\/code><\/pre>\n\n\n\n<p>Tats\u00e4chlich musste ich den PersistentKeepalive mit aufnehmen, damit die Verbindung auch bestehen bleibt, damit sich die Peers untereinander anpingen k\u00f6nnen.<\/p>\n\n\n\n<p>Sobald ich im Client die Allowed IPs auf 10.0.88.1\/32 und 0.0.0.0\/0 setze, wird der gesamte Internettraffic durch den Wireguard Tunnel geroutet und ich erhalte die externe IP meines gehosteten Servers.<\/p>\n\n\n\n<p>Die Keys sind schnell erstellt mit:<br><code>wg genkey | tee \/etc\/wireguard\/pc4.key<\/code> und <br><code>cat \/etc\/wireguard\/nb-anke.key | wg pubkey | tee \/etc\/wireguard\/pc4.pub<\/code><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wireguard gibt es ja jetzt schon eine Weile, Zeit also bei meinem kommenden hosted Server die noch recht junge VPN Variante auszuprobieren. Eine passable Anleitung habe ich hier gefunden:https:\/\/www.server-world.info\/en\/note?os=Debian_12&amp;p=wireguard&amp;f=1 (Archiv) Tats\u00e4chlich ist &#8211; sobald einmal verstanden &#8211; das erstellen der private keys und public keys das schwierigste bei wireguard. Der Rest ist Bestandteil des Linux &hellip; <a href=\"https:\/\/blog.sscho.de\/?p=148\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eErster Wireguard-Server | Debian 12\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-148","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=148"}],"version-history":[{"count":1,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":149,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=\/wp\/v2\/posts\/148\/revisions\/149"}],"wp:attachment":[{"href":"https:\/\/blog.sscho.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sscho.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}