1

Temat: Porblem z iptables

Mam problem z dostosowaniem reguł iptables tak by pozwalały na prawidłowe działanie wireguarda.

Klient łączy się z serwerem, następuje wymiana kluczy ale ruch nie jest przekazywany do klienta, dlatego podejrzewam, że to wina iptables.


Routing wygląda tak:

# ip route
default via 192.168.51.2 dev ppp0  metric 1
10.0.1.0/24 dev wg1  proto kernel  scope link  src 10.0.1.1
127.0.0.0/8 dev lo  scope link
192.168.2.0/24 dev br0  proto kernel  scope link  src 192.168.2.1
192.168.51.2 dev ppp0  proto kernel  scope link  src MOJ.ZEWNETRZNY.IP.WAN 

Dopisane reguły:

iptables -A FORWARD -i wg1 -j ACCEPT
iptables -A FORWARD -o wg1 -j ACCEPT
iptables -A INPUT -i wg1 -j ACCEPT
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

Próbowałem też SNAT --to-source 192.168.2.1 zamiast MASQUERADE, ale bez rezultatu. Używam jeszcze reguł do DNScrypt:

iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $ (nvram get lan_ipaddr) 
iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $ (nvram get lan_ipaddr)

Serwer wireguarda wypluwa naprzemiennie takie błędy:

Jun  8 10:17:40 kernel: wireguard: wg1: Failed to give packet to userspace from peer 3 (8fed7144)
Jun  8 10:17:41 kernel: wireguard: wg1: Packet has unallowed src IP (8fc37ca8) from peer 3 (8fed7144)

Klient ma adres 10.0.1.2. Klient przesyła żądania do serwera bo śledząc na nim interfejs wg1 przez tcpdump je widzę.

# tcpdump -vv -i wg1
tcpdump: listening on wg1, link-type RAW (Raw IP), capture size 262144 bytes
    10.0.1.2.8499 > Debian.domain: [udp sum ok] 5207+ AAAA? semanticlocation-pa.googleapis.com. (52)
10:21:15.921493 IP (tos 0x0, ttl 64, id 61100, offset 0, flags [DF], proto UDP (17), length 63)
    10.0.1.2.22059 > dns.google.domain: [udp sum ok] 5207+ AAAA? semanticlocation-pa.googleapis.com. (52)
10:21:23.989514 IP (tos 0x0, ttl 64, id 55767, offset 0, flags [DF], proto UDP (17), length 80)
    10.0.1.2.8499 > Debian.domain: [udp sum ok] 5207+ AAAA? semanticlocation-pa.googleapis.com. (52)
10:21:25.919334 IP (tos 0x0, ttl 64, id 61773, offset 0, flags [DF], proto UDP (17), length 63)
    10.0.1.2.22059 > dns.google.domain: [udp sum ok] 5207+ AAAA? semanticlocation-pa.googleapis.com. (52)
10:21:30.942374 IP (tos 0x0, ttl 64, id 56354, offset 0, flags [DF], proto UDP (17), length 63)

Ping 10.0.1.1 oraz 10.0.1.2 poprawny.