Hallo,
ich betreibe einen Webserver mit vielen Anwendungen.
Hautpsächlich im Webbreich.
Dazu sollte ich User anlegen, die später auf dem Aapche2 Webserver Ihrere eigenen Projekte verwalten können.
Ich legte dazu die User auf dem Webserver an, ohne eine Sichere Umgebung einzurichten.
Jetzt gibt es Mister Klugi, der meint, der müsse Admin spielen und kann anscheiend "Lesend auf viele Files zugreifen kann ".
Wie könnte man dass unterbinden?
Und wieso kann dieser Lesend auf die /etc/apache2/ sites-enabled kommen?
danke
Webserver alle User schnüffeln
Webserver alle User schnüffeln
Beste Grüße Primeon
- mindX
- Beiträge: 1541
- Registriert: 27.03.2009 19:17:28
- Lizenz eigener Beiträge: GNU General Public License
Re: Webserver alle User schnüffeln
Ich bin mir nicht sicher, ob ich die Frage richtig verstehe. Daher unter Vorbehalt:
Wenn du die User mit angelegt hast, so gestattet Debian per default Lesezugriff auf die Homeverzeichnisse der anderen User.
Dieses Verhalten lässt sich perändern. Leider nur für zukünftig angelegte User, d.h. du musst alle User neu anlegen und migrieren oder darauf warten, dass hier jemand antwortet, der mehr Plan von der Sache hat. 
Wenn du die User mit
Code: Alles auswählen
adduser
Dieses Verhalten lässt sich per
Code: Alles auswählen
dpkg-reconfigure adduser

Re: Webserver alle User schnüffeln
Wenn jemand Webprojekte verwalten kann, darf er z.B. auch PHP-Dateien hochladen. Ohne sichere Webserver-Umgebung kann z.B. ein Filemanager [1] auch auf Unterstrukturen zugreifen. Downloade mal den Filemanager (eine index.php), kopiere es irgendwo hin und schau was du dir alles anschauen kannst. Natürlich gibt es weitere Dateimanager.
[1] http://phpfm.sourceforge.net
Ein schönes Beispiel für das Linux-Dateisystem ist /etc/passwd, wo für alle Benutzer notwendige Informationen drinstehen (welcher Benutzer hat welche UID?). Einzig problematisch ist der veraltete Name "passwd", der Unsicherheit suggeriert.
[1] http://phpfm.sourceforge.net
Man kann und darf auf viele Linux-Strukturen lesend zugreifen. Normale Shell-Benutzer müssen dann in eine chroot-Umgebung, Webserver kannst du entsprechend ähnlich wie normale Hoster auch einschränken.Jetzt gibt es Mister Klugi, der meint, der müsse Admin spielen und kann anscheiend "Lesend auf viele Files zugreifen kann ".
Ein schönes Beispiel für das Linux-Dateisystem ist /etc/passwd, wo für alle Benutzer notwendige Informationen drinstehen (welcher Benutzer hat welche UID?). Einzig problematisch ist der veraltete Name "passwd", der Unsicherheit suggeriert.
Re: Webserver alle User schnüffeln
Hi,
der Titel "... alle User schnüffeln" finde ich mal geil
Also wenn man einen Webserver mit mehreren Usern betreibt, dann sollte man auch mal auf solch einen "Mr. Klugi" hören. Denn teilweise hat er Recht.
Wie hast du denn deinen Webserver eingerichtet? Laufen die Websiten unter /var/www/UserX/ oder unter /home/UserX?
Legst du User an, die nur ihren Webspace verwalten sollen, dann brauchst du keinen SSH Zugriff und brauchst auch keine Angst haben, dass Sie dir so deine Konfiguration ausspionieren können. (Mehr wie spionieren ist mit Lesezugriff nicht drinnen) (SSH-Login in der passwd verbieten)
Um Daten auf den Webspace zu speichern, git es die Möglichkeit über einen FTP-Server jeden User in sein Webspaceordner einzusperren. (chroot)
Damit PHP Scripte nicht bei jedem User Änderungen vornehmen können, solltest du die php.ini für jeden User anpassen und auch unter dem jeweiligen User ausführen (FastCGI)
Nun gibt es noch das Problem namens Apache. Dein Webserver MUSS auf jeden Ordner lesen können. Das kann man leicht machen, indem man die Gruppe www-data auf die Webspace Ordner der User lesezugriff gibt. Nun kann jedoch ein User einen Symlink anlegen und somit Datein anderer User im Browser durch Apache ausgeben lassen. (auch die passwd)
Möglichkeit 1. Symlinks in der Apacheconfig verbieten (Achtung einige CMS-Systeme funktionieren dann nicht mehr)
Möglichkeit 2. in der Apache Config FollowSymLinks mit SymLinksIfOwnerMatch ersetzen, jedoch muss dann in den entsprechenden CMS-Systemen ebenfalls aus FollowSymLinks mit SymLinksIfOwnerMatch ersetzt werden. Sonst gibt es Einen 500er Error.
Möglichkeit 3. deinen Linuxkernel Patchen um so die Symlinks abzusichern (grsec)
Hoffe ich konnte dir einen kleinen Denkanstoß geben.
MFG Micha
der Titel "... alle User schnüffeln" finde ich mal geil

Also wenn man einen Webserver mit mehreren Usern betreibt, dann sollte man auch mal auf solch einen "Mr. Klugi" hören. Denn teilweise hat er Recht.
Wie hast du denn deinen Webserver eingerichtet? Laufen die Websiten unter /var/www/UserX/ oder unter /home/UserX?
Legst du User an, die nur ihren Webspace verwalten sollen, dann brauchst du keinen SSH Zugriff und brauchst auch keine Angst haben, dass Sie dir so deine Konfiguration ausspionieren können. (Mehr wie spionieren ist mit Lesezugriff nicht drinnen) (SSH-Login in der passwd verbieten)
Um Daten auf den Webspace zu speichern, git es die Möglichkeit über einen FTP-Server jeden User in sein Webspaceordner einzusperren. (chroot)
Damit PHP Scripte nicht bei jedem User Änderungen vornehmen können, solltest du die php.ini für jeden User anpassen und auch unter dem jeweiligen User ausführen (FastCGI)
Nun gibt es noch das Problem namens Apache. Dein Webserver MUSS auf jeden Ordner lesen können. Das kann man leicht machen, indem man die Gruppe www-data auf die Webspace Ordner der User lesezugriff gibt. Nun kann jedoch ein User einen Symlink anlegen und somit Datein anderer User im Browser durch Apache ausgeben lassen. (auch die passwd)
Möglichkeit 1. Symlinks in der Apacheconfig verbieten (Achtung einige CMS-Systeme funktionieren dann nicht mehr)
Möglichkeit 2. in der Apache Config FollowSymLinks mit SymLinksIfOwnerMatch ersetzen, jedoch muss dann in den entsprechenden CMS-Systemen ebenfalls aus FollowSymLinks mit SymLinksIfOwnerMatch ersetzt werden. Sonst gibt es Einen 500er Error.
Möglichkeit 3. deinen Linuxkernel Patchen um so die Symlinks abzusichern (grsec)
Hoffe ich konnte dir einen kleinen Denkanstoß geben.
MFG Micha