Websites / Kunden voneinander abschotten

Toronto

New Member
HI. Wie kann ich Websites oder/und Kunden voneinander abschotten? Mein Problem ist das viele Kunden extrem unsichere und alte Scripte verwenden, aber auch ich habe wohl ein paar unsichere Sachen am laufen. Jemand lädt ein Shell Script hoch und schon ist der ganze Server gepwned. OpenVZ läuft bei mir leider nicht weil ich dafür zu wenig RAM habe, außerdem sollte es doch auch ohne möglich sein die einzelnen Websites voneinander abzuschotten? Wie macht ihr das so?


Server ist installiert nach: The Perfect Server - Debian Squeeze (Debian 6.0) With BIND, Dovecot & Nginx [ISPConfig 3] | HowtoForge - Linux Howtos and Tutorials


P.S.: Ich habe das Thema in "Linux Foren" -> "Server Administration" aufgemacht weil die Frage er allgemein gemeint ist. Aber an einer chroot-Lösung speziell nur für ISPConfig Webs bin ich auch sehr interessiert, falls es so etwas gibt... Und ISPConfig 3.0.5 wird laut Bugtracker ja der Knüller schlechthin, danke an alle Developer!
 

Till

Administrator
Ein 100%iges Abschotten ist nicht so ohne weiteres möglich, aber unter ISPConfig laufen ja bereits die Scripte für jedes web unter einem eigenen Linux User, d.h. ein script das auf einer webseite hochgeladen wird kann auch nur das sehen und machen was diesem Linux User erlaubt ist.

Ein weiteres Sicherheitslevel ist das php open_basedir, dies lässt Dateizugriffe nur in den entsprechenden Pfaden zu. open_basedir hat aber eine Schwäche, es kann nur Zugriffe über Dateifunktionen abfangen und keine Zugriffe über ausgeführte Programme. Da eine normale Webseite in einem shared Hosting an sich sowieso keine eigenen Programme ausführen können sollte, solltest Du am Besten die exec und shell Funktionen in php deaktivieren. Dazu setzt Du in der apache2, cgi und php fpm php.ini Datei (aber nicht in der cli php.ini):

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Für pache hätte ich Dir noch zusätzlich zu mod_security geraten. Das gibt es aber meines Wissens nach für nginx erst in einer betaversion.
 

Toronto

New Member
Ein weiteres Sicherheitslevel ist das php open_basedir, dies lässt Dateizugriffe nur in den entsprechenden Pfaden zu. open_basedir hat aber eine Schwäche, es kann nur Zugriffe über Dateifunktionen abfangen und keine Zugriffe über ausgeführte Programme. Da eine normale Webseite in einem shared Hosting an sich sowieso keine eigenen Programme ausführen können sollte, solltest Du am Besten die exec und shell Funktionen in php deaktivieren. Dazu setzt Du in der apache2, cgi und php fpm php.ini Datei (aber nicht in der cli php.ini):

Habs eingetragen / geändert, danke fürs posten!!

Für apache hätte ich Dir noch zusätzlich zu mod_security geraten. Das gibt es aber meines Wissens nach für nginx erst in einer betaversion.

Ich verwende Apache, der Link da oben ist leider falsch habe alles nachdem Pefect Tutorial Debian, Apache, ISPConfig 3 installiert. Weißt du zufällig welche Einstellungen in mod_security man so tätigen sollte damit alles sicherer ist?
Die ModSecurity Site konnte mir leider nicht so recht helfen.

Und sorry noch eine Frage was es die sicherste PHP "Einbindung" für eine Website? Bei mir läuft momentan Fast-CGI mit SuEXEC.
 

Till

Administrator
Ich verwende Apache, der Link da oben ist leider falsch habe alles nachdem Pefect Tutorial Debian, Apache, ISPConfig 3 installiert. Weißt du zufällig welche Einstellungen in mod_security man so tätigen sollte damit alles sicherer ist?
Die ModSecurity Site konnte mir leider nicht so recht helfen.

Schau mal hier im ISPConfig FAQ:

Apache mod-security installation on Debian 6.0 (squeeze) « FAQforge

Und sorry noch eine Frage was es die sicherste PHP "Einbindung" für eine Website? Bei mir läuft momentan Fast-CGI mit SuEXEC.

Ich würde Dir zu php-fcgi mit suexec raten.
 

gpkvt

New Member
Je nachdem wie weit du beim "Abschotten" gehen willst wäre Xen sicher eine Option. Die Konfiguration ist einfach, die Anforderungen an die Hardware sind zwar gemäßigt, aber das Zielsystem muss natürlich schon was hergeben.

Eine Anleitung findest du hier: https://www.21x9.org/xen-4-1-installation-und-konfiguration-debian-wheezy/

Eventuell musst du dazu dein System neu aufsetzen (zumindest wenn du LVM verwenden willst und keine freie Partition mehr hast). Eine entsprechende Debian Remote Install-Anleitung findest du hier: https://www.21x9.org/debian-remote-installer/
 
Zuletzt bearbeitet:

Toronto

New Member
Eine Anleitung findest du hier: https://www.21x9.org/xen-4-1-installation-und-konfiguration-debian-wheezy/

Eventuell musst du dazu dein System neu aufsetzen (zumindest wenn du LVM verwenden willst und keine freie Partition mehr hast). Eine entsprechende Debian Remote Install-Anleitung findest du hier: https://www.21x9.org/debian-remote-installer/

Danke für die Links, interessante Beiträge hast du da auf deiner neuen Site! :)
Ich fand OpenVZ schon relativ kompliziert (also wenn etwas nicht geht), ich denke mit Xen wäre ich komplett überfordert im Produktiveinsatz, soll ja noch schwieriger sein. Aber ich werde mich da mal rein "fuchsen", dauert mind. ein halbes Jahr.

Je nachdem wie weit du beim "Abschotten" gehen willst
Total dicht machen, aber gerne ohne Virtualisierung. Komfort/Kompatibilität ist nicht wichtig, es laufen nur Standard-Scripte wie u.a. WordPress, phpBB, statische Seiten. Schade das die ganzen Freehoster ihre "Tricks" zu dem Thema nicht verraten...
 

gpkvt

New Member
Danke für die Links, interessante Beiträge hast du da auf deiner neuen Site! :)

Danke, ich habe in den letzten Jahren viel in einem Wiki dokumentiert und dachte mir ich mache das mal etwas öffentlicher.

Ich fand OpenVZ schon relativ kompliziert (also wenn etwas nicht geht), ich denke mit Xen wäre ich komplett überfordert im Produktiveinsatz, soll ja noch schwieriger sein. Aber ich werde mich da mal rein "fuchsen", dauert mind. ein halbes Jahr.

Ich war eigentlich sehr überrascht wie einfach es war Xen aufzusetzen und zu betreiben. Du hast natürlich recht dass da erstmal eine zusätzliche Komplexitätsebene eingezogen wird. Auf der anderen Seite kann man mit Xen halt auch schnell mal 1, 2 Testmaschinen hochziehen und alle erst einmal in Ruhe ausprobieren, was so viele Vorteile mit sich bringt, dass man die zusätzliche Komplexität gern in Kauf nimmt.

Von den Möglichkeiten im laufenden Betrieb ganz abgesehen, oh, eine Seite hat plötzlich Erfolg, hier mehr CPU, Speicher und Festplattenplatz. Für die meisten Änderungen muss man nicht einmal neu starten. :)

Naja, will nur sagen es lohnt sich.

Total dicht machen, aber gerne ohne Virtualisierung. Komfort/Kompatibilität ist nicht wichtig, es laufen nur Standard-Scripte wie u.a. WordPress, phpBB, statische Seiten. Schade das die ganzen Freehoster ihre "Tricks" zu dem Thema nicht verraten...

Dann blieben dann wohl Techniken wie suPHP. Ich glaube ein paar dieser Techniken unterstützt ISPConfig auch nativ.

Was ich bei Wordpress in Betracht ziehen würde ist eine einzelne Installation für alle Blogs auf dem Server, ab Version 3.0 geht das. Dann brauchst du nur diese eine Installation updaten und nicht mehrere. Die einzelnen User dürfen dann immer nur auf ihren persönlichen Blogbereich zugreifen, so wie bei wordpress.com auch.
 

Toronto

New Member
ich habe in den letzten Jahren viel in einem Wiki dokumentiert und dachte mir ich mache das mal etwas öffentlicher.

Gute Idee.

Ich war eigentlich sehr überrascht wie einfach es war Xen aufzusetzen und zu betreiben. Du hast natürlich recht dass da erstmal eine zusätzliche Komplexitätsebene eingezogen wird. Auf der anderen Seite kann man mit Xen halt auch schnell mal 1, 2 Testmaschinen hochziehen und alle erst einmal in Ruhe ausprobieren, was so viele Vorteile mit sich bringt, dass man die zusätzliche Komplexität gern in Kauf nimmt.


Aufsetzen ist eigentlich immer sehr einfach, aber bei OpenVZ erlebe ich immer wieder böse Überraschungen. Z.B. die Internetverbindung von einem Container wird einfach so von Zeit zu Zeit unterbrochen ohne das davon etwas im Log steht. Echt ärgerlich wenn man die Fehlerquelle nicht finden kann und selbst der teure Pay-Support nach 4 Stunden Suche nichts finden kann. Virtualisierung ist aber wohl das einzige was ich für meine High Vulnerability Risk Sites verwenden kann. Ob ein Intel Core2 Duo mit 2.80 GHz mit 8 GB RAM für 20 vServer ausreicht?


Was ich bei Wordpress in Betracht ziehen würde ist eine einzelne Installation für alle Blogs auf dem Server, ab Version 3.0 geht das. Dann brauchst du nur diese eine Installation updaten und nicht mehrere. Die einzelnen User dürfen dann immer nur auf ihren persönlichen Blogbereich zugreifen, so wie bei wordpress.com auch.
Interessant! Check ich mal aus.
 

gpkvt

New Member
Aufsetzen ist eigentlich immer sehr einfach, aber bei OpenVZ erlebe ich immer wieder böse Überraschungen. Z.B. die Internetverbindung von einem Container wird einfach so von Zeit zu Zeit unterbrochen ohne das davon etwas im Log steht.

Hatte ich bei Xen noch nicht wirklich. Eine Maschine, der Name war "dev" ist mal ausgestiegen und hat sich über Nacht immer selbst readonly remountet. Ich habe sie umbenannt und seitdem tut sie tadellos.

Wir haben im Büro einen Testserver auf Xen-Basis der simuliert alle Server damit Änderungen geprüft werden können. Außerdem haben die Entwickler dort mehrere Testumgebungen.

Läuft wesentlich besser als die Maschine mit VirtualBox und 12 Win7/XP Installationen.
 

Werbung

Top