evilmoe
Goto Top

Wireguard Server DNAT funktioniert nicht

Mahlzeit!

Ich baue mir gerade einen neuen Wireguard Tunnel auf zwischen meinem Mikrotik router und einen Vserver.
Die Verbindung steht auch schon. Ich habe nur noch Probleme mit dem DNAT. Ich möchte einige Ports von dem Vserver zu mir ins Netz routen.

Server:
[Interface]
Address = 10.0.112.1/24
ListenPort = 51820
PrivateKey = XXX

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


PostUp = iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.1.1:80
PostDown = iptables -t nat -D PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.1.1:80
PostUp = iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 443 -j DNAT --to-destination 192.168.1.1:443
PostDown = iptables -t nat -D PREROUTING -p tcp -i eth0 --dport 443 -j DNAT --to-destination 192.168.1.1:443

# Router
[Peer]
PublicKey = XXX
AllowedIPs = 10.0.112.2/32,192.168.1.0/24


Client (der Mikrotik Router):
[Interface]
ListenPort = 13234
PrivateKey = XXX

[Peer]
PublicKey = XXX
AllowedIPs = 10.0.112.1/32
Endpoint = XXX:51820


Ich kann beide Geräte gegenseitig pingen. Ich kann auch curl http://192.168.1.1 benutzen direkt vom Vserver. Das klappt alles.
Aber wenn ich nun Versuche die Test Website von außen, also mit der Öffentlichen IP des Vservers zu erreichen gibt es nur einen Timeout.

Auf meinem Mikrotik Router habe ich in der Firewall das Logging aktiviert bei dem Wireguard Interface. Dort sehe ich in diesem fall gar nichts. Also die Anfrage kommt scheinbar nicht über den Tunnel.

Ich sehe einfach den Fehler nicht...


net.ipv4.ip_forward habe ich aktiviert.
Die Anfragen über die öffentliche IP kommen auch an auf dem Vserver.

Wenn ich mir das wg interface anschaue mit "tcpdump -nn -i wg0" sehe ich die öffentlichen anfragen auch weitergeleitet an die 192.168.1.1. Aber warum kann ich diese nicht auf meinem Router sehen?
Ich habe eine Regel in der Firewall hinterlegt als Input und einmal als forward zum loggen. Da passiert in dem Moment nichts.

Ich benutze auf dem Vserver Ubuntu LTS 22.

Hat jemand einen nützlichen Tipp für mich?

LG

Content-ID: 13147961041

Url: https://administrator.de/contentid/13147961041

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

10138557388
Lösung 10138557388 22.12.2023 aktualisiert um 18:55:10 Uhr
Goto Top
Zu allererst, die AllowedIPs am Mikrotik lassen den Traffic aus dem Internet eingehend nicht durch (da muss 0.0.0.0/0 rein aber nur wenn man intern ohne NAT arbeitet!), des weiteren fehlt ein Masquerade des DNAT Traffics auf dem WG Interface in Richtung Mikrotik wenn man intern mit NAT arbeitet
iptables -t nat -A POSTROUTING -o %i -d 192.168.1.0/24 -j MASQUERADE
Wenn man intern ohne NAT arbeitet muss man den eingehenden Traffic am WG-Interface des Mikrotik per Mangle Rule markieren und über den vServer per Routing-Tag zurück schicken sonst gibt es ein asynchrones Routing über das Default-GW des MIkrotik wenn man am Mikrotik kein GW-Redirect für den Host/Subnetz macht, lässt sich hier detailliert nachlesen

Routing zwischen zwei PfSense - Nutzung von public IP

Wie Portforwarding über 2 miteinander verbundenen pfSense realisieren

Pj
EvilMoe
EvilMoe 22.12.2023 um 18:29:14 Uhr
Goto Top
Zitat von @10138557388:

Zu allererst, die AllowedIPs am Mikrotik lassen den Traffic aus dem Internet eingehend nicht durch (da muss 0.0.0.0/0 rein aber nur wenn man intern ohne NAT arbeitet!), des weiteren fehlt ein Masquerade des DNAT Traffics auf dem WG Interface in Richtung Mikrotik wenn man intern mit NAT arbeitet
iptables -t nat -A POSTROUTING -o %i -d 192.168.1.0/24 -j MASQUERADE
Wenn man intern ohne NAT arbeitet muss man den eingehenden Traffic am WG-Interface des Mikrotik per Mangle Rule markieren und über den vServer per Routing-Tag zurück schicken sonst gibt es ein asynchrones Routing über das Default-GW des MIkrotik, lässt sich hier detailliert nachlesen

Routing zwischen zwei PfSense - Nutzung von public IP

Wie Portforwarding über 2 miteinander verbundenen pfSense realisieren

Pj


Vielen Dank.

Ich habe tatsächlich nicht 0.0.0.0/0 beim Client eingetragen.
So einfach kann es manchmal sein...

Problem gelöst face-smile
10138557388
10138557388 22.12.2023 um 18:56:10 Uhr
Goto Top
👌 Frohes 🎄