[LÖSUNG] Mullvad VPN + firewalld auf Leap 16.0 – Kill Switch & Firewall funktionieren zusammen

  • Hallo zusammen!


    Nach längerem Herumprobieren habe ich endlich eine stabile Lösung gefunden, um Mullvad VPN zusammen mit firewalld auf openSUSE Leap 16.0 zum Laufen zu bringen – inklusive funktionierendem Kill Switch!


    🔴 DAS PROBLEM:

    Auf Leap 16.0 (Kernel 6.12.x, reines nftables) gab es bei mir ständige Konflikte zwischen Mullvads Kill Switch und firewalld:

    - Beim Systemstart konnte ich mich nicht verbinden

    - Mullvad-GUI zeigte Fehlermeldungen ("Firewallregeln konnten nicht angewendet werden")

    - Kill Switch funktionierte nicht oder blockierte das gesamte Internet

    - Ich musste nach jedem Boot "nft flush ruleset" ausführen, um überhaupt ins Internet zu kommen


    🟢 DIE LÖSUNG:

    Statt firewalld zu deaktivieren oder Mullvad ohne Kill Switch zu nutzen, habe ich eine dedizierte firewalld-Zone für das Mullvad-Interface erstellt. Ein NetworkManager-Dispatcher-Skript sorgt automatisch dafür, dass das WireGuard-Interface beim Verbinden in diese Zone verschoben wird.


    ✅ SCHRITT-FÜR-SCHRITT-ANLEITUNG:


    📦 QUELLE DER MULLVAD-RPM:

    Die funktionierende Version habe ich direkt von Mullvad bezogen:

    https://mullvad.net/download/app/rpm/latest


    Das openSUSE-Community-Paket aus den OBS-Repositories hatte bei mir

    Probleme mit systemd/nftables unter Leap 16.0. Die offizielle RPM von

    Mullvad ist aktuell, korrekt gepackt und funktioniert stabil.



    1️⃣ Dedizierte firewalld-Zone erstellen (einmalig):

    Code
    sudo firewall-cmd --permanent --new-zone=mullvad
    sudo firewall-cmd --permanent --zone=mullvad --set-target=ACCEPT
    sudo firewall-cmd --reload


    2️⃣ NetworkManager-Dispatcher-Skript erstellen:


    3️⃣ NetworkManager neu laden:

    Code
    sudo systemctl reload NetworkManager


    4️⃣ Mullvad verbinden – fertig!

    Code
    mullvad connect


    🎯 WAS PASSIERT HIER?

    - Das Skript wird automatisch ausgeführt, sobald NetworkManager ein WireGuard-Interface erstellt

    - Das Mullvad-Interface wird in die "mullvad"-Zone verschoben (TARGET=ACCEPT = kein Filtering)

    - firewalld blockiert nicht mehr Mullvads eigene nftables-Regeln

    - Der Kill Switch kann jetzt funktionieren, ohne mit firewalld zu kollidieren

    - Beim Trennen wird das Interface automatisch wieder entfernt


    ✅ ERGEBNIS:

    - ✅ firewalld bleibt aktiv (Schutz für andere Interfaces)

    - ✅ Mullvad Kill Switch funktioniert

    - ✅ Keine manuellen Eingriffe nach dem Boot nötig

    - ✅ Automatisches Verbinden funktioniert

    - ✅ System bleibt sicher und stabil


    🔍 TESTEN:

    Code
    # Prüfen ob das Interface in der richtigen Zone ist
    sudo firewall-cmd --zone=mullvad --list-interfaces
    # Sollte z.B. "wg-mullvad" ausgeben, wenn VPN verbunden ist


    💡 HINTERGRUND:

    Das Problem war, dass firewalld und Mullvad beide versuchen, nftables zu verwalten. Durch die dedizierte Zone entziehe ich das Mullvad-Interface firewallds Filter-Logik, ohne firewalld komplett zu deaktivieren.


    Hoffe, das hilft anderen Leap-16-Nutzern! Bei Fragen gerne melden.


    Viele Grüße,

    nilsholgerson