Froxlor richtig absichern - Tipps?

  • Hallo,


    ich richte derzeit Froxlor auf meinem vServer (Debian 8) ein. Der vServer ist (bis auf die Firewall -> die kommt noch) bereits abgesichert.


    Da ich bisher noch nie mit Froxlor gearbeitet habe und mir Sicherheit wichtig ist, wollte ich Fragen wie ihr Froxlor abgesichert habt?
    Am meisten Kopfschmerzen bereitet mir dabei phpmyadmin. phpmyadmin kann man ja direkt bei Froxlor über den eingestellten Link aufrufen. (Bei mir http://ip/froxlor/phpmyadmin)
    Da phpmyadmin laut einigen Aussagen in der Vergangenheit immer mal wieder Sicherheitslücken hatte, würde ich gerne den Zugriff von außen verhindern.
    Die einfachste Möglichkeit wäre dabei wohl, die Seite in der .htaccess mit einem zusätzlichen Login zu versehen. Nachteilhaft wäre dabei natürlich, dass man dafür einen extra Namen+Passwort benötigt.


    Kennt ihr da eine andere Möglichkeit, mit der man die phpmyadmin Seite absichern kann, ohne dass hierfür ein weiterer Benutzername + Passwort benötigt wird? Also, dass phpmyadmin nur durch das Webinterface aufrufbar ist?


    Zusätzlich hätte ich noch eine Frage, die in eine andere Richtung geht:
    Ich habe eine Domain bei Netcup bestellt. Seht ihr es als sinnvoll an einen eigenen DNS Server auf dem vServer zu betreiben oder sollte ich eher den von Netcup nutzen? Welche Vor- und Nachteile hätte dies für mich?


    PS: Sobald ich meine Domain habe, werde ich natürlich auch ein SSL Zertifikat für die Logins verwenden!


    Vielen Dank im Voraus für eure Antworten  :thumbup: 

  • Phpmyadmin auf Debian installieren


    Kannst damit anfangen den "Standard URL" zu ändern für phpmyadmin zb. auf datenbankzugriff oder ähnliches.
    Dann einen neuen Adminaccount anlegen und den root account für phpmyadmin deaktivieren.


    Code
    1. Dazu ist die Datei
    2. /etc/phpmyadmin/config.inc.php
    3. anzupassen.
    4. Am Ende der Datei ist die Zeile
    5. $cfg['Servers'][$i]['auth_type'] = ‘cookie’;
    6. zu aktivieren (Auskommentierung entfernen).
    7. Weiterhin ist eine zusätzliche Zeile einzufügen
    8. $cfg['Servers'][$i]['AllowRoot'] = FALSE;


    ansonsten noch ein htaccess einfügen, und das ganze sollte reichen, zwar eine Eingabe der Daten mehr, dafür sollte es sicher sein...

  • Wenn du sicherheit möchtest schmeiss Froxlor weg und verwalte deinen Webserver + Mail alleine. Es ist total sinnlos bei einer Domain ein DNS-Cluster zu betreiben, du brauchst A mindestens zwei und B in verschiedenen Subnetzen wenn du das Geld hast bitte schön. Nur wirst du denke ich keinen Schimmer haben wie man DNS-Server sauber aufsetzt und wie man diese richtig abhärtet, weil wenn die offen sind wars das. Wenn du glaubst das du durch SSL nennenswerte Sicherheit erlangst, dann muss ich dich da enttäuschen.


    Ich freue mich über dein Feedback :)

  • Guten Tag,


    Zitat

    Wenn du glaubst das du durch SSL nennenswerte Sicherheit erlangst, dann muss ich dich da enttäuschen. [...]

    ohne SSL hat man zumindest gar keine Sicherheit. Von daher schafft SSL doch ein beachtliches Maß an Sicherheit? Verstehe ich Ihren Satz falsch?



    Mit freundlichen Grüßen


    Felix Preuß

  • Wenn man Sicherheit gegen MITM o.ä. meint schon. Aber einem Angreifer ist es (bis auf veraltete "Hilfswerkzeuge", die mit HTTPS nichts anfangen können) wahrscheinlich relativ egal, worüber es ausgeliefert wird, wenn er nach Lücken scannt… :)


    Trotzdem würde ich heute logischerweise immer auf eine Verschlüsselung setzen, wenn es möglich ist!



    MfG Christian

  • Guten Tag Herr Preuss,


    da hab ich mich tatsächlich undeutlich ausgedrückt, ich meine es in dem Sinne das es keine praktikable Sicherheit bietet. Verschlüsselung ist ein muss in jeder weiße aber die problematik bei verschlüsselung ist das man sie richtig implementieren muss. Das bringt einige Nachteile, hat man einen reinen SHA2 + 256bit Verschlüsselden Webserver können nur IE, Safari, (glaube auch Chrome) damit umgehen. Somit schliesse ich einge User aus. Dann wenn man HSTS einsetzt und dabei was kaputt geht muss gewartet werden bis der timeout eintritt. Dann gibt es ja das schöne Keypinning das genau so wie HSTS beim Defekt aussperrt. Das Thema Sicherheit ist so ein komplexes Thema in der IT... besonders bei Virtuellen Maschinen wo ja eine Firewall lokal auf der VM reingarnichts bringt, als Fazit sage ich jetzt mal SSL ist für mich ein burchteil von dem was man tun könnte.


    Gruß Skulduggery

  • Verschlüsselung ist ein muss in jeder weiße aber die problematik bei verschlüsselung ist das man sie richtig implementieren muss. Das bringt einige Nachteile, hat man einen reinen SHA2 + 256bit Verschlüsselden Webserver können nur IE, Safari, (glaube auch Chrome) damit umgehen. Somit schliesse ich einge User aus. Dann wenn man HSTS einsetzt und dabei was kaputt geht muss gewartet werden bis der timeout eintritt. Dann gibt es ja das schöne Keypinning das genau so wie HSTS beim Defekt aussperrt.


    Das hat komplett nur mit Verbindungssicherheit zu tun. Es ist durchaus möglich TLS sinnvoll zu konfigurieren, sodass die Daten bestmöglichst übertragen werden. Ansätze hierzu liefert der Test von SSLLabs: SSL Server Test (Powered by Qualys SSL Labs)
    HSTS macht Probleme, wenn das Zertifikat abgelaufen ist - "was dabei kaputt geht" ist ziemlich einfach ausgedrückt! TLS ist prinzipiell sehr stabil und auch die Webserver arbeiten sehr stabil. Ich betreue einige Server und hatte bisher nie Probleme - trotz aktiviertem HSTS! Allerdings muss man sich sehr wohl darum kümmern, dass die Zertifikate rechtzeitig ersetzt/verlängert werden.



    Das Thema Sicherheit ist so ein komplexes Thema in der IT... besonders bei Virtuellen Maschinen wo ja eine Firewall lokal auf der VM reingarnichts bringt


    Eine Firewall bringt auch bei virtuellen Maschinen noch Vorteile! Zwar lässt sich gegen (D)DOS nichts mehr unternehmen, da das Hostsystem da schon die Schwachstelle ist - um Portscans bzw. allgemein das versehentliche Öffnen von Ports zu verhindern ist eine lokale Firewall in einer VM sinnvoll, wichtig und empfehlenswert!




    als Fazit sage ich jetzt mal SSL ist für mich ein burchteil von dem was man tun könnte.


    Ich finde man muss hier unterscheiden zwischen Datensicherheit/Serversicherheit (Daten auf dem Server & das System allgemein) und Verbindungssicherheit (Übertragung der Daten zum Kunden).
    Bei der Verbindungssicherheit ist SSL Pflicht - spätestens nun mit letsencrypt! Bei der Serversicherheit sind Dinge wie eine Firewall (ufw für Debian-basierte Systeme) empfehlenswert. Da gibt es in beiden Fällen aber noch weitaus mehr zu beachten.


    Um zu einer eigentlichen Frage zurück zu kommen:

    • du solltest phpmyadmin direkt in einen anderen Ordner verschieben oder den Ordner umbenennen. Den Pfad kannst du in Froxlor anpassen. Dadurch finden die typischen Bots/Crawler den Pfad nicht mehr direkt - du/deine Kunden ihn aber noch über Froxlor
    • du solltest die komplette Froxlor-Installation (also den Pfad /froxlor) mit htaccess absichern. Vor nicht allzu langer Zeit gab es eine Sicherheitslücke, durch die sämtliche mysql-Zugangsdaten im Klartext angezeigt wurden. Details findest du über die Forensuche ;) Das Passwort muss nicht gut sein - es soll einfach nur das Grundrauschen (Bots, ...) filtern.
    • Du könntest auch den kompletten Froxlor-Ordner direkt per Apache/nginx-Config nur über eine Subdomain erreichbar machen (z.B. bob.[einedomain].de. Hintergrund ist genau das gleiche wie bei Punkt 1 - die Crawler, die nach Scripten in verwundbaren Versionen suchen finden es so nicht ;) Die Subdomain sollte natürlich nicht admin,froxlor etc. sein, sondern wirklich etwas nicht-triviales.
    • Wie schon beschrieben solltest du sämtliche Adminbenutzer (root,admin) durch eigene User ersetzen (z.B. dein Vorname, Nick, etc.). Auch das hilft gegen die meisten Standardangriffe.
    • Du könntest phpmyadmin auch automatisch per Shell-Script aktualisieren. Ich benutze z.B. ein Script, das alle 3 Tage die aktuelle Version von github zieht und die alte damit ersetzt. Es gibt mehrere Ansätze dazu im Internet (google einfach mal nach "phpmyadmin update script").


    Zum Vorschlag von Mainboarder: recaptcha klingt gut bis nervig (von der Usability her, von der Sicherheit her natürlich auch ein Gewinn) - von adminer würde ich dir allerdings abraten. Insbesondere wenn du noch nicht 100% fit bist was SQL angeht ist phpmyadmin doch übersichtlicher und einfacher zu bedienen.


    Ansonsten solltest du (falls noch nicht getan) fail2ban installieren und entsprechend konfigurieren - ich bin mir allerdings nicht ganz sicher ob das nicht über Froxlor schon irgendwie mitkommt.


    Ich hoffe dir damit geholfen zu haben ;)

  • Hallo,


    erstmal vielen Dank für die wirklich vielen Antworten.


    Zitat

    Wenn du sicherheit möchtest schmeiss Froxlor weg und verwalte deinen Webserver + Mail alleine

    Den Webserver + Mail ohne ein Interface zu verwalten ist natürlich eine (sichere) Möglichkeit. Ich denke aber, dass man auch Froxlor gut sichern kann. (Natürlich bleibt immer ein Restrisiko und jede Software mehr ist eine potentielle Sicherheitslücke)


    Zitat

    Es ist total sinnlos bei einer Domain ein DNS-Cluster zu betreiben [...] Nur wirst du denke ich keinen Schimmer haben wie man DNS-Server sauber aufsetzt [...]

    Wirklich sinnvoll ist es nicht, das stimmt. Einen DNS-Server sauber aufsetzen ist nicht das Problem an der Sache. Da ich mit meinem Informatik Studium fast fertig bin, habe ich doch einiges an Ahnung. Ich frage ja nicht deshalb nach Möglichkeiten Froxlor abzusichern, weil ich nicht weiß wie es geht, sondern weil ich gerne die Alternativen kennen möchte. Außerdem gibt es immer mal wieder Anregungen, auf die man ohne ein Forum nicht gekommen wäre!


    Zitat

    Wenn du glaubst das du durch SSL nennenswerte Sicherheit erlangst, dann muss ich dich da enttäuschen.

    Ich habe das mit SSL nur geschrieben, weil es in meinen Augen absoluter Standard ist. Das ich dadurch keine Sicherheit gegenüber direkten Angriffe erlange ist mir bewusst. Es geht da ehr drum, dass Passwörter und Daten verschlüsselt übertragen werden etc.


    Zitat

    Kannst damit anfangen den "Standard URL" zu ändern für phpmyadmin zb. auf datenbankzugriff oder ähnliches.

    Das steht auf der Liste  8) 


    Zitat

    Dann einen neuen Adminaccount anlegen und den root account für phpmyadmin deaktivieren.

    Das ebenfalls   :D 

    Zitat

    ansonsten noch ein htaccess einfügen, und das ganze sollte reichen, zwar eine Eingabe der Daten mehr, dafür sollte es sicher sein...


    Genau so habe ich es derzeit gelöst. Ist unterm Strich einer der sichersten Varianten.


    Zitat

    Alternativ, da du ja die Bedenken gegen phpmyadmin hast: Adminer - Datenbank-Verwaltung in einer einzigen PHP-Datei

    Zitat

    von adminer würde ich dir allerdings abraten. Insbesondere wenn du noch nicht 100% fit bist was SQL angeht ist phpmyadmin doch übersichtlicher und einfacher zu bedienen.

    Adminer sieht auch sehr Interessant aus. Ich habe kürzlich erst meine Diplomarbeit fertiggestellt zum Thema Stored Procedures. Entsprechend viel hatte ich mit SQL am Hut. Mich würde an dieser Stelle eher Interessieren wo die Vor- und Nachteile von phpmyadmin gegenüber adminer liegen.


    Zitat

    Eine Firewall bringt auch bei virtuellen Maschinen noch Vorteile! Zwar lässt sich gegen (D)DOS nichts mehr unternehmen, da das Hostsystem da schon die Schwachstelle ist - um Portscans bzw. allgemein das versehentliche Öffnen von Ports zu verhindern ist eine lokale Firewall in einer VM sinnvoll, wichtig und empfehlenswert!

    Genau der gleichen Meinung bin ich auch. Zumal eine eingerichtete Firewall sich ja nicht negativ auswirken kann. (Außer man kann sie nicht konfigurieren)

    Zitat

    du solltest die komplette Froxlor-Installation (also den Pfad /froxlor) mit htaccess absichern.

    Wird gemacht  :) 


    Zitat

    Wie schon beschrieben solltest du sämtliche Adminbenutzer (root,admin) durch eigene User ersetzen (z.B. dein Vorname, Nick, etc.). Auch das hilft gegen die meisten Standardangriffe.

    Ist zum Großteil schon erledigt!


    Zitat

    Du könntest phpmyadmin auch automatisch per Shell-Script aktualisieren. Ich benutze z.B. ein Script, das alle 3 Tage die aktuelle Version von github zieht und die alte damit ersetzt. Es gibt mehrere Ansätze dazu im Internet (google einfach mal nach "phpmyadmin update script").

    Guter Vorschlag! Habe das vorher ganz normal als Paket installiert. Allerdings scheint das nicht grade auf den aktuellsten Stand zu sein! Werde das auf jeden Fall auch umsetzen!



    Für weitere Tipps, Vorschläge und Kritiken bin ich weiterhin dankbar! Aber schon mal vielen Dank für die vielen und ausführlichen Antworten!

  • phpmyadmin bietet recaptcha unterstützung. Brauchst dafür entsprechende API-Keys, die gibt es aber kostenlos.


    Alternativ, da du ja die Bedenken gegen phpmyadmin hast: Adminer - Datenbank-Verwaltung in einer einzigen PHP-Datei

    Zu adminer:

    http://hyp3rlinx.altervista.or…-SIDE-REQUEST-FORGERY.txt

    Beste Grüße

    NetCup: Root-Server 500
    Clients: Ubuntu 16.04, Win7 (in VBox)
    NAS: Zyxel 540, 325v2, Medion (Zyxel 212). Alle mit Entware NG