Portainer aus dem Internet abschotten

  • Hallo zusammen,

    ich versuche meine Portainer Anwendung auf dem Port 9000 vom Internet aus abzuschotten. Kann mir einer von euch sagen wie ich dies erreichen kann. Ich habe bereits das unten stehende über die ufw firewall versucht. Leider ohne Erfolg.


    Danke im Voraus und Liebe Grüße,

    Lucas



    To Action From

    -- ------ ----

    2183 ALLOW Anywhere

    51820 ALLOW Anywhere

    9000 DENY Anywhere

    80 DENY Anywhere

    2183 (v6) ALLOW Anywhere (v6)

    51820 (v6) ALLOW Anywhere (v6)

    9000 (v6) DENY Anywhere (v6)

    80 (v6) DENY Anywhere (v6)

  • Root/VPS? Was ist denn die Default Policy?

    Default Deny/Drop und dann einfach nur die Ports erlauben erlauben. Dann einen Reverseproxy davor mittels htpasswd absichern.

    Hallo,

    und Danke dir für deine schnelle Antwort. Ich nutze einen VServer welcher folgende default policy umsetzt.


    sudo ufw default deny incoming
    sudo ufw default allow outgoing


    Weshalb ich doch denke das "9000 DENY Anywhere" den Zugriff auf den Port 9000 verbieten sollte, oder irre ich hier?


    Danke und LG

    Lucas

  • Also wenn inc.eh schon auf deny steht, dann sollte der Port garnicht offen sein. Einfach mal mittels telnet von außen testen.

    Ggf mittels iptables -L mal schauen.

    Dazu dann einen ReverseProxy mit BasicAuth. Dann ist halt Ruhe.

    Ach, Deny durch Drop ersetzen. Dann werden die Pakete einfach verworfen.

  • Docker ordnet sich da irgendwie drüber. Bei mir greift die Firewall bei Docker dann nur bei IPv6. IPv4 ist aus einem von mir noch nicht näher untersuchten Grund höher priorisiert.


    Ich löse es immer so, dass ich die Container nur auf localhost binden lasse und den Rest über nen Reverse Proxy erledige.

    VPS 500 G8 Plus | VPS Karneval 2020 | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Pack doch schon gleich mal Portainer hinter den Nginx Proxy Manager ( https://nginxproxymanager.com/ ), dann ists schonmal nicht mehr Port 9000, sondern eine Subdomain Deiner Wahl. Ohne die Kenntnis dieser Domain kein Zugriff. Zudem kann NPM die Kommunikation per Let's Encrypt Zertifikat absichern. Ich habe alles hinter NPM, sogar den NPM selbst.

    Und in der Tat, den Port 9000 gar nicht erst auf den Host legen, sondern nur im NPM drauf verweisen.

    Damit das funktioniert, müssen NPM und der Container, der geproxied werden soll, im gleichen definierten Netzwerk sein.

    Privat: VPS 1000 G8 Plus | RS Fast Rabbit OST21 (~RS 8000 G9), VPS Funny Bunny OST21 (~VPS "2500" G9), beruflich noch einige mehr

  • ein paar kleine Eingriffe in ufw, und dann wird geblockt wie erwartet - siehe https://github.com/chaifeng/ufw-docker


    oder in

    /etc/ufw/after.rules vor dem letzten Commit: