it-swarm.com.de

Richten Sie die virtuellen Apache-Hosts mit mehreren Benutzern korrekt ein

Vielen Dank im Voraus für Ihre Hilfe. Ich habe es mir selbst beigebracht, Linux (Ubuntu), Apache, virtuelle Hosts und ein paar Sicherheitsaspekte zu verwenden, obwohl ich diese noch nicht nahtlos zusammengestellt habe.

Ich habe auch den harten Weg aus Fehlern in der Vergangenheit gelernt, die darin bestehen, Benutzerkonten und Sites/virtuelle Hosts nicht richtig einzurichten. Ich ssh in den Server als root (ich weiß, sehr schlecht), und erstellt alle virtuellen Hosts und Dateien manuell, so dass alle von root gehört. Ich habe eine alte Version von Joomla ausgenutzt und böswilligen Spam-Code in alle meine anderen virtuellen Hosts eingefügt.

Ich bin gerade dabei, auf einen neuen Server zu wechseln, und suche nach den richtigen Schritten, um virtuelle Hosts und Benutzerkonten einzurichten, die darauf zugreifen können. Da wir Software von Drittanbietern verwenden, brauchten wir gelegentlich jemanden, der auf die Website zugreift, um deren Website-Dateien zu untersuchen.

Unser aktueller Server ist Version 10.04, der neue Server ist jedoch Version 12.04. Alle Website-Dateien werden unter eingerichtet

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

usw

Kurz gesagt, ich denke, das ist es, wonach ich suche.

  1. Wie richte ich einen virtuellen Host und einen Benutzer richtig ein, sodass er nur auf seine eigenen Dateien und keinen anderen virtuellen Host auf dem Server zugreifen kann? Wenn diese Site beispielsweise mit bösartigem Code ausgenutzt wird, kann sie keine anderen Sites auf dem Server infizieren

  2. Wie kann ich Benutzer so einrichten, dass sie nur über FTP auf ihre angegebenen Dateien zugreifen können und nicht auf andere Websites zugreifen können?.

Wie bereits erwähnt, gibt es zahlreiche Artikel, die beschreiben, wie Sie einen dieser Schritte ausführen, aber nichts, was sie nahtlos zusammenführt.

Ich bin sehr dankbar für die Hilfe, die jeder anbieten kann. Gerne können Sie weitere Informationen anfordern, die Sie beraten müssen. Momentan folge ich Tutorials, um chroot einzurichten, aber ich fürchte, ich mache das nicht richtig, da ich auf dem Weg ein paar Inkonsistenzen aufgegriffen habe. Untersuche auch Jailkit.

13
user249729

Da bei der Frage "Apache Virtual Host Separate User" die Frage das wichtigste Suchergebnis in Google ist, möchte ich eine ausführlichere Antwort auf der Grundlage von diese Antwort geben. Meine Antwort deckt nicht den Verwendungszweck von PHP und CGI ab (Sie würden suPHP verwenden). Es konzentriert sich auf PHP, wenn es als Apache-Modul verwendet wird.

Sie können das Apache-Modul Apache2-mpm-itk verwenden. Es ist für die aktuelle Version von Apache 2.4 verfügbar. Es kommt mit der Direktive AssignUserID. Diese Anweisung definiert den Benutzer und die Gruppe, mit denen die Anforderung eines virtuellen Hosts bearbeitet wird. Dies ist ein Beispiel für die Apache-Site-Konfiguration, mit der ich endete:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Dies erhöht natürlich nur dann die Sicherheit, wenn die einzelnen DocumentRoots den jeweiligen Benutzern gehören und nicht für Gruppen zugänglich sind. Für weitere PHP-bezogene Sicherheit werden Skripte im DocumentRoot mit der open_basedir-Einschränkung abgelegt. Für den Backend-Dateizugriff bevorzuge ich SFTP mit chroot .

Hinweis: Apache2-mpm-itk ist derzeit nicht mit dem http2-Modul von Apache kompatibel.

5
Hermann

Ich halte das nicht für eine Antwort auf Ihre Frage. Da ich aber noch keinen Kommentar abgeben kann, muss ich im Bereich "Antwort" schreiben. Ich mache saisonal Web-Management. Eine Möglichkeit, Dinge auf sichere Weise zu testen und auszuprobieren, besteht darin, eine Testumgebung in einer virtuellen Maschine (d. H. VirtualBox) oder einem "alten" Desktop-Computer einzurichten. Eines der häufigsten Probleme von Newbie-Webhost-Administratoren besteht darin, die Funktionsweise von Webserver-Programmen zu verstehen. In diesem Fall gehe ich davon aus, dass Sie verstehen müssen, wie Apache funktioniert, und zumindest die Konfigurationsdateien verstehen müssen. Ich finde, dass Webmin ein sehr hilfreiches Tool für Neulinge ist, um Apache und andere Dienste zu verwalten. Sie müssen einige Zeit damit verbringen, Dinge in Ihrer Testumgebung auszuprobieren, damit die Dinge für Sie klarer werden.

Ich denke, die Antwort auf Ihre Frage kann ein Tutorial-Artikel oder ein kleines Buch sein. Schauen Sie sich zunächst diese Artikel an:

https://www.digitalocean.com/community/articles/how-to-set-up-Apache-virtual-hosts-on-ubuntu-12-04-lts

http://www.servermom.org/build-ubuntu-server-a-complete-guide/

1
biocyberman