Root-Server + Debian + Podman + Wireguard Problem

  • Hallo zusammen,

    ich betreibe einen Root-Server mit Debian 12. Weiter betreibe ich in den eigenen vier Wänden ein NAS mit Unraid. Auf dem NAS laufen mehrere Anwendungen die ich bisher durch einen Cloudflare Tunnel zur Verfügung stelle, da ich hinter einem CGNAT bin.

    Ich hab mir in den letzten Tagen überlegt, dass ich das zukünftig gerne ändern würde und hierfür anstatt Cloudflare mein Netcup Server nutzen möchte. Ich habe daher wg-easy als Container via Podman auf Debian zum laufen gebracht. Weiter habe ich Unraid dazu bekommen sich auch erfolgreich mit dem wireguard Server zu verbinden, auf der Netcup-Seite kann ich unraid erfolgreich über die wireguard interne IP pingen.

    Allerdings scheitere ich seit Tagend daran das forwarding mithilfe der iptable hinzubekommen, vlt hab ich aber auch etwas viel banaleres vergessen. ufw wurde an den entsprechenden stellen geöffnet und auch der Container mit den entsprechenden Ports gemappt.

    Hier einmal die yaml:


    Ich hätte gerne das der Port 51850 bei meinem NAS landen würde. Hat hier jemand eine Idee, danke für jede Form der Hilfe. :)

    Viele Grüße

  • Zur hilfreichsten Antwort springen
  • Weiter habe ich Unraid dazu bekommen sich auch erfolgreich mit dem wireguard Server zu verbinden, auf der Netcup-Seite kann ich unraid erfolgreich über die wireguard interne IP pingen.

    Was heißt in dem Zusammenhang "auf der Netcup Seite"? Ich nehme an, in einer Bash Shell auf dem VPS. Aber im Container? Im Host-System? Wie sieht die Adress-Verteilung auf dem VPS aus? Kommt man vom Host direkt an das VPN Interface und das Transport-Netz, um die andere Seite zu erreichen?

    Allerdings scheitere ich seit Tagend daran das forwarding mithilfe der iptable hinzubekommen,

    Ich seh in deiner Frage keine IP-Tables Regeln ... Das wäre wichtig, weil du dir ja Gedanken über die Ziele dieser Regeln gemacht hast. Das hängt mit der ersten Frage zusammen.

    ufw wurde an den entsprechenden stellen geöffnet

    Welche genau? Input? Forwarding?

    ... und auch der Container mit den entsprechenden Ports gemappt.

    Warum das? Der Server läuft ja nicht im Container.

    Ums ehrlich zu sagen, ich sehe einige Buzzwörter in diesem Beitrag, die mir nicht gefallen. ufw, Podman, Docker, .... Für so ein einfaches Setup unglaublich viel Overhead, der nicht sein müsste. Vielleicht laufen andere Dinge auf dem Server, die eine Kapselung sinnvoll machen. Aber Docker z.B. bringt dir alle Firewall-Regeln durcheinander und harmoniert mit ufw so überhaupt nicht. Einfach ein blankes Linux, Wiregaurd drauf und 2 iptables Regeln, und du wärst glücklich.

  • Hi,

    erstmal danke für den Versuch mir zu helfen. Ich versuche deine Fragen mal zu beantworten.

    Was heißt in dem Zusammenhang "auf der Netcup Seite"? Ich nehme an, in einer Bash Shell auf dem VPS. Aber im Container? Im Host-System? Wie sieht die Adress-Verteilung auf dem VPS aus? Kommt man vom Host direkt an das VPN Interface und das Transport-Netz, um die andere Seite zu erreichen?

    Ich hab aus der Shell des Wireguard Containers gepingt. Nein vom Host selbst kommst du nicht daran, das muss alles über iptables im Container gesteuert werden. Müsste dann einen anderen Port des Containers anpingen und den Aufruf entsprechend forwarden im Container z.B. an Unraid.

    Ich seh in deiner Frage keine IP-Tables Regeln ... Das wäre wichtig, weil du dir ja Gedanken über die Ziele dieser Regeln gemacht hast. Das hängt mit der ersten Frage zusammen.

    iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 52500 -m conntrack --ctstate NEW -j ACCEPT;

    iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT;

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 52500 -j DNAT --to-destination 10.8.0.3;

    iptables -t nat -A POSTROUTING -o wg0 -p tcp --dport 52500 -d 10.8.0.3 -j SNAT --to-source 10.8.0.1;

    Welche genau? Input? Forwarding?

    Den Port für Wireguard selbst sowie die weiteren Ports die ich nutzen wollte. Forwarding müsste hier doch nicht erlaubt werden, da es innerhalb des Containers stattfindet oder?

    Warum das? Der Server läuft ja nicht im Container.

    Gewisse Container wollte ich direkt via IP + Port des Servers zur Verfügung stellen, ohne davor einen Reverse Proxy zu nutzen. Hab daher den Container mit Wireguard direkt an diese Ports gebunden.

    Ums ehrlich zu sagen, ich sehe einige Buzzwörter in diesem Beitrag, die mir nicht gefallen. ufw, Podman, Docker, .... Für so ein einfaches Setup unglaublich viel Overhead, der nicht sein müsste. Vielleicht laufen andere Dinge auf dem Server, die eine Kapselung sinnvoll machen. Aber Docker z.B. bringt dir alle Firewall-Regeln durcheinander und harmoniert mit ufw so überhaupt nicht. Einfach ein blankes Linux, Wiregaurd drauf und 2 iptables Regeln, und du wärst glücklich.

    Okay, danke für das Feedback. Ich hatte mir schon gedacht, dass das vielleicht ein bisschen Overkill sein könnte. Dann schmeiß ich den Container mal raus und installier Wireguard direkt auf dem System.

    • Hilfreichste Antwort

    Dann schmeiß ich den Container mal raus und installier Wireguard direkt auf dem System.

    Das würde tatsächlich vieles einfacher machen. Ich bin mir noch nicht ganz sicher, ob die letzte iptables-Regel für die Antwort-Pakete ausreicht, aber das werden wir sehen. Setz das mal so auf und nimm deine 4 Regeln her und etabliere sie auf dem Host. Ich glaube, dann bist du schon sehr weit hin.

  • Das würde tatsächlich vieles einfacher machen. Ich bin mir noch nicht ganz sicher, ob die letzte iptables-Regel für die Antwort-Pakete ausreicht, aber das werden wir sehen. Setz das mal so auf und nimm deine 4 Regeln her und etabliere sie auf dem Host. Ich glaube, dann bist du schon sehr weit hin.

    Wireguard ist jetzt direkt auf dem Hostsystem, ping gegen Unraid klappt und auch ein curl auf die entsprechende interne wiregaurd IP + Port sieht gut aus.
    Hab noch einen Eintrag für die iptables ergänzt und das ganze funktioniert. Perfekt, vielen lieben Dank! :thumbup:

    Da hätte ich mir noch Tage mit Podman den Schädel eingeschlagen.

  • MCKraemer 1. März 2025 um 21:19

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.