User Tools

Site Tools


kubernetes:nftables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
kubernetes:nftables [2025/08/05 20:01] deniskubernetes:nftables [2025/08/05 20:10] (current) denis
Line 44: Line 44:
  
 </code> </code>
 +
 +
 +<code>
 +systemctl restart nftables
 +</code>
 +
 +
 +---
 +
 +### **Was macht diese Konfiguration?**
 +
 +#### **1. Filter-Table**
 +
 +- **output:**  
 +  Erlaubt alle ausgehenden Pakete vom Server selbst (Policy: accept).
 +
 +- **input:**  
 +  Erlaubt alle eingehenden Pakete auf die Interfaces `wg0` (WireGuard) und `eth0` (vermutlich dein öffentliches Interface).
 +
 +- **forward:**  
 +  Erlaubt das Weiterleiten von Paketen:
 +    - Von `wg0` nach `eth0` (also von WireGuard ins Internet)
 +    - Von `eth0` nach `wg0` (also vom Internet ins WireGuard-Netz)
 +
 +#### **2. NAT-Table**
 +
 +- **postrouting:**  
 +  Alle Pakete, die den Server verlassen, werden mit `masquerade` versehen. Das heißt, ihre Quell-IP wird auf die öffentliche IP des Servers gesetzt (Source NAT). Das ist wichtig, damit Antworten an den Server zurückkommen.
 +
 +- **prerouting:**  
 +  Hier findet Destination NAT (DNAT) statt:
 +    - Pakete, die an die öffentliche IP `128.140.47.251` auf Port 80 oder 443 gehen, werden an `192.168.8.10` weitergeleitet.
 +    - Pakete, die an die öffentliche IP `116.202.187.170` auf Port 80 oder 443 gehen, werden an `192.168.8.22` weitergeleitet.
 +
 +---
 +
 +### **Wie funktioniert das Routing über WireGuard?**
 +
 +Angenommen, du hast zwei VServer:
 +
 +- **VServer1:** Öffentliche IP (z.B. `128.140.47.251`), WireGuard-Interface `wg0`, internes Netz `192.168.8.0/24`
 +- **VServer2:** WireGuard-IP `192.168.8.10` (oder `.22`)
 +
 +Wenn jetzt jemand von außen (Internet) auf `128.140.47.251:80` zugreift:
 +
 +1. Das Paket kommt auf `eth0` an.
 +2. Die NAT-Regel in `prerouting` sorgt dafür, dass das Ziel von `128.140.47.251:80` auf `192.168.8.10:80` geändert wird.
 +3. Das Paket wird weitergeleitet (forward chain erlaubt das).
 +4. Das Routing sorgt dafür, dass Pakete ins Netz `192.168.8.0/24` über das Interface `wg0` geschickt werden (das musst du in deiner Routing-Tabelle sicherstellen).
 +5. Das Paket wird über das WireGuard-Interface an VServer2 (`192.168.8.10`) geschickt.
 +
 +Die Antwortpakete von VServer2 gehen zurück über WireGuard zu VServer1, werden dort per `masquerade` mit der öffentlichen IP versehen und ins Internet zurückgeschickt.
 +
 +---
 +
 +### **Was musst du noch beachten?**
 +
 +- **Routing:**  
 +  Dein VServer1 muss wissen, dass das Netz `192.168.8.0/24` über das Interface `wg0` erreichbar ist. Das geht meist automatisch, wenn WireGuard läuft, kannst du aber mit `ip route` prüfen.
 +
 +- **WireGuard-Konfiguration:**  
 +  Die Peers müssen korrekt eingerichtet sein, damit die Pakete auch wirklich über das VPN gehen.
 +
 +- **Firewall auf VServer2:**  
 +  VServer2 muss Verbindungen von VServer1 (bzw. aus dem WireGuard-Netz) auf den gewünschten Ports erlauben.
 +
 +---
 +
 +### **Zusammengefasst:**
 +
 +Deine Konfiguration sorgt dafür, dass Traffic, der auf bestimmte öffentliche IPs und Ports ankommt, per DNAT ins WireGuard-Netz umgeleitet wird. Die Weiterleitung und das NAT sorgen dafür, dass die Pakete korrekt ankommen und die Antworten zurück ins Internet finden.
 +
 +Wenn du noch Fragen hast oder ein konkretes Beispiel durchgehen willst (z.B. wie die WireGuard-Konfig aussehen muss), sag Bescheid!
 +
kubernetes/nftables.1754424093.txt.gz · Last modified: by denis