Unterstützung bei der Konfiguration von wireguard zwischen 2 Servern

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
hawkeye78
Beiträge: 430
Registriert: 10.09.2004 17:02:01
Wohnort: castrop-rauxel

Unterstützung bei der Konfiguration von wireguard zwischen 2 Servern

Beitrag von hawkeye78 » 28.03.2024 11:08:07

Hallo,

ich versuche mich gerade damit vertraut zu machen wie ich wireguard konfigurieren kann, mit dem Ziel darüber später die Verbindung zwischen unseren docker-containern und unserem graylog-Logserver zu sichern. Um nicht zu viel unbekannte Komponenten auf einmal anzugehen habe ich mich dazu entschieden zunächst folgendes Setup über zwei Server mit gleichen Netzwerk aufzubauen:

ServerA(nginx <---> wireguard) <---> (wireguard <---> client)ServerB

aufzubauen.

Ich habe mich u.a. an diesem[1] und diesem[2] Tutorial im Netz orientiert und basierend auf diesen Beispielen mein docker-compose-file für Server A[3] und Server B[4] erstellt. Außerdem habe ich mit Hilfe von einem Konfigurationsdateikonfigurator[5] die beiden wg0-Konfigurationsdateien[6] erzeugt und diese auf den Server unter /home/dan/wg_confs/wg0.conf abgelegt.

Möglicherweise ist das nun der Punkt an dem mein Denkfehler liegt, aber ich hätte nachdem anstarten der beiden Stacks erwartet das ich in dem docker container webclient wechsele und dann beispielsweise per

Code: Alles auswählen

curl webserver
auf den Webserver zugreifen, dieser Verbindungsversuch endet aber in einem Timeout, dabei ist es auch unabhängig ob ich es über die IP von dem webserver container oder dessen Name probiere.

Da ich gerade ein bißchen ratlos bin wo mein Denkfehler liegt würde ich mich freuen wenn mich hier jemand bei dem Thema unterstützen könnte oder mir zumindest einen Tippgeben könnte wo mein Denkfehler liegt.
Viele Grüße
Dan


[1] https://www.pedrolamas.com/2020/11/20/h ... container/
[2] https://docs.linuxserver.io/images/dock ... o-site-vpn
[3] pastebin/?mode=view&s=42137
[4] pastebin/?mode=view&s=42138
[5] https://www.wireguardconfig.com/
[6] pastebin/?mode=view&s=42139
I love deadlines. I like the whooshing sound they make as they fly by - Douglas Adams

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: Unterstützung bei der Konfiguration von wireguard zwischen 2 Servern

Beitrag von mat6937 » 28.03.2024 16:22:03

hawkeye78 hat geschrieben: ↑ zum Beitrag ↑
28.03.2024 11:08:07
... und diese auf den Server unter /home/dan/wg_confs/wg0.conf abgelegt.
Poste vom Client und vom Server. den richtig anonymisierten bzw. vollständigen Inhalt der wg0.conf-Datei und von beiden die Ausgabe von:

Code: Alles auswählen

wg
ip a
ip r g 10.13.13.3

hawkeye78
Beiträge: 430
Registriert: 10.09.2004 17:02:01
Wohnort: castrop-rauxel

Re: Unterstützung bei der Konfiguration von wireguard zwischen 2 Servern

Beitrag von hawkeye78 » 28.03.2024 16:50:20

von den beiden wg0.conf-Dateien ist das der komplette Inhalt, vielleicht ist das auch mein Problem dass ich hier irgendwas vergesse habe aus den Anleitungen zu übernehmen.

Was den Output betrifft.

ServerA

Code: Alles auswählen

# wg
interface: wg0
  public key: PSetL81KJTgNIUnkO8s/FHLcd1wXgUOZhrPLwDnP3G4=
  private key: (hidden)
  listening port: 51820

peer: vVGqngsN47XMhU0XQ+EmqW+5IXK0cNMXB0txfXJAugM=
  preshared key: (hidden)
  allowed ips: 10.13.13.2/32

root@8605e98ac6df:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.13.13.1/32 scope global wg0
       valid_lft forever preferred_lft forever
136: eth0@if137: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:0a:b8:04:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.184.4.2/24 brd 10.184.4.255 scope global eth0
       valid_lft forever preferred_lft forever

root@8605e98ac6df:/# ip r g 10.13.13.3
10.13.13.3 via 10.184.4.1 dev eth0 src 10.184.4.2 uid 0
    cache


Server B

Code: Alles auswählen

# wg
interface: wg0
  public key: /1cinvLAWYiWKXhc6iRoqJcWgqriM/xMzt8PE3FAHXM=
  private key: (hidden)
  listening port: 51820
  fwmark: 0xca6c

peer: vVGqngsN47XMhU0XQ+EmqW+5IXK0cNMXB0txfXJAugM=
  preshared key: (hidden)
  allowed ips: 0.0.0.0/0

root@b40b12aa9922:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.13.13.2/32 scope global wg0
       valid_lft forever preferred_lft forever
81: eth0@if82: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:0a:b8:01:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.184.1.2/24 brd 10.184.1.255 scope global eth0
       valid_lft forever preferred_lft forever

root@b40b12aa9922:/# ip r g 10.13.13.3
10.13.13.3 dev wg0 table 51820 src 10.13.13.2 uid 0
    cache
I love deadlines. I like the whooshing sound they make as they fly by - Douglas Adams

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: Unterstützung bei der Konfiguration von wireguard zwischen 2 Servern

Beitrag von mat6937 » 28.03.2024 17:02:46

Versuch mal mit:
WG-Server:

Code: Alles auswählen

[Interface]
Address = 10.13.13.1/24
ListenPort = 51820
PrivateKey = qGGNJsdVxDtMC5psODZ+UXeDvNDwUFYrMujyuaQvfmQ=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
 
[Peer]
# peer_webclient
PublicKey = vVGqngsN47XMhU0XQ+EmqW+5IXK0cNMXB0txfXJAugM=
PresharedKey = gwoMEslIlM9dRmKTN34qSAyxArG0GhJBWCLekiXgudI=
AllowedIPs = 10.13.13.0/24

WG-Client:

Code: Alles auswählen

Address = 10.13.13.2/24
ListenPort = 51821
PrivateKey = <richtiger-privater-key-vom-wg-Client>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
DNS = 1.1.1.1
DNS = 9.9.9.9

[Peer]
# peer_webserver
PublicKey = <pub-key-wg-server>
PresharedKey = gwoMEslIlM9dRmKTN34qSAyxArG0GhJBWCLekiXgudI=
AllowedIPs = 10.13.13.0/24
Endpoint = webserver.example.com:51820
PersistentKeepalive = 25

Antworten