Posts by whoami0501

    Da wir ja hier mit Sicherheit einige Leute haben, die eine Nextcloud betreiben und vielleicht auch die News App benutzen.


    Die News App stellt eine spezielle Situation dar, da hier Daten von überall nachgeladen werden. Mindestens ein Favicon jedes RSS Feeds.

    Wenn man Feeds von Blogs und Co abonniert hat, dann werden nicht selten auch Sachen aus CDN's, YouTube, Google Fonts und aller möglicher anderer Mist nachgeladen.


    Im Normalfall bringt Nextcloud eigene, recht gut funktionierende Content Security Policies mit. Bei der News App kann man das allerdings vergessen - datenschutztechnisch ein totaler Krampf. Ublock regelt zwar, zerstört dabei aber zum Teil das Layout der News App.


    Mein Tipp daher: gezielt nur die CSP von der News App überschreiben. Das sieht dann in einem nginx reverse Proxy bspw. so aus:


    Falls jetzt mimimi kommt: Natürlich sind dann alle Bilder weg. Damit kann man aber leben, wenn man Wert auf Datenschutz legt. :)


    EDIT: Ich weiß allerdings nicht, wie sehr sich die Android App für CSPs interessiert...

    Okay. Ich habe mir deine Konfiguration nochmal angesehen. Du verbindest dich mit deinen Containern per https:// - das macht so nur wenig Sinn, behaupte ich mal. Du möchtest dich viel eher über http:// auf Port 80 verbinden (siehe meine Konfiguration).


    Sollte ein Container bzw. die Applikation nur über https:// erreichbar sein, dann verwendet diese vermutlich ein selbst signiertes SSL Zertifikat. Probier mal, die Container entweder per http:// mit Angabe von Port 80 anzusprechen oder per https:// und setz dann noch die Einstellung "proxy_ssl_verify off;"

    So. Das mit dem $upstream_status funktioniert leider nicht. Ich arbeite aber auch mit normalen proxy_pass und nicht mit Upstream oder so.

    Naja. Dann gehts halt nicht - tut mir nicht weh, wäre nur ein nettes Feature gewesen.


    bfg habe ich mir angeschaut. Werde das morgen auf Arbeit mal am verunfallten Repo testen, theoretisch könnte ich ja dann direkt den phpmyadmin Ordner raushauen. Das könnte gehen...

    Nochmal kurz um dein Setup zu verstehen. Du hast einen Proxmox Host, einen nginx Container und einen/mehrere Webapp Container?Oder nginx direkt auf dem Proxmox Host?


    Hast Du da nen Tipp?

    Die Wireguard-eigene Dokumentation ist gut. Ansonsten musst du dich halt etwas zu iptables usw belesen, um das NAT nach außen + das Forwarding zwischen den Netzen zu gewährleisten.


    Ich guck mal wie ich voran komme, erstmal noch ein nextcloud aufsetzen, ich will meine daten vom webhosting umziehen.

    Schalt bitte einen Gang zurück und ziehe keine produktiven Anwendungen/Daten auf einen Server bzw. Proxmox Host um, den du gerade noch aufbaust. Das ist ein Sicherheitsrisiko für deine Daten und du bist dann gezwungen, den Server laufen zu lassen.


    So kannst du sagen "Okay, ich weiß nicht, ob das stabil läuft und sicher ist, also fahr ich den Server runter und mach morgen weiter." - das geht nicht, wenn er in dieser Aufbauzeit schon produktiv läuft.

    $upstream_status?

    http://nginx.org/en/docs/http/…eam_module.html#variables


    Ansonsten könnte der Upstream auch einen Header mit weiteren Informationen zurück geben. Dann könnte man noch etwas besser filtern und drauf reagieren. Geht natürlich nur, wenn Du einfluss auf das Backend hast.

    Klingt sinnvoll - teste ich dann mal, wenn ich zuhause bin.



    Andere Frage... ich hatte letztens einen kleinen "Git Unfall" - ich habe ausversehen einen commit mit phpmyadmin drin gemacht. Ich hatte das phpmyadmin zwar danach wieder gelöscht (git rm) und neu commitet, aber das phpmyadmin hängt jetzt noch irgendwo im .git Ordner drin, wodurch der verdammt groß ist.


    Ich suche jetzt nach einer Möglichkeit, den "verunfallten" commit (mittlerweile sind schon wieder gut 20 Commits dazu gekommen) da irgendwie aus dem Verlauf rauszuholen. Ich werde nur nicht so recht fündig. Mit git rebase soll das wohl irgendwie gehen, aber ich steige da noch nicht so ganz durch... kann mir jemand sagen, wie man sowas macht? Ich will jetzt ungern experimentieren und mein Repo dabei zerlegen, das wäre echt ärgerlich. ?(

    Die 404 kommt ja nicht vom Proxy, wenn der Service dahinter ein File nicht findet.

    Genau darauf wollte ich ja hinaus. Das ist mir durchaus bewusst.


    Ich suche so etwas ala:

    if ( $backend_response_code == 404 ) {

    return 444;

    }


    Ich möchte also quasi auf Basis der Antwort des Services im Backend die Antwort manipulieren bzw. in diesem Fall unterbinden. Nur ich finde halt nichts dazu bzw. weiß nicht, wie das geht.

    try_files $uri =444;

    Genau das geht eben nicht.


    Meine Proxy config ist z.B. folgende:


    Egal ob das von dir genannte in den location Blöcken, oder außerhalb der location Blöcke steht - es kommt ein normaler 404er zurück. :/

    Bzgl. des Scripts schaue ich dann mal, was ich machen kann.


    Andere Frage bzw. andere Thema.

    Wie kann ich bei nginx (als reverse Proxy) konfigurieren, dass er statt einem Statuscode 403 oder 404 Statuscode 444 bzw. nichts ausliefert?

    Ich probiere es gerade mit error page und location, aber das scheint bei reverse Proxy nicht zu gehen... aber aus dem Internetz werde ich auch nicht so recht schlau.

    Moin.


    Bei mir läuft ein ähnliches Setup. Ich distanziere mich allerdings von fertigen Images - bau es lieber selbst auf, da weißt du, was du hast und vor allem ist ein Lerneffekt da.


    Ich habe einen Server mit einer IPv4 und einer IPv6. Die Firewalls von Proxmox sind überall aus, ich mache mein Firewalling selbst mit iptables.


    Ich habe einen nginx Container und mehrere Container mit diversen Webapps.


    Per iptables auf dem Proxmox Host mache ich also ein Portforwarding von Port 80/tcp und 443/tcp auf den nginx Container.

    Dieser splittet dann je nach Domain auf und leitet den Traffic an den entsprechenden Container mit der Webapp an.


    Also wenn ich jetzt meinen Container per cloud.domain.tld anspreche, werde ich mit dem Nextcloud Container verbunden und wenn ich ihn per monitoring.domain.tld anspreche, dann mit meinem IcingaWeb.


    Hier sind mal meine nginx Konfigurationen für meine Nextcloud. Die kannst du dir eigentlich zum Vorbild nehmen. Das SSL arbeitet mit einem ECDSA (ec-384) Zertifikat und mit OCSP must staple. Das musst du bei der Zertifikatsanfrage in acme.sh mitgeben. Wenn man mit OCSP arbeitet, muss man auch OCSP Caching betreiben, sonst kann es zu nervigen Fehlermeldungen im Browser kommen. Mehr Infos hier.

    Code: http_redirect_acme.conf
    1. # acme challenge config
    2. include vhost.d/subconfigs/acme.conf;
    3. # redirect all HTTP requests to HTTPS with a 301 Moved Permanently response (if its not a bot)
    4. location / {
    5. include vhost.d/subconfigs/botcheck.conf;
    6. return 301 https://$host$request_uri;
    7. }
    Code: botcheck.conf
    1. # send no answer if a bot user agent is asking
    2. if ( $is_bot ) {
    3. return 444;
    4. }
    Code: proxy_header.conf
    1. proxy_set_header Host $http_host;
    2. proxy_set_header X-Real-IP $remote_addr;
    3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    4. proxy_set_header X-Forwarded-Proto $scheme;
    5. proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict;";


    acme.sh sollte man übrigens nicht unbedingt als root laufen lassen... ;)


    Es empfiehlt sich auch, auf dem Proxmox Host noch ein Wireguard VPN aufzusetzen und zwischen diesem und der Bridge zu routen/forwarden. Das hat den Vorteil, dass du SSH Ports, phpMyAdmin, Webmin, Shellinabox usw usw nicht von außen zugänglich machen musst. Das erhöht den Bedienkomfort und die Sicherheit erheblich.


    Wenn du noch Fragen hast, dann stell sie mir bzw. uns gern. :)

    Das ist keine gute und zuverlässige Option zu prüfen, welcher Webserver eigentlich genutzt wird.

    Alternative? Prozesscheck? Oder ein Check auf die Binary?


    Kritik ist das eine und auch kein Problem - aber dann sag mir bitte auch, was ich besser machen kann. Danke! :)

    Soo... also falls jemand OCSP caching betreiben mag und certbot nutzt --> *klick*


    Andere Frage - beim Public Key Pinning hinterlegt man ja so wie ich das verstanden habe den Public Key. Was ist, wenn jetzt, wie es bei Lets Encrypt üblich ist, das Zertifikat erneuert wird. Ändert sich dann der Public Key und man muss ihn in der config ebenfalls ändern, oder bleibt der gleich?

    Hilft dir vielleicht comm?

    Nein. Witzigerweise hatte ich einen Denkfehler, wodurch ich mein "sort -u -t, -k2,2" auf jede Zeile einzeln angewendet habe. Nachdem ich den Befehl mit etwas Bastelei auf alle Zeilen angewendet habe, ging es auf einmal... Augen auf im Straßenverkehr. Oder so. :P


    Danke trotzdem!

    Ich bastel mir gerade mal wieder ein Bash Script...


    Der Output schaut etwa so aus: <domain>,<dateiname> und geht über mehrere Zeilen.

    Jetzt möchte ich die erste Spalte, also die domain nach dopplern durchsuchen. Unabhängig vom Dateinamen, der by the way nicht entfernt werden darf.


    Wie mache ich das am ehesten? Irgendwie bin ich da mit meinem Latein am Ende... :(

    Ist das eigentlich bei IPv6 ein richtiger Standard, dass der Router immer die fe80::1 bekommt? Ja, oder?

    Warum hält sich die verfluchte FRITZ!Box dann nicht dran? Die hat bei mir ne IPv6 Adresse ala fe80::xxxx:xxxx:xxxx:xxxx :rolleyes: (und fe80::1 ist auch nicht pingbar)


    Meine Güte - also AVM braucht echt nochmal Nachhilfeunterricht, was IPv6 betrifft...

    Leider läuft auf meiner bzw. unserer Fritte auch kein OpenWrt. Grmpf...

    Denn dort wird angegeben, dass man "Kein SSL" auswählen soll. Ich denke das könnte ganz vielleicht der Grund sein, warum TLS nicht funktioniert.

    Ohne SSL oder TLS zu arbeiten ist nicht sehr empfehlenswert. Wenn du schon so eine Anleitung hier freigibst, dann bitte auch so, dass es sicher ist. Aktuell läuft ein paar Threads weiter wieder eine Diskussion, wo ein Server sich "verselbstständigt" hat. (hier)


    Sprich: Schreib bitte noch dazu, wie man den FTP Traffic anständig verschlüsselt bzw. wie man den FTP-Server dafür konfigurieren muss, und vor allem auch, wie man den RDP Zugang absichert. Danke.

    Hmm. Muss ich mir da jetzt gedanken machen? Läuft da nicht so gefühlt die halbe @AWS drauf?

    Ein Glück bin ich, zumindest privat, bei Netcup... dienstlich kann man sich das ja leider nicht aussuchen. ^^


    ÄÄÄHM, Nö.

    Um mal explizit ein paar Sachen zu nennen - warum haben "Steel Buddies" (DMAX), "112: Feuerwehr im Einsatz" (DMAX), "Coast Guard Alaska" (DMAX) oder "Feuer und Flamme" (WDR) nichts von der Realität? Wüsste nicht, was da gestellt sein sollte.