Server Sicherheit

  • Hallo zusammen,


    ich habe schon einen eigenen webserver administriert, jedoch möchte ich nun zum ersten mal einen Online shop auf meinem root server hier aufziehen.
    Hierfür möchte ich sicher gehen, dass ich das möglichste tu in puncto Security.


    OS: Debian 10


    Was bereits geschehen ist, bzw geschehen wird:


    • Root PW geändert, neuen User zur sudo Gruppe hinzugefügt, sshd_config AllowUsers und AllowGroups festgelegt, Root Login und Passwort Login disabled, Login via key und passphrase only(evtl. noch 2FA)
    • ufw installiert und default alles incoming denied ausser das nötige
    • fail2ban installiert und jails einrichten(ssh, nginx, etc)
    • nutze lynis zur Erkennung von Schwachstellen
    • Sobald ich die domain habe, ein SSL Zertifikat per Lets encrypt und Certbot einrichten.
    • AppArmor ist standardmäßig auf Debian 10 installiert, jedoch bisher nur default setup
    • täglich system auf updates überprüfen(auch das shopsystem)
    • subscribed zur debian-security-announce mailing list

    Ein paar zusätzliche Fragen, die sich mir stellen:

    • bin gerade am überlegen logwatch einzusetzen, um mir das log monitoring zu erleichtern(vlt hat jemand einen besseren Vorschlag)
    • und sind rootkit erkennungs tools wie chkrootkit, oder rkhunter sinnvoll?
    • sollte ich mehrere webseiten durch LXD container isolieren?



    Anregungen, Kritik und alles weitere erwünscht:P


    Sind diese Vorkehrungen dem Vorhaben entsprechend?


    Liebe Grüße



    Cekirdek :)

  • Ein paar zusätzliche Fragen, die sich mir stellen:

    • bin gerade am überlegen logwatch einzusetzen, um mir das log monitoring zu erleichtern(vlt hat jemand einen besseren Vorschlag)
    • und sind rootkit erkennungs tools wie chkrootkit, oder rkhunter sinnvoll?
    • sollte ich mehrere webseiten durch LXD container isolieren?

    Wenn du auf dem System mehrere Webseiten betreibst, solltest du diese auf jeden Fall unter unterschiedlichen Usern laufen lassen und z.B. entsprechende PHP FPM Pools einrichten und nicht alles standardmäßig unter dem www-data User laufen lassen. LXC/Docker Container sind letztendlich auch einfach nur isolierte Prozesse auf dem Host. Beim Thema Sicherheit bringt das eigentlich keinen wirklichem Mehrwert.

  • Wenn du auf dem System mehrere Webseiten betreibst, solltest du diese auf jeden Fall unter unterschiedlichen Usern laufen lassen und z.B. entsprechende PHP FPM Pools einrichten und nicht alles standardmäßig unter dem www-data User laufen lassen. LXC/Docker Container sind letztendlich auch einfach nur isolierte Prozesse auf dem Host. Beim Thema Sicherheit bringt das eigentlich keinen wirklichem Mehrwert.

    Mal rein aus Interesse. Was spricht gegen www-data bzw. nginx als User?

  • Mal rein aus Interesse. Was spricht gegen www-data bzw. nginx als User?

    Es ging ja in diesem Fall explizit um mehrere Webseiten auf dem gleichen Server. Da will man ja nicht, dass Seite 1 auf Daten von Seite 2 zugreifen kann, wenn diese nichts miteinander zu tun haben. Aber auch bei einer einzigen Seite würde ich einen eigenen User für die Applikation anlegen (was ich auch selbst immer mache). Der Webserver sollte nicht uneingeschränkt auf alle Daten zugreifen und sogar Schreibrechte auf die ganze Applikation haben. Daher empfehle ich immer, dass dann auch sauber zu trennen.

  • Es ging ja in diesem Fall explizit um mehrere Webseiten auf dem gleichen Server. Da will man ja nicht, dass Seite 1 auf Daten von Seite 2 zugreifen kann, wenn diese nichts miteinander zu tun haben. Aber auch bei einer einzigen Seite würde ich einen eigenen User für die Applikation anlegen (was ich auch selbst immer mache). Der Webserver sollte nicht uneingeschränkt auf alle Daten zugreifen und sogar Schreibrechte auf die ganze Applikation haben. Daher empfehle ich immer, dass dann auch sauber zu trennen.

    Danke,war mir bis jetzt fremd, aber ich guck mir das mal irgendwann in Ruhe an. Habs schon auf meine todo gesetzt :)

  • Danke,war mir bis jetzt fremd, aber ich guck mir das mal irgendwann in Ruhe an. Habs schon auf meine todo gesetzt :)

    Sobald man mehrere Webseiten (vielleicht auch noch ein oder 2 unterschiedliche User) auf dem Server hat, macht das halt Sinn. So muss man im schlimmsten Fall nur eine WP Instanz löschen und nicht alle Webseiten scannen. Das wird im Hosting Bereich schon lange eingesetzt (eine php.ini usw. ist halt alles machbar). Die Management Tools die ich im Einsatz hatte/habe (aktuell u.a. ISPConfig) setzen das auch ein.

  • BIn ja an einem ähnlichen Punkt wie du, bin aber beim Punkt PubKey noch unentschlossen. WENN Fail2Ban richtig funktioniert und du den "Angreifer" nach 2 fehlerhaften Versuchen für 24h vom Server wirfst UND dein Passwort 10+ Zeichen hat (also ein starkes Passwort mit Zeichen und Co) dann kriegt man das meiner Meinung nach "niemals" raus. (Zumindest nicht mit Brute-Force oder Dictionary) ***Nachtrag: Zumal er ja erst den Loginuser inkl. PW rauskriegen muss, dann steckt er im Homeverzeichnis fest und dann kommt das root PW***


    Einen PubKey sollte man ja auchh mit einem Passwort schützen, denn ansonsten heisst PubKey = Zugriff und dass will man ja eigentlich auch nicht...und man sollte den nicht verlieren (wobei man ja auch ein Passwort vergessen kann)


    Ansonsten bin ich auch der Meinung, sehr gute Grundlage

  • WENN Fail2Ban richtig funktioniert und du den "Angreifer" nach 2 fehlerhaften Versuchen für 24h vom Server wirfst […]

    Gretchenfrage: Ist der Server via IPv6 erreichbar? Wenn ja, ist Fail2Ban derart aufgesetzt, dass irgendwann ganze Subnetze blockiert werden?

    Man kann Fail2Ban diesbezüglich aber auch arbeitslos machen – siehe knock.


    Einen PubKey sollte man ja auchh mit einem Passwort schützen […]

    Eigentlich "Passphrase" (impliziert o.B.d.A. eine gewisse Länge) – und wenn man sich die nicht merken kann/will, hilft bspw. Keepass2.

  • Mittlerweile kommt ja sogar bitwarden mit totp daher, allerdings in der premium version für ich glaube 10€/Jahr. Die Lizenz lässt sich auch in die self hosted Version importieren :)

  • Mittlerweile kommt ja sogar bitwarden mit totp daher, allerdings in der premium version für ich glaube 10€/Jahr. Die Lizenz lässt sich auch in die self hosted Version importieren :)

    Da stellt sich mir aber die Frage, ob ich totp und Passwort in der gleichen Anwendung ablegen möchte -> Widerspricht ja der Idee hinter 2FA oder?

  • Da stellt sich mir aber die Frage, ob ich totp und Passwort in der gleichen Anwendung ablegen möchte -> Widerspricht ja der Idee hinter 2FA oder?

    war nur ein Bsp für die unzähligen totps 😉 Ich persönlich nutze die Funktion nicht. bzw. hatte sie einmal testweise für Nintendo ausprobiert.