Wireguard auf Linux einrichten
Hallo!
Ich möchte mir gerne auf meinem öffentlichen Server einen Wireguard Server einrichten.
Ich habe den Server installiert und das Interface wg0 hinzugefügt. Die private und public keys habe ich eingefügt.
Auch habe ich am Linux Server das Routing eingeschaltet:
Ich möchte mir gerne auf meinem öffentlichen Server einen Wireguard Server einrichten.
Ich habe den Server installiert und das Interface wg0 hinzugefügt. Die private und public keys habe ich eingefügt.
Auch habe ich am Linux Server das Routing eingeschaltet:
- Uncomment the next line to enable packet forwarding for IPv4
Meine wg.conf:
[Interface]
Address = 10.11.12.1/24
PrivateKey = yOQyExN4x????CKJIerY/O3dsaO3t9xMIWBKdrbGR2M=
ListenPort = 51820
[Peer]
PublicKey = aDnTvKI++????qHFUc2Tparg+FsSqF3t1hnIUvOhvDE=
AllowedIPs = 10.11.12.100/32
ich möchte als VPN Netz das Netz 10.11.12.0/24 nutzen. Der Server soll 1 und die Clients dann ab 100 bekommen
wg show zeigt:
nterface: wg0
public key: JLgtKFCAY????1cm9Md68X/eH0eNDvcUEwYy3uF9B0=
private key: (hidden)
listening port: 51820
peer: aDnTvKI++exZ6q????arg+FsSqF3t1hnIUvOhvDE=
allowed ips: 10.11.12.100/32
Auf meinem MacBook habe ich dann den Client eingerichtet mit der folgenden Config:
[Interface]
PrivateKey = aGA7iotNwU?????OD25iYDmnTpuIO0dXR6KvznHs=
Address = 10.11.12.100/24
[Peer]
PublicKey = JLgtKFCAYM???????Md68X/eH0eNDvcUEwYy3uF9B0=
AllowedIPs = 10.11.12.1/32
Endpoint = myvpn.com:51820
Ich kann am Server die IP 10.11.12.1 pingen
ich kann am Client die IP 10.11.12.100 pingen
Jedoch nicht untereinander. Sollte ich am Server erkennen, ob der Client verbunden ist? Am Client zeigt er es jedenfalls an
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43497002594
Url: https://administrator.de/contentid/43497002594
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
14 Kommentare
Neuester Kommentar
Hi,
ich kann nur empfehlen, die GUI für Wireguard einzurichten bzw. zu nutzen. Einzurichten gibts da ja nicht viel. Findest du hier. Nach einem Download einfach unter /etc den Ordner wireguard anlegen und die ui starten. Dann kannst du eine Web-UI aufrufen. Schön beschrieben ist die Einrichtung auch hier, damit hab ich es eingerichtet.
Grüße
ich kann nur empfehlen, die GUI für Wireguard einzurichten bzw. zu nutzen. Einzurichten gibts da ja nicht viel. Findest du hier. Nach einem Download einfach unter /etc den Ordner wireguard anlegen und die ui starten. Dann kannst du eine Web-UI aufrufen. Schön beschrieben ist die Einrichtung auch hier, damit hab ich es eingerichtet.
Grüße
Deine Konfig ist soweit richtig! Die internen Client IPs haben immer die Maske des verwendeten Netzes bzw. wie groß man dieses wählt. Die Allowed IPs haben pro Peer dann im internen IP Netz immer eine /32 Hostmaske.
Alle Details zum WG Setup findest du, wie immer, im hiesigen Wireguard Tutorial.
Das was du siehst ist doch ein erwartbares Verhalten und entspricht deiner Konfig. Client kann den Server pingen und umgekehrt über das interne Wireguard IP Netz. Mehr hast du ja auch gar nicht konfiguriert.
Aktuell für dich nicht ganz so relevant, weil du ja nur Client und Server über das interne VPN IP Netz verbindest und mit der o.a. Konfig ja aktuell keine IP Netze routest.
Beachte auf dem Mac auch immer die lokale Firewall!! Um den Mac pingen zu können oder sonstwie auf den zuzugreifen muss die FW das erlauben.
Works as designed.
Nebenbei:
Die Wireguard Frickelei mit einem Extra VPN Client hättest du dir sparen können, denn mit einer entsprechenden Strongswan IPsec Konfig auf dem vServer hättest du problemlos den bordeigenen IKEv2 VPN Client nutzen können. Ebenso bei Windows und allen Smartphones. Guckst du dazu hier.
Alle Details zum WG Setup findest du, wie immer, im hiesigen Wireguard Tutorial.
Sollte ich am Server erkennen, ob der Client verbunden ist?
Ja, in jedem Fall. Das Kommando am Server dazu ist wg show und das sollte dann sowas zeigen:Das was du siehst ist doch ein erwartbares Verhalten und entspricht deiner Konfig. Client kann den Server pingen und umgekehrt über das interne Wireguard IP Netz. Mehr hast du ja auch gar nicht konfiguriert.
muss ich dann bei allowedIP das ganze Netz freigeben?
Nein! Vom internen WG IP Netz gibst du immer nur die /32er Host IP des Peers an unter den "AllowedIPs" und nicht das gesamte IP Netz sonst wäre das IP Routing nicht eindeutig. (Siehe o.a. Tutorial)Aktuell für dich nicht ganz so relevant, weil du ja nur Client und Server über das interne VPN IP Netz verbindest und mit der o.a. Konfig ja aktuell keine IP Netze routest.
Beachte auf dem Mac auch immer die lokale Firewall!! Um den Mac pingen zu können oder sonstwie auf den zuzugreifen muss die FW das erlauben.
Works as designed.
Nebenbei:
Die Wireguard Frickelei mit einem Extra VPN Client hättest du dir sparen können, denn mit einer entsprechenden Strongswan IPsec Konfig auf dem vServer hättest du problemlos den bordeigenen IKEv2 VPN Client nutzen können. Ebenso bei Windows und allen Smartphones. Guckst du dazu hier.
https://www.pivpn.io/
Wenn man anfängt mit dem Thema, ist das ziemlich hilfreich.
Installieren, konfigurieren und einmal nach dem Reboot
ausführen.
Dauert keine 5 Minuten und dank QR Code auch easy fürs Telefon.
Wenn man anfängt mit dem Thema, ist das ziemlich hilfreich.
Installieren, konfigurieren und einmal nach dem Reboot
# sudo pivpn -d
Dauert keine 5 Minuten und dank QR Code auch easy fürs Telefon.
Ob man sich damit den PasPi vollmüllen sollte wenn man nur WG will muss jeder selber entscheiden. Die WG Konfig ist ein simper Text 5zeiler den auch ein Laie in 5 Minuten hinbekommt.
Zumal das Skript ja auch noch OpenVPN ontop mit raufschiebt was WG User gar nicht haben wollen und eher unnütze Angriffspunkte schafft.
Außerdem hat der TO einen vServer und keinen RasPi.
Muss aber jeder selber entscheiden ob das für ihn Sinn macht oder nicht.
Zumal das Skript ja auch noch OpenVPN ontop mit raufschiebt was WG User gar nicht haben wollen und eher unnütze Angriffspunkte schafft.
Außerdem hat der TO einen vServer und keinen RasPi.
Muss aber jeder selber entscheiden ob das für ihn Sinn macht oder nicht.
Am Ende habe Ich die UFW vergessen
Auf einem vServer kann man immer dies als Firewall (nftables) Grundgerüst verwenden. Das Regelwerk (/etc/nftables.conf) berücksichtig auch eingehenden IPsec Traffic wenn man den vServer auch für alle onboard VPN Clients als VPN Server betreiben will. (Siehe dazu auch HIER)#!/usr/sbin/nft -f
flush ruleset
define pub_iface = "eth0"
define wg_port = 57820
table inet drop-bad-ct-states {
chain prerouting {
type filter hook prerouting priority -150; policy accept;
# Drop packets in "invalid" connection-tracking state
ct state invalid drop
# Drop tcp packets for new connections that aren't syn packets
tcp flags & (fin|syn|rst|ack) != syn ct state new counter drop
# Drop XMAS packets.
tcp flags & (fin|syn|rst|psh|ack|urg) == fin|syn|rst|psh|ack|urg counter drop
# Drop NULL packets.
tcp flags & (fin|syn|rst|psh|ack|urg) == 0x0 counter drop
# Drop new connections over rate limit
ct state new limit rate over 1/second burst 10 packets drop
}
}
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Accept any localhost traffic
iif lo accept
# Accept any wireguard traffic
iifname "wg0" accept
# Accept traffic originated from own server
ct state established,related accept
# Accepted ICMP types
ip protocol icmp icmp type {time-exceeded, parameter-problem, destination-unreachable } accept
# Accept common local TCP services on public interface
iif $pub_iface tcp dport { ssh } ct state new accept
# Accepted UDP ports on public interface
iif $pub_iface udp dport { isakmp, ipsec-nat-t, $wg_port } accept
iif $pub_iface ip protocol esp accept
# allow IPsec VPN networks
meta ipsec exists accept
# Accept neighbour discovery otherwise IPv6 connectivity breaks.
ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
# Log and count dropped traffic
# log prefix "[nftables]Denied: " counter drop
# only count dropped traffic
counter drop
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0;
}
}
Ja richtig. Die Keys beziehen sich immer auf einen Peer (Cryptokey Routing Prinzip). Ein zusätzlicher Preshared Key ist bei der Verwendung von Peer Keys eigentlich überflüssiges Beiwerk und benötigt man nicht.
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?