Hallo zusammen,
ich nutze Ubuntu Server mit Wireguard. Derzeit habe ich mehrere Server, da ich verschiedene IP Adressen benötige. Es wäre aber um einiges günstiger, wenn ich mehrere IPs pro Server nutzen könnte. Dabei muss zwingend der Port 44158 von den IPs auf die jeweiligen Wireguard-Clienten weitergeleitet werden.
Ich habe die zusätzlichen IPs so wie vom Hoster beschrieben meinem Netzwerkinterface zugeordnet, hier der Inhalt meiner .yaml Datei:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no addresses: [95.179.254.24/23,80.240.24.95/32,199.247.16.106/32] gateway4: 95.179.254.1 nameservers: addresses: [108.61.10.10] routes: - to: 169.254.0.0/16 via: 95.179.254.1 metric: 100 |
Das ganze hat auch funktioniert und die Adressen werden mir zu dem Interface angezeigt.
# ip -4 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000 inet 95.179.254.24/23 brd 95.179.255.255 scope global dynamic enp1s0 valid_lft 86265sec preferred_lft 86265sec inet 80.240.24.95/32 scope global enp1s0 valid_lft forever preferred_lft forever inet 199.247.16.106/32 scope global enp1s0 valid_lft forever preferred_lft forever 3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 inet 10.8.0.1/24 scope global wg0
Die Frage ist nun, wie ich iptables konfigurieren muss, um meinen verschiedenen Wireguard Clienten nur die Kommunikation über die jeweiligen IPs zu erlauben.
Meine derzeitige iptables Konfiguration:
# Generated by iptables-save v1.8.7 on Thu Jun 30 22:23:46 2022 *filter :INPUT ACCEPT [3552:25620639] :FORWARD ACCEPT [8:590] :OUTPUT ACCEPT [12162:6367098] -A INPUT -i enp1s0 -p udp -m udp --dport 51820 -j ACCEPT -A INPUT -i wg0 -j ACCEPT -A FORWARD -i wg0 -o enp1s0 -j ACCEPT -A FORWARD -i enp1s0 -o wg0 -j ACCEPT -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1240 -A FORWARD -i wg0 -j ACCEPT -A FORWARD -i enp1s0 -o wg0 -p tcp -m tcp --dport 44158 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT -A FORWARD -i enp1s0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT COMMIT # Completed on Thu Jun 30 22:23:46 2022 # Generated by iptables-save v1.8.7 on Thu Jun 30 22:23:46 2022 *nat :PREROUTING ACCEPT [382:25693] :INPUT ACCEPT [278:15270] :OUTPUT ACCEPT [18:1359] :POSTROUTING ACCEPT [28:1957] -A PREROUTING -i enp1s0 -p tcp -m tcp --dport 44158 -j DNAT --to-destination 10.8.0.2 -A POSTROUTING -s 10.8.0.0/24 -o enp1s0 -j MASQUERADE -A POSTROUTING -o enp1s0 -j MASQUERADE COMMIT # Completed on Thu Jun 30 22:23:46 2022
Ich denke, dass ich z.B.
-A PREROUTING -i enp1s0 -p tcp -m tcp --dport 44158 -j DNAT --to-destination 10.8.0.2
ändern muss zu
-A PREROUTING -i enp1s0 -d 95.179.254.24 -p tcp -m tcp --dport 44158 -j DNAT --to-destination 10.8.0.2
beziehungsweise bei allen FORWARDS die Zieladresse hinzufügen muss und natürlich für die zusätzlichen Clienten neue Einträge anlege, aber wie regele ich das Ganze in Richtung der Outputs und was habe ich noch vergessen?
Danke schon mal vorab.