Wireguard auf Debian 10 -> iptables/nftables Problem

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 23.03.2020 11:36:21

sry, bin zu gefrustet, hab die VM wieder gelöscht.

Scheinbar geht beides nicht gleichzeitig (Pihole und Wireguard mit nftables)

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 23.03.2020 11:42:45

Avenger hat geschrieben: ↑ zum Beitrag ↑
23.03.2020 11:36:21
Scheinbar geht beides nicht gleichzeitig (Pihole und Wireguard mit nftables)
Warum soll das nicht möglich sein?

Es ist aber so, iptables ist in wg-quick (das ist ein Script) hard-codiert. Stellt sich die Frage, was passiert wenn iptables nicht vorhanden ist _und_ in keiner einzigen conf-Datei vorhanden ist bzw. gar nicht erwähnt wird? Bekommst Du dann auch diese Fehlermeldung?

EDIT:

Evtl. kannst Du WireGuard auch so konfigurieren, dass wg-quick nicht erforderlich ist bzw. ignoriert wird.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von MSfree » 23.03.2020 11:47:02

mat6937 hat geschrieben: ↑ zum Beitrag ↑
23.03.2020 11:42:45
Es ist aber so, iptables ist in wg-quick hard-codiert
In Zeile 129. Das beudeutet wohl, daß wg-quick ein Skript ist, das man einfach anpassen kann.

Im Übrigen, "command not found" geistert seit gefühlt 2 Jahren durch dieses Forum und hat schlicht mit der Methode zu tun, wie man sich zu root macht. Ich habe einfach keine Lust mehr, in jedem zweiten Thread zu erklären, daß es an der PATH Umgebungsvariable liegt.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 23.03.2020 11:50:06

MSfree hat geschrieben: ↑ zum Beitrag ↑
23.03.2020 11:47:02
..., das man einfach anpassen kann.
Evtl. ja, aber ich denke, wenn es möglich ist, sollte man den WireGuard ohne wg-quick konfigurieren bzw. verwenden (... damit man mit WireGuard nicht von iptables abhängig ist).

EDIT:

Z. B. entweder mit der interfaces-Datei oder mit einem Script, das mit einer eigenen service-unit gestartet wird.

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 23.03.2020 14:19:58

wieso läuft es denn "out of the box" wenn Pi Hole nicht installiert ist ?
ich muss wohl bei Debian 9 bleiben. Für eure Links und Beschreibungen bin ich zu blöd.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 23.03.2020 14:39:18

Avenger hat geschrieben: ↑ zum Beitrag ↑
23.03.2020 14:19:58
wieso läuft es denn "out of the box" wenn Pi Hole nicht installiert ist ?
Wenn das keine rhetorische Frage ist, musst Du uns die vollständige Konfiguration von WireGuard und die von PiHole zeigen .

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 25.03.2020 07:34:29

Wireguard:

Code: Alles auswählen

[Interface]
Address = 192.168.99.1/24
ListenPort = 51820
PrivateKey = ***
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
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.2/32
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.3/32
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.4/32
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.5/32
[Peer]
PublicKey = ***
AllowedIPs = 192.168.99.6/32, 192.168.74.0/24
Endpoint = ***
PersistentKeepalive = 25
Bild
Bild



/etc/dhcpcd.conf
...
slaac hwaddr (von mir)
...
interface eth0 (von Pi Hole)
static ip_address=192.168.168.5/24
static routers=192.168.168.1
static domain_name_servers=127.0.0.1



IPv4 Forwarding aktiv

fehlt noch was??

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 25.03.2020 09:32:09

Avenger hat geschrieben: ↑ zum Beitrag ↑
25.03.2020 07:34:29
Wireguard:

Code: Alles auswählen

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
/etc/dhcpcd.conf
...
slaac hwaddr (von mir)
...
interface eth0 (von Pi Hole)
static ip_address=192.168.168.5/24
static routers=192.168.168.1
static domain_name_servers=127.0.0.1
Hast Du jetzt iptables doch installiert?

Wie ist mit und ohne PiHole, die Ausgabe von:

Code: Alles auswählen

cat /etc/resolv.conf
? Hat der WireGuard in beiden Fällen (d. h. auch mit PiHole) Zugang zum DNS-Server, der in der /etc/resolv.conf eingetragen ist?

Teste mal (temporär) _mit_ PiHole und mit folgender (zusätzlicher) Zeile:

Code: Alles auswählen

DNS = 1.1.1.1,1.0.0.1
in der [Interface]-Section der config-Datei des WireGuard.

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 25.03.2020 11:20:59

Nein, hatte iptabels nie installiert !
Aber ohne Pi Hole hat er die Regeln "genommen" @Debian10 - und Wireguard hat auch funktioniert.

Die iptables stehen in jeder Wireguard Anleitung so, habe noch nie nftables Befehle gesehen.

Im Moment läuft es bestens mit Debian9, mal schauen wann ich noch mal Buster ausprobiere. Melde mich dann wieder.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 25.03.2020 11:35:38

Avenger hat geschrieben: ↑ zum Beitrag ↑
25.03.2020 11:20:59
Nein, hatte iptabels nie installiert !
Aber ohne Pi Hole hat er die Regeln "genommen" @Debian10 - und Wireguard hat auch funktioniert.

Die iptables stehen in jeder Wireguard Anleitung so, habe noch nie nftables Befehle gesehen.
Ohne PiHole wird er diese Regeln, warum auch immer, denke ich ignoriert haben. Dass diese iptables-Regeln in jeder WireGuard-Anleitung stehen ist ja OK, d. h. aber nicht, dass diese Regeln auch zwingend in der config-Datei des WireGuard eingetragen werden müssen. Ich benutze auch WireGuard und lasse diese erforderlichen iptbales-Regeln (neben anderen Regeln) mit netfilter-persistent setzen. Und es muss auch nicht zwingend iptables sein, Alternativen sind auch OK. Man muss nur schauen wie man, mit dem hard-codierten iptables aus dem wg-quick-Script, klar kommt. Ich benutze z. B. auch FreeBSD mit Wireguard, und dort hat es iptables nie gegeben. Dieses OS hat z. B. 3 verschiedene Packet-Filter zur Auswahl, von denen man sich einen raus suchen und benutzen kann.

Jetzt geht es bei dir doch festzustellen, warum und wie WireGuard, ohne PiHole auf deinem Debian10 "funktioniert"?

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 25.03.2020 14:22:23

Habe mal aus Spaß Ubuntu 19.10 als VM installiert und genauso Wireguard & Pihole installiert.
Läuft einwandfrei (mit Iptables).
Dann bleibe ich vorerst bei Ubuntu @VM.

Beim Raspberry warte ich noch 1-2 Jahre bis mehr Leute Buster mit Wireguard + Pihole nutzen.
Habe den gerade erst neu eingerichtet mit Debian9.

Trotzdem danke.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 21.04.2020 09:21:08

Avenger hat geschrieben: ↑ zum Beitrag ↑
25.03.2020 14:22:23
Beim Raspberry warte ich noch 1-2 Jahre bis mehr Leute Buster mit Wireguard + Pihole nutzen.
Du musst nicht mehr warten. Du kannst WireGuard mit Hilfe von systemd so konfigurieren, dass keine iptables-/nftables-Regeln (für MASQUERADE und forwarding) in der config benutzt werden müssen. Z. B.:

Code: Alles auswählen

:~# ls -la /etc/systemd/network | grep -i wg0
-rw-r----- 1 root systemd-network 1252 Apr 18 14:48 wg0.netdev
-rw-r--r-- 1 root root             171 Apr 18 10:47 wg0.network
In der wg0.network-Datei in der Section [Network], zusätzlich die Zeilen:

Code: Alles auswählen

IPForward=ipv4
IPMasquerade=yes
eintragen.
Testen (nach einem "systemctl daemon-reload && systemctl restart systemd-networkd") mit:

Code: Alles auswählen

iptables-legacy -nvx -L -t nat
Eine wg0.conf-Datei wird nicht mehr benötigt.

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 31.07.2020 11:16:19

komischerweise laufen die iptables Befehle (jetzt) einwandfrei auf Buster, habe zwei RaPi damit am laufen. k.A. was damals das Problem war :facepalm:

Code: Alles auswählen

[Interface]
Address = 192.168.99.10/24, fd08::10/64
ListenPort = 51821
PrivateKey = ***

PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -A FORWARD -i %i -j ACCEPT                                                                           
PostUp = ip6tables -A FORWARD -o %i -j ACCEPT                                                                           
PostUp = ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
                                                         
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i %i -j ACCEPT                                                                         
PostDown = ip6tables -D FORWARD -o %i -j ACCEPT                                                                         
PostDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
   
IPv4 + IPv6 kein Problem.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 31.07.2020 11:37:29

Avenger hat geschrieben: ↑ zum Beitrag ↑
31.07.2020 11:16:19
komischerweise laufen die iptables Befehle (jetzt) einwandfrei auf Buster, habe zwei RaPi damit am laufen. k.A. was damals das Problem war ...
Wie sind jetzt die Ausgaben von:

Code: Alles auswählen

iptables --version
which xtables-legacy-multi
?

BTW: Du kannst WireGuard auf Buster auch mit systemd-networkd (d. h. ohne wg*.conf-Datei/wg/wg-quick) konfigurieren, dann werden die iptables-Regeln und das forwarding, mit Hilfe der Konfiguration von wg*.network/wg*.netdev-Dateien gesetzt.

Avenger
Beiträge: 20
Registriert: 09.12.2019 07:55:11

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von Avenger » 31.07.2020 12:56:38

das:
Bild

warum sollte ich es anders einrichten?

Bei einer Neueinrichtung (SD Karte formatiert), dauert die WG Inbetriebnahme keine 3min.

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

Re: Wireguard auf Debian 10 -> iptables/nftables Problem

Beitrag von mat6937 » 31.07.2020 13:25:41

Avenger hat geschrieben: ↑ zum Beitrag ↑
31.07.2020 12:56:38
warum sollte ich es anders einrichten?
Na weil man dann selber keine iptables-/nftables-Regeln setzen muss. Es werden nur diese 2 Zeilen (oder gleichwertig statt "ipv4") benötigt:

Code: Alles auswählen

IPForward=ipv4
IPMasquerade=yes
Avenger hat geschrieben: ↑ zum Beitrag ↑
31.07.2020 12:56:38
Bei einer Neueinrichtung (SD Karte formatiert), dauert die WG Inbetriebnahme keine 3min.
Ja, aber das ist mit systemd-networkd auch so. Keine 3 Minuten, Z. B.:

Code: Alles auswählen

:~ $ cat /etc/systemd/network/wg0.network
[Match]
Name=wg0

[Link]
MTUBytes=####

[Network]
DHCP=no
LinkLocalAddressing=no
Address=192.168.###.xxx/24
DNS=84.###.##.##
DNS=84.xxx.xx.xx
IPForward=ipv4
IPMasquerade=yes
ConfigureWithoutCarrier=true

Code: Alles auswählen

:~# cat /etc/systemd/network/wg0.netdev
[Match]
Host=<machine-ID>

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuardServer

[WireGuard]
PrivateKey = #####
ListenPort = #####
FwMark = ###

[WireGuardPeer]
#Client_xxxx
PublicKey = #####
PresharedKey = ###
AllowedIPs = 192.168.###.yyy/32

Antworten