Posts by dodeka

    Quote from dancgn

    Jain, also Wildcart-Zertifikate gehen definitiv. Irgendwie.

    Wildcard Zertifikate funktionieren zwar, werden aber nicht ohne weiteres automatisch verlängert. Stichwort DNS-Challenge. Keine Ahnung, ob man das Verfahren im Nginx Proxy Manager konfigurieren kann, Netcup müsste das aber wegen DNS-API durchaus unterstützen. Check das mal in deiner Konfiguration.


    Quote from dancgn

    Also beim docker-Container in der config.json einen Eintrag für jede sub?

    Ja, genau so.

    Hi,


    let's encrypt Zertifikate musst du für jede Domain und Subdomain beantragen. Bei Verwendung von DynDNS musst du die Aktualisierung der IP-Adresse ebenfalls für jede Domain und Subdomain einstellen. Der von dir verwendete ddns-updater unterstützt offenbar Netcup, also sollte das eigentlich möglich sein.

    Wenn, wie in deinem Beispiel, in dem Docker-Container ein Ordner /config und /lib/modules existiert, würde ich das der Übersicht wegen auch so mit in die dauerhaften Volumes mit übernehmen.

    Um bei dem Beispiel mit dem Verzeichnis /docker für Ablage der Volumes zu bleiben:

    Code
    - /docker/meinedockeranwendung/config:/config:rw
    - /docker/meinedockeranwendung/lib/modules:/lib/modules:rw

    In dem Fall sind die Ordner /config und /lib/modules im Pfad /docker/meinedockeranwendung/ zu finden.

    Du kannst das ganze aber auch nach deinen Vorstellungen abändern:

    Code
    - /docker/meinedockeranwendung/ordner1:/config:rw
    - /docker/meinedockeranwendung/ordner2:/lib/modules:rw

    In dem Beispiel werden die Daten von /config in /ordner1 und /lib/modules in /ordner2 gespeichert, wobei /ordner1 und /ordner2 wiederum im Pfad /docker/meinedockeranwendung/ zu finden sind.

    Damit speicherst du die Dateien in zwei verschiedenen Ordnern (Adguard1 / Adguard2). Das kann man schon so machen, ist aber doch eher unübersichtlich. Aus meiner Sicht ist es besser, wenn alles in einem Ordner mit dem Namen Adguard liegen würde.

    Code
                - Adguard/conf:/opt/adguardhome/conf:rw
                - Adguard/work:/opt/adguardhome/work:rw


    Wenn du mehrere Container betreibst und diese Struktur weiterführen möchtest, würde ich das Ganze noch in einem übergeordneten Verzeichnis ablegen. Das übergeordnete Verzeichnis könnte "docker" heißen.

    Code
                - /docker/Adguard/conf:/opt/adguardhome/conf:rw
                - /docker/Adguard/work:/opt/adguardhome/work:rw


    Bei mehreren Containern hätte man dann eine bessere Übersicht über die gespeicherten Daten.

    Code
    /docker
        /Adguard
            /conf
            /work
        /docker
            /unterordner1
            /unterordner2
        /docker1
        /docker2

    Für die persistenten Daten meiner Docker-Container habe ich eine Ordnerstruktur /data/docker/docker_volumes/ im root angelegt. Dort speichere ich je nach Container in weitere Unterverzeichnisse. Für AdGuard ist das bei mir /data/docker/docker_volumes/adguard/.

    In der Compose habe ich für Adguard folgende Pfade angegeben:

    - /data/docker/docker_volumes/adguard/work:/opt/adguardhome/work
    - /data/docker/docker_volumes/adguard/conf:/opt/adguardhome/conf
          
    Für ein Backup (ich benutze dafür restic) starte ich die Container einmal neu, damit auch die aktuellsten Daten in die persistenten Volumes geschrieben werden.

    docker stop $(docker ps -q)
    docker start $(docker ps -a -q)

    Was mir aber im Geo-Blocking Zusammenhang einfällt: wie läuft es denn dann mit Systemupdates oder speziellen Dingen wie letsencrypt.

    Mit geoip-shell kannst du das Geo-Blocking umsetzen. Du kannst das Script auch ganz einfach nur für Port 22 konfigurieren, damit andere Dienste wie gewohnt weiter funktionieren. Läuft hier, neben fail2ban, auf mittlerweile 7 Servern.


    https://github.com/friendly-bits/geoip-shell

    Geoblocking - netcup Kundenforum
    Kennt jemand eine möglichst einfache Methode für geoblocking in Ubuntu? (EIne die nicht mit aktiven fail2ban und ufw in Konflikt gerät) Einige meiner Server…
    forum.netcup.de


    Noch kurz zu fail2ban: In der Standardeinstellung wird eine erkannte IP nur für 10 Minuten blockiert. Ich stelle immer eine Bannzeit von 24 Stunden bei 3 Fehlversuchen ein.

    Wenn man den SSH Port entsprechend ändert, haben die Logs auch nichts zu tun.

    Ernst gemeinte Frage: bringt das denn auch dauerhaft etwas? Ich meine, in Zeiten von Censys und Shodan ist das eigentlich nur eine Frage der Zeit, bis du wieder in entsprechenden Listen auftauchst? Zumindest die Bots bedienen sich solcher Tools und haben nach meiner Beobachtung wahrscheinlich auch interne target lists. Ich habe hier durch das Forum vor kurzem ein Script zum Geoblocking gefunden, das ist bisher das Einzige, was hier sehr zuverlässig hilft. Whitelist auf DE für SSH und die Zugriffe sind von täglich 400–800 auf maximal 3 zurückgegangen. Bisher hatte ich auch Crowdsec und diverse IP-Listen ausprobiert, die ich über ipset eingebunden hatte.

    Rein schon von der Lautstärke ist ein Bladeserver nichts für zu Hause. Wenn du dafür einen geeigneten Raum im Keller hast, ist das aber sicher machbar. Mir persönlich wäre der Stromverbrauch für so ein Gerät zu hoch.

    Zumindest, wenn die pre/post Scripte in der Konfigurationsdatei für die jeweilige Domain mit hinzugefügt wurden, sollte das bei der automatischen Verlängerung mit ausgeführt werden. Ausprobiert habe ich es aber auch noch nicht.


    /etc/letsencrypt/renewal/${certname}.conf

    Code
    # Options used in the renewal process
    [renewalparams]
    account = xx
    authenticator = apache
    installer = apache
    server = https://acme-v02.api.letsencrypt.org/directory
    pre_hook = bash /path/to/script.sh
    post_hook = bash /path/to/script.sh


    Zur Not könnte man den "certbot renew" mit allen Script-Parametern auch über Cron ausführen lassen

    Die Let's Encrypt Server stehen in den USA, wenn du eine Whitelist ohne USA konfiguriert hast und die Ports 80/443 darüber mit gefiltert werden, dann funktioniert die HTTP-Challenge nicht mehr. In geoip-shell können zwar IP-Adressen von dem Filter ausgenommen werden, aber Let's Encrypt veröffentlicht leider keine IP-Adressen seiner Server.

    Wenn du certbot benutzt, besteht noch die Möglichkeit, das per „Pre and Post Validation“ Script zu lösen.

    Pre-Hook-Script: Vor dem Renewal wird der Filter für das Protokoll TCP und die Ports 80/443 ausgeschaltet.
    geoip-shell configure -p tcp:allow:80,443

    Post-Hook-Script: Nach dem Renewal werden die Ports wieder gefiltert.
    geoip-shell configure -p tcp:block:all

    Mangels certbot auf meinem Testserver konnte ich das bisher noch nicht ausprobieren, aber genau so würde ich das Versuchen umzusetzen.

    Ich habe geoip-shell jetzt auch kurz installiert, und ja, das mit den Ports scheint einwandfrei zu funktionieren.


    Auf meinem Testserver sind aktuell nur IP-Adressräume aus Deutschland zugelassen, aber eine OpenVPN-Verbindung ist weltweit möglich. Getestet habe ich das über meinen VPN-Anbieter. Die Installation und Konfiguration von geoip-shell war wirklich sehr einfach und Fail2ban hat aktuell überhaupt nichts mehr zu tun. 🙂


    Ich lasse das jetzt noch ein paar Wochen im Testbetrieb laufen und werde noch ein paar Einstellungsmöglichkeiten ausprobieren, aber das Ganze hat wirklich potenzial um dauerhaft zu bleiben. Danke @m_ueberall für den Tipp!


    Kann also auch durchaus lehhrreich sien, wenn man sich nach Konfigurationsänderung mit nft die Regeln ausgeben lässt und vergleicht, was das Tool denn nun überhaupt gemacht hat.

    👍👍👍

    Ubuntu Pro kostet pro PC 500$ im Jahr wenn ich das richtig gelesen habe, das Gegenteil mit 500€ im Jahr müsste bei Debian das Freexian Repo sein.

    Ubuntu Pro ist derzeit für bis zu 5 Maschinen, bzw. 50 Maschinen für Community Member, kostenlos. Das Angebot gilt für Privatpersonen oder für Unternehmen, die der Accountinhaber besitzt.

    Quote

    Free, personal subscription for 5 machines for you or any business you own, or 50 machines for active Ubuntu Community members.

    Quelle: https://ubuntu.com/pro/subscribe


    Edit: Ein Nachteil der Free Subscription ist, dass bei dem optionalen Realtime Kernel auch Beta-Versionen eingespielt werden können. Deswegen habe ich Realtime Kernel auf meinen Maschinen abgeschaltet.

    Aus meiner Sicht spricht nichts dagegen, direkt mit Debian 12.5 zu starten. 👍


    Komme beruflich auch aus dem IT-Bereich und wir benutzen hauptsächlich Debian bzw. wenige Kollegen auch Devuan (Debian ohne systemd). Ich kann aber nicht wirklich etwas Negatives über Ubuntu LTS berichten, zumal über die erweiterte Pro Subscription mittlerweile 10 Jahre Patches für das OS und die Main/Universe Repositorys angeboten werden. Das ist in meinen Augen ein absoluter Gamechanger. Privat bin ich auf sämtlichen Servern mittlerweile zu Ubuntu LTS migriert und ich denke, dass bald auch die ersten Kundenserver folgen werden.