vServer und die Sicherheit

  • Guten Tag,


    ich hatte bereits vor einiger Zeit einen vServer, bin dann aber aus Zeitmangel und ungenügender Vorbereitung in Punkto Serverbetreuung zum Webhostingangebot gewechselt.


    Nun würde ich gerne wieder (brauche des Öfteren einen Teamspeak 3 Server und Onlinespeicher) wieder zurück zum vServer, diesesmal aber mit etwas mehr zeitlichem Spielraum (die Webseiten funktionieren ja unabhängig vom vServer).
    Vielleicht erst zu dem was ich gerne realisieren würde:


    Webserver mit einer Domain (inkl. 3 Subdomains) -- 2 weitere Domains werden in 1-2 Jahren folgen
    Mailserver für jeweils eine "postmaster" Adresse sowie eine weitere unter der entsprechenden Domain
    MySQL
    Teamspeak3 Server (max. 10 User)
    Online Speicher mit der Storagemöglichkeit via NFS für meine Digitalfotos (Notfallbackup)



    Nun habe ich im Zuge der Vorbereitung ein paar Fragen:


    1. Sicherheit
    Bevor auch nur irgendwas installiert wird möchte ich den Server so gut als möglich absichern (die anderen Dienste werden entsprechend auch gesichert). Nach einigen Webseiten habe ich mir folgende Sachen notiert:
    Fail2Ban (einzelne Dienste entsprechend absichern), SSH Port ändern, kein Root-Login via SSH möglich, rkhunter, chkrootkit, IPtables (und dann nur Stück für Stück die Ports freigeben), Dienste nur noch verschlüsselt zulassen, eMail bei neuen Serverupdates, eMail bei Login via SSH


    2. Webserver
    Ich habe das letzte Mal mit dem Apache 2 gearbeitet und wollte es auch dieses Mal tun. Gibt es triftige Gründe für mich (Seite für private Urlaubsbilder; max. 30 Besucher am Tag) nginx als Webserver zu nehmen oder kann ich mit dem gewohnten Apache 2 arbeiten?


    3. Froxlor / Plesk
    Da ich praktisch keine Ahnung in Punkto "manuelles Einrichten von eMail Konten, etc" habe würde ich mir gerne etwas als grafisches Frontend installieren (oder gleich das Image "Wheezy + Froxlor/Plesk" draufhauen)
    Spricht hier was dagegen wenn ich die oben genannten Sicherheitspunkte umsetze?



    Für Anregungen bin ich gerne offen


    Gruss
    Moritz

  • Also vorab Froxlor würde ich nicht einsetzten das macht dich erst recht gut angreifbar. Würde einfach Lighttpd benutzen das ist schnell konfiguriert und kann man prima Absichern. Würde PHP-fcgi benutzen.


    SSH klar erstmal Root login disabel, dann würde ich dem SSH Server beibringen das er nur Benutzer aus einer Bestimmten Benutzergruppe zu lässt. Sprich z.B. der Benutzer bob bedindet sich in der Gruppe ssh_users, damit kann sich bob anmelden hingegen ist alice nicht in dieser Gruppe somit reagiert der SSH mit einem "Korb" für den User. Standart Shell kannst du auch mit anpassen. Ich hab noch ein Skript in meinem Verbaut gehabt der mir eine Mail sendet sobald ein erfolgreicher Login geschehen war, Quasi Benutzername Timestap und IP. Den es fällt auf wenn nur du dich anmelden darfst und gerade ein Login geschieht obwohl du z.B. Gerade am Strand liegst ;)


    Fail2Ban ist auch ganz Hübsch weil es die IPs nach einer Anzahl fehlgeschlagender Anmelde Versuche für eine Zeit Sperrt somit werden Brutforces meiner Meinung nach recht unmöglich, das ganze würde ich noch mit IPTabels nachwürzen, heißt du droppst alle Ports und gibst in deinem Fall 22,80,143,443,587 frei damit ist nur der Webserver unter 80 und 443 erreichbar und der Mail unter 143,587 sowie SSH unter 22. Im Grunde bringt dir das ändern von Port 22 nur den Effekt das du weniger Spam in der Log hast den Port kann man einfach suchen und finden wenn du ihn ändern solltest.


    Solang du den MySQL nicht dazu bringst von aussen erreichbar zu sein ist er sicher so wie er ausgeliefert wird per APT-GET, macht auch keinen Sinn in deinem Fall das er von aussen reagiert.


    Den Netcup-Server als Notfall-Backup zu benutzen würde ich dir abraten weil A du diese Verschlüsseln (musst) kannst und B du keinen Schimmer hast wo die liegen. Ganz davon zu schweigen wenn das Storage down ist wegen Wartungsarbeiten oder komplett Abschmiert bist du erstmal der, der in die Röhre schaut.


    Was E-Mail angeht würde ich entweder die Konsole Lieb gewinnen oder ein Blankes E-Mail Tool installieren auf Port 8080 legen oder so ;)


    Teamspeak ist nicht meine Welt ich mag die Alternative Mumble lieber die Qualität ist besser und alle Clients sind for Free

  • Vielen Dank für deine sehr ausführliche Antwort!


    Das mit der Benutzergruppe kam mir vorhin auch in den Sinn, werde ich auch gleich so umsetzen. Habe mir damals Froxlor nur kurz angeschaut aber auch nicht wirklich weiter verfolgt. Denke du hast Recht, lieber etwas länger dran "arbeiten", dafür ist man unabhängig und baut sich nicht neue potentielle Schwachstellen ein. Werde mir deine Anregungen zu Gemüte führen, vielen Dank.


    Das mit dem "NotfallBackup" "muss" ich dann wohl weiterhin per USB Drive im Büro regeln.



    PS: Das mit Mumble sehe ich auch so, nur nutzen alle anderen Teamspeak .... werde sozusagen genötigt ^^

  • zu 1.


    Ja, absichern macht auf jeden fall Sinn, fail2ban und Root-Login deaktivieren sind Grundlagen. Weitere Sicherheitsvorkehrungen kann man nach eigenem ermessen und Einsatzzweck einrichten.


    fail2ban und ssh Port ändern sind Lösungen für das (größtenteils) gleiche Problem: Brutforce-Angriffe. Einfach bei fail2ban die Bandauer erhöhen und du kannst dir das SSH-Port verändern sparen. Wenn jemand es auf deinen Server abgesehen hat, dann kann er den SSH-Port mit nem einfachen Netscan rausfinden, egal wo er ist.


    2. Nginx schlägt Apache primär die Skalierbarkeit, die Nginx besser kann, ansonsten erfüllt Apache locker seinen Zweck für niedrig-frequentierte Webseiten.


    3. Froxlor ist naja... Eine Systemmanagement Software. Diese schränkt natürlich die Benutzung in manchen Bereichen des Servers ein, weil sie eigene Configs mitbringt, die Userconfigs überschreiben, usw. Am besten einfach mal ausprobieren, schauen, ob und wo es dich einschränkt und dann Entscheiden, ob es bleibt oder nicht.

  • Sofern du nicht einen sehr hohen Sicherheitsstandard erreichen möchtest, kannst du denke ich durchaus Froxlor mit Apache verwenden.
    Falls du Angriffe auf das Froxlor-Panel verhindern möchtest, kannst du es ja so einrichten, dass es nur lokal am Server erreichbar ist und dann immer über einen SSH-Tunnel darauf zugreifen.


    Am Anfang ist es meiner Meinung nach wesentlich einfacher, wenn man so ein Tool verwendet. Besser eine halbwegs gute Config, welche vom Tool erstellt wird, wie eine unsichere, die man selbst erstellt.
    Auch ich setze seit Jahren auf solche Tools, da es ab einer gewissen Anzahl an Seiten sehr umständlich ist, diese selbst zu verwalten. Ich setze dabei aber immer auf freie Tools, da kann man auch mehr selbst herumbasteln, falls man das möchte. Bei Plesk bist du meiner Meinung nach schon stark eingeschränkt.


    Falls du die Performance optimieren möchtest, kann es sich schon auszahlen, auf Lighttpd oder Nginx zu setzten. Allerdings zahlt sich das für wenige Besucher nicht aus. Ich denke für den Anfang reicht für dich der Apache locker.


    Bzgl. SSH:
    Ich würde auf jeden Fall den Port ändern. Damit verhinderst du die einfachsten Angriffe und schonst somit auch deinen Server und das gesamte Netzwerk. (Nur 1 Versuch statt 4 bei Fail2Ban).
    Außerdem rate ich dir, Keyfiles statt Passwörter zu verwenden und den Login auch nur per Keyfile zu erlauben.
    Root-Login musst du dann meiner Meinung nach nicht unbedingt deaktivieren. Denn wenn es jemand geschafft hat, sich bei dieser Konfiguration mit deinem SSH-User einzuloggen, dann schafft er es auch noch, sich root-Rechte zu besorgen.
    Falls es dir aber nichts ausmacht, jedes mal sudo zu tippen, bedeutet das natürlich wieder ein kleines bisschen mehr Sicherheit.

  • sorry, war beruflich etwas eingespannt. Werde auch deine Tipps berücksichtigen, vielen Dank!


    Edit:
    Stehe aber nun irgendwie auf dem Schlauch. Wie ein SSH Tunnel funktioniert ist mir relativ klar, aber wie kann ich denn von meinem Heimrechner (Windows 8.1) auf meinen vServer zugreifen wo Froxlor von aussen nicht "direkt" erreichbar ist und die Webseite öffnen?

  • Habs nun mit dieser Anleitung hingekriegt.


    Habe eigentlich nichts anderes gemacht als 2 neue IP/Port Einträge gemacht (ingesamt 3 Stück jetzt) und der Apache lauscht auch auf Port 81


    ServerIP und Port 80
    ServerIP und Port 81 EDIT: NICHT NOTWENDIG, EINFACH DEN UNTEREN EINTRAG (127.0.0.1 und Port 81) AUF LISTEN SETZEN


    verweisen jetzt auf /var/www/default/ und


    127.0.0.1 und Port 81


    verweist auf den Froxlor Ordner


    Damit kann ich nun via SSH Tunnel auf das Froxlor Panel zugreifen. Wenn nun jemand raus kriegt das der Apache auch auf 81 lauscht wird er trotzdem im Default Ordner landen. Hoffe habe hier nichts übersehen, funktionieren tut es zumindest

  • Also, ich habe mich jetzt einige Tage mit Froxlor, Nginx und Co beschäftigt ... und natürlich wie ich das Ganze richtig absichern kann. Komme je länger je mehr zum Schluss das ich kein Froxlor installieren sollte da ich es einfach nicht brauche (1 Domain mit 3 Subdomains und jeweils 1-2 eMail Adressen sowie FTP Accounts). Wenn ich nun mit einem "Minimal Image" anfange, erstmal den Laden dicht mache (fail2ban, etc...) und dann Nginx und PHP-FastCGI installiere ist der grösste Teil schon geschafft. Einen "SFTP only FTP" Server kriege ich auch hin, ebenso wie den MySQL Kram (ob nun MySQL oder MariaDB da bin ich mir noch nicht im Klaren drüber zumal es wohl im Moment "nur" auf eine Wordpress DB und ev. kleinere Sachen wie eMail Konten und Co hinaus läuft, die da gespeichert werden).


    Was mir ein wenig "Kopfschmerzen" bereitet ist der eMail Server (Dovecot, Postfix, Spamassassin). Kriegt den ein "Laie" anhand diverser Anleitungen installiert und abgesichert oder stelle ich mir zu 80% eine potentielle Spamschleuder ins Netz?

  • Quote

    Einen "SFTP only FTP" Server kriege ich auch hin,

    FTPS meinst du, SFTP ist was ganz anderes (:

    Was mir ein wenig "Kopfschmerzen" bereitet ist der eMail Server (Dovecot, Postfix, Spamassassin). Kriegt den ein "Laie" anhand diverser Anleitungen installiert und abgesichert oder stelle ich mir zu 80% eine potentielle Spamschleuder ins Netz?


    Die Installation und Konfiguration bekommst du mit Tutorials easy hin, da können wir dir hier auch helfen. Ich habe meinen Mailserver auch selbst eingerichtet und dieser läuft nun über 2 Jahre ohne Probleme.

  • Naja local geht schlecht, hab hier kein Linux zur Verfügung. Im Moment ist der vServer eh kein Livesystem. Ich werde den erstmal n Monat oder so laufen lassen (volle Installation) und dann fortlaufend die Logfiles auswerten.
    Falls dann nichts verdächtiges auftaucht nochmals die Sicherheit prüfen und erst dann "live" schalten

  • Distribution downloaden, VM Software downloaden, VM mit der Distribution erstellen und los gehts lokal... und das ganze kostet nichts!
    Und mit Live System meine ich auch LIVE System, welches im Internet rumlungert. Solang Schwachstellen offen sind hat das Internet Zugriff auf den Server.