• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Wireguard Client kann keine Verbindung zu Servern hinter dem Wireguard Server aufbauen

ServerUs

Newbie
Hallo,

ich habe auf einem VPS einen Wireguard Server laufen, der einen Tunnel mit einer bei mir lokal gehosteten Maschine herstellt. Auf der lokalen Maschine läuft ein Webserver und ist aus dem Netz errreichbar. Die Wireguard-Verbindung läuft. Die Webdienste sind erreichbar.

Wenn ich nun auf der lokalen Linux Maschine versuche ein Update (apt update) durchzuführen gelingt dies nicht, die Verbindung mit den Paketservern ist nicht möglich. Von der lokalen Maschine kann ich externe Adressen anpingen. Traceroute oder curl scheitern jedoch.

Ich vermute, dass ich entweder in der Wireguard Konfiguration oder den iptables irgendetwas freigeben muss, damit der lokale Server über den Wireguard Tunnel hinter dem Wireguard VPS Verbindungen aufbauen kann.

Hat jemand eine Idee, wie ich da weiterkomme?

P.S. mein auf dem lokalen Server betriebener Nextcloud meldet - vermutlich aus gleichem Grund - das er keine Internetverbindung hat. Auch Updates der Lets Encrypt It Zertifikate scheitern, schätze, dass auch das auf das Grundproblem zurückzuführen ist.

Danke vorab
 

susejunky

Moderator
Teammitglied
Hallo ServerUS,

herzlich willkommen im Linux-Club-Forum!

Es dürfte Deine Chancen auf Unterstützung deutlich verbessern, wenn Du noch mehr Informationen zu Deinen Systemen bekannt geben würdest; z.B.

  • Welches Betriebssystem (Name, Version) läuft auf welchem Deiner Rechner?
  • Wie sehen die Netzwerkumgebungen auf den jeweiligen Systemen aus?
    • Welche Firewall (z.B. firewalld, ufw, ...) ist auf welchem Deiner Systeme im Einsatz?
    • Womit werden die Netzwerkverbindungen auf den einzelnen Systemen gemanagt (z.B. NetworkManager, wicked, systemd-network, ...)?
    • ...

Viele Grüße

susejunky
 
OP
S

ServerUs

Newbie
@framp: Die Updates möchte ich nicht bewusst über den Wireguard Server machen. Aber sobald das wg0 Interface auf dem Client aktiv ist, wird das von diesem so versucht. Wenn wg0 down ist, funktioniert apt. Da ich aber noch die o.g. Probleme mit Nextcloud und Let's Encrypt habe, denke ich dass ich eine Netzwerkkonfigurationthematik habe - Routing oder iptables/forwarding. Die Updates alleine könnte ich also schon durchführen (wg0 down), aber in dem Zustand klappen die anderen Sachen auch nicht.

Das Forewarding aus dem Internet über den Wg-Server zum Wg-Client, der der Internet Server ist, funktioniert. Die Webseiten sind aus dem Internet erreichbar, d.h. Tunnel mit Port Weiterleitung funktioniert.

Der Weg zurück von Diensten des Clients ins Internet funktioniert nicht oder nur teilweise. Ping auf einen Webserver im Internet ist möglich, curl auf denselben nicht, traceroute geht nicht durch sondern bleibt auf dem Wg-Server hängen.

Weitere Infos

Server
(Keys und externe Ips sind für den post hier verändert/unkenntnlich gemacht)

OS VPS: CentOS 9 Stream

Wg0 Config:

Code:
[Interface]
Address = 192.168.200.1
ListenPort = 51820

PrivateKey = XXXXXXXXXXXXX

PostUp = firewall-cmd --add-masquerade; firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o enp1s0 -j ACCEPT; firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o enp1s0 -j MASQUERADE; firewall-cmd --add-port=51820/udp
PostDown = firewall-cmd --remove-masquerade; firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -o enp1s0 -j ACCEPT; firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -o enp1s0 -j MASQUERADE; firewall-cmd --remove-port=51820/udp

[Peer]
PublicKey = XXXXXXXXXXXXXX
AllowedIPs = 192.168.200.2

ip addr:

Code:
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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:12:3c:ca:25:60 bdd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 182.210.12.186/27 brd 192.210.12.191 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::232:ecdf:feca:2460/64 scope link
       valid_lft forever preferred_lft forever
8: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 192.168.200.1/32 scope global wg0
       valid_lft forever preferred_lft forever

iptables -S:

Code:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i enp1s0 -o wg0 -j ACCEPT
-A FORWARD -i wg0 -o enp1s0 -j ACCEPT

iptables -t nat nvL:

Code:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 3787  226K DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:443 to:192.168.200.2:443
 1305 74889 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:80 to:192.168.200.2:80
    9   448 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:587 to:192.168.200.2:587
  681 41601 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:143 to:192.168.200.2:143
   56  2992 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:995 to:192.168.200.2:995
   92  5368 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:465 to:192.168.200.2:465
    8   372 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:8083 to:192.168.200.2:8083
   39  2356 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:25 to:192.168.200.2:25
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:143 to:192.168.200.2:143
    9   448 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:53 to:192.168.200.2:53
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:933 to:192.168.200.2:993
   22  1172 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpt:21 to:192.168.200.2:21
   19  1147 DNAT       udp  --  *      *       0.0.0.0/0            182.210.12.168      udp dpt:53 to:192.168.200.2:53
   20   800 DNAT       tcp  --  *      *       0.0.0.0/0            182.210.12.168      tcp dpts:12000:12100 to:192.168.200.2:12000-12100

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 4671  277K MASQUERADE  all  --  *      wg0     0.0.0.0/0            0.0.0.0/0
    0     0 MASQUERADE  all  --  *      enp1s0  0.0.0.0/0            0.0.0.0/0


Wg-Client und Webserver (hestiacp):

OS: Debian 11

Wg0 Config:

Code:
[Interface]
PrivateKey = XXXXXXXXXXX
Address = 192.168.200.2

[Peer]
PublicKey = XXXXXXXXXXXX
Endpoint = 182.210.12.168:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

ip addr:

Code:
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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:10:17:9b:ad:d5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.200/20 brd 192.168.15.255 scope global dynamic enp0s3
       valid_lft 68686sec preferred_lft 68686sec
    inet6 fe80::a10:21f1:feda:ace5/64 scope link
       valid_lft forever preferred_lft forever
5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 192.168.200.2/32 scope global wg0
       valid_lft forever preferred_lft forever

iptables -S (gesetzt via hestiacp):

Code:
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-FTP
-N fail2ban-HESTIA
-N fail2ban-MAIL
-N fail2ban-RECIDIVE
-N fail2ban-SSH
-N hestia
-A INPUT -p tcp -m tcp --dport 8083 -j fail2ban-HESTIA
-A INPUT -p tcp -m multiport --dports 25,465,587,110,995,143,993 -j fail2ban-MAIL
-A INPUT -p tcp -m tcp --dport 21 -j fail2ban-FTP
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -p tcp -m multiport --dports 1:65535 -j fail2ban-RECIDIVE
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.200/32 -j ACCEPT
-A INPUT -s 192.168.200.2/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 25,465,587 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 110,995 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 143,993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8083 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A fail2ban-FTP -j RETURN
-A fail2ban-HESTIA -j RETURN
-A fail2ban-MAIL -j RETURN
-A fail2ban-RECIDIVE -j RETURN
-A fail2ban-SSH -j RETURN


iptables -t nat nvL:

Code:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

/etc/resolv.conf:

Code:
domain fritz.box
search fritz.box
nameserver 192.168.0.1

resolv.conf hatte ich auch schon mit anderen Einträgen versucht. Z.B. als NS 8.8.8.8 ging mit Dig durch aber hat an den o.g. Problemen nichts geändert. Da ich dann Schwierigkeiten im internen Netz hatte habe ich das wieder auf die hier genannten Einträge zurückgesetzt.
 
Zuletzt bearbeitet:
OP
S

ServerUs

Newbie
Habe es letztlich geschafft das ganze zu lösen:

Zum einen in Wireguard-Config des Clients unter [Interface] DNS-Einträge mitgegeben und dann weiter hatte ich in der Server-Config für Wireguard in den PostUp/PostDown Regeln für die Firewallrules ein nicht existierendes Interface angegeben (enp1s0 statt eth0).
 
Oben