Der fast perfekte Server

converge

New Member
Hallo zusammen,

nach ein paar Jahren mehrere VServer mit Plesk möchte ich nun meinen ersten "richtigen" Server hochziehen, der absolut manuell konfiguriert ist. Plesk und Co. sollen also garnicht erst eingesetzt werden. Ich habe bemerkt, dass Plesk 1. sehr ressourcenlastig und 2. schlecht fürs Eigenverständnis ist.

Da mir in den letzten Jahren in diesem Forum auch viel und kompetent geholfen wurde, würde ich gerne ein wenig was zurückgeben. Macht es für euch Sinn, wenn ich ein kleines HowTo schreibe? Oder vielleicht einen Eintrag in nem Wiki? Könnte ein kleines Use Case werden und von euch auch gerne ergänzt sowie kontrolliert werden.

Das Ziel ist also ein möglichst sicherer und performanter Server.

Voraussetzungen:
  • VServer mit Ubuntu 10.04. Ich setze ein "minimales" Image ein, so dass keine Dienste reduziert werden müss(t)en
  • Es soll ein reiner Webserver werden, der zwar Postfix drauf hat, aber keine Maildienste wie z.B. dovecote
  • Die Umgebung soll auf den Einsatz mit TYPO3 optimiert sein (kleine Umgebung, bis max. 10-15 Websites)

Was ich also bisher gemacht habe:
  • Einen weiteren Benutzer angelegt und in zu den Sudoers gesteckt
  • Den Root-Accout für direkten SSH-Zugriff gesperrt
  • In der sshd_config Protocol 1 zu Protocol 2 geändert (macht das Sinn? Wenn ja, warum?)
  • Installation von Apache2, PHP5, MySQL
  • libapache2-mod-evasive
  • fail2ban installiert
  • Den SSH Port verlegt (nicht mehr auf Port 80)
  • Postfix installiert und für den reinen Einsatz für Mails mit php konfiguriert
  • Einen VHost angelegt und getestet
  • Eine Datenbank und einen zugehörigen Nutzer erstellt
  • eAccelerator installiert

Was ich noch machen möchte, wenn ich es hinbekomme:
  • Apache ggf. optimieren
  • MySQL ggf. optimieren
  • eAccelerator optimieren
  • Unnötige Dienste (wenn vorhanden) abschalten bzw. löschen
  • Traffic-Auswertungen per Cronjob, bezogen auf einzelne VHosts. Reports per Mail

Fragen, die mir dabei noch einfallen:
  • Macht der Einsatz von denyhosts Sinn?
  • Macht der Einsatz von chkrootkit Sinn?
  • Macht der Einsatz von rkhunter Sinn?
  • Was muss mit iptables noch bedacht werden?
  • Warum wird in der sshd_conf Protocol 1 zu Protocol 2?
  • Kann der root-Benutzer von MySQL umbenannt oder sogar gelöscht werden?
  • Sollte der Einsatz von phpmyadmin aus Sicherheitsgründen vermieden werden? Wenn nein, wie kann man dies am besten absichern?

Was muss noch beachtet werden, um einen möglichst performanten und sicheren Server zu bekommen?
 
Macht der Einsatz von denyhosts Sinn?

Denyhosts dient im Prinzip auch nur dazu viele Loginversuche von einer IP zu blocken. (zumal es auch Präventiv sperren kann, wenn ein anderes denyhost system $ip sperrt, solange man die Stats verwendet)

Macht der Einsatz von chkrootkit Sinn?

Im Prinzip Ja. Das Problem ist nur, dass man sich nicht mehr auf Lokale Tools verlassen kann, wenn das System kompromitiert wurde (oder man den Verdacht hat)

Macht der Einsatz von rkhunter Sinn?

(s. o)

Warum wird in der sshd_conf Protocol 1 zu Protocol 2?

Weil in Protocol 2 einige Schwachstellen behoben wurden, es gilt momentan als sicher.

Sollte der Einsatz von phpmyadmin aus Sicherheitsgründen vermieden werden? Wenn nein, wie kann man dies am besten absichern?
Man kann es einsetzen, solange man es aktuell hält, man sollte es aber z.B über .htaccess Schützen

Was muss noch beachtet werden, um einen möglichst performanten und sicheren Server zu bekommen?
z.B regelmäßig Updates installieren und Security Mailinglists beachten/abonnieren.
Was die Performance angeht sollte man fortlaufend die Dienste Optimieren.
 
Danke. Das klingt ja ganz danach, dass ich schon recht sicher bin, wenn es nur noch um Updates und Mailing Listen geht :-)
 
10-15 Typo3-Installationen auf einem vServer. Ob das mal gut geht?

Macht es für euch Sinn, wenn ich ein kleines HowTo schreibe? Oder vielleicht einen Eintrag in nem Wiki?
Fuer viele die das hier lesen wahrscheinlich nicht ;) Aber fuer viele andere schon.
Tutorials sind ein zweischneidiges Schwert: man hat eine Hilfsleine bei nicht perfekt beherrschten Bereichen aber viele Leute copy-pasten es (meist ohne ueber das "Warum" der Kommandos nach zu denken) wodurch selbst bei guten Tuto's -deren es schon zu wenig gibt- die Sicherheit der Machine drastisch sinkt.

10-15 Typo3-Installationen auf einem vServer. Ob das mal gut geht?
Kannst auch 100-150+ draufwerfen. Kommt eher auf die Benutzerzahl (und bei einigen PHP-Einbindungsmethoden auf die Anzahl der vHosts) an.
Aber er will ja auf Eisenware wechseln ;)
 
10-15 Typo3-Installationen auf einem vServer. Ob das mal gut geht?

Darum geht's in dem Thread doch gar nicht...


@converge:

Wozu so ein verhältnismäßig großes Monster wie Postfix aufsetzen, wenn das System nur versenden können soll? Ein kleiner Nullmailer sollte hierfür genügen.

Bzgl. der MySQL-/Apache-Optimierung:

Bzgl. Absicherung hatte dev mal einen schönen Thread geschrieben:
 
Die wichtigste Frage für einen reinen Webserver lautet wohl: Wie ist PHP an den Apache geklöppelt? Und warum gerade Ubuntu?
 
Ich bin für Empfehlungen offen. Habe mal gelesen, dass per fastcgi sicherer sein soll, aber auch deutlich langsamer?

Warum Ubuntu? Weil ich es persönlich sehr aktuell finde. Ich weiß, dass Debian-Verfechter nicht viel von Ubuntu halten. Ich finde es jedoch sehr ausführlich dokumentiert und von daher gerade für "Nicht-Vollzeit-Admins" sehr gut.
 
Ich weiß, dass Debian-Verfechter nicht viel von Ubuntu halten.
Der Hauptunterschied zwischen Debian und Ubuntu ist dass letztere aktuellere -und somit weniger getestete- Software einsetzt und einen straffen Release-Zyklus hat durch dessen Druck oft unfertige Features oder offene Bugs in ein Release einfliessen, statt wie bei Debian "it's done when it's done".
Zumindest aktuell ist jedoch Debian mit "Squeeze" wieder einigermassen an den Puls der Zeit gerueckt.

Ich finde es jedoch sehr ausführlich dokumentiert und von daher gerade für "Nicht-Vollzeit-Admins" sehr gut.
Abgesehen von den oben genannten Unterschieden und leicht anderen Paketen sowie Divergenzen in verschiedenen Konfigurationen liegen beide Distributionen sehr nahe aneinander; Ubuntu benutzt SEHR viel Code und Patches direkt von Debian, somit ist die Annahme dass Ubuntu einfacher als Debian sei einfach absurd.
Die Ubuntu-Foren und -Wiki sind zweifellos riesig, jedoch lassen sich fast alle Eintraege ohne oder mit nur sehr wenig Aenderungen auf ein Debian-System applizieren.

Habe mal gelesen, dass per fastcgi sicherer sein soll, aber auch deutlich langsamer?
Sicherer als was? mod_php mit mpm_worker? Zweifelsohne. Sicherer als mod_php mit mpm_itk oder mpm_peruser? Nicht wirklich.
Der wichtigste Vorteil (und gleichzeitig Nachteil) einer CGI-basierenden Einbindung ist dass du eine eigene php.ini fuer jeden Benutzer definieren kannst.
 
Letztendlich geht es um das Ausführen der Skripte im Benutzerkontext, was die Sicherheit anbelangt. Einen funktionelle Vorteil hat d4f für CGI-basierende Installationen genannt.
 
OK, ich werde cgi nehmen. Es scheint mir die am weitesten verbreitetste und für meine Anforderungen die geeignetste Methode sein.
 
Bitte dran denken: CGI = pro Request auf eine php-Datei wird der komplette Interpreter geladen und wieder entladen -> teuer. Wenn da 15-20 Besucher gleichzeitig über die Seiten toben, geht es ganz schön zur Sache.

FastCGI ist diesbezüglich wesentlich effizienter, aber kostet halt permanent Speicher. Bei 10-15 vHosts ist das aber vernachlässigbar.
 
Es scheint mir die am weitesten verbreitetste und für meine Anforderungen die geeignetste Methode sein.
Cgi ist wirklich _NUR_ empfehlenswert wenn du PHP in einem eigenen Prozess willst aber nicht genug RAM oder zuviele vHosts hast um dies mit fastcgi oder fcgid loesen zu koennen, beides sollte bei einem Rootserver und einem Dutzend vHosts aber nicht zutreffen.
Die verbreiteste Methode ist aber wahrscheinlich mod_php.

[Edit]
Da war dev schneller ;)
 
Last edited by a moderator:
Zwei kleine Änderungen in meiner Planung:

Ich werde das System auf Debian hochziehen anstatt Ubuntu. Die Philosophie hinter Debian scheint mir sinnvoll, die gute Dokumentation von Ubuntu ist ja dennoch nutzbar. Mal sehen, ob ich das nach durchaus guten Erfahrungen mit Ubuntu bereue oder ob das so passt.

Ich werde php doch mit mod_php einbinden. Nach mehreren Tests mit fcgi habe ich mich dazu entschieden, dass der VServer von den Ressourcen her einfach zu klein ist, als dass mehrere VHosts sich die ganze Zeit den Speicher freihalten könnten. Es sind ausschließlich Seiten, die wenig besucht sind. Von daher habe ich mir die Frage gestellt, ob es sich lohnt, dass eine Seite trotz nur 10 Hits am Tag um die 100 - 200 MB vom Speicher wegnimmt.

Meine Planung: mod_php mit mod_evasive und mod_security. Außerdem suhosin.

Macht diese Ausstattung Sinn? Fehlt etwas um Apache sicher und gleichzeitig perfomant zu halten?

Danke
 
Back
Top