[geloest] Rechtevergabe lokale Apache + Wordpress-Installa.

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
leuveg
Beiträge: 121
Registriert: 28.05.2009 16:23:36

[geloest] Rechtevergabe lokale Apache + Wordpress-Installa.

Beitrag von leuveg » 18.07.2014 13:54:41

edit: Titel angepasst und Thema auf geloest gesetzt

Hallo zusammen,

ich wollte mal anfangen mich mit WP-Themebastelleien zu befassen und lege mir dafuer eine lokale Instanz davon an, also ein WP auf meinem eigenen Rechner. Soweit so gut, der ApacheServer laeuft und hoert nur auf den localhost. PHP und MySQL auch alles gut. Die Installation von WP ist eigentlich auch nicht das Problem an sich, sondern eher de ORT der Installation.
Im Ubuntuwiki http://wiki.ubuntuusers.de/Apache#Webse ... d-aufrufen werden nun zwei Wege aufgezeigt, ich hatte mal die benutzerspezifische Version versucht, aber da gab es immer wieder Zugriffsprobleme, lag aber ganz sicher an mir und den vergebenen Rechten. Egal. Meine Frage lautet nun aber: Welche der beiden Variante ist die, welche mehr Sicherheit und Zuverlaessigkeit bietet? Im Grunde ist die Apache-Installation ja von aussen eh nicht zu erreichen, aber man weiss ja nie. Was meint ihr, welche wuerdet ihr verwenden um WP zu Installieren: Systemweit oder Benutzerspezifisch?
Auf dem Rechner gibt es nur zwei Benutzer: root und leuveg <- Das bin ich! :mrgreen:

Gruesse,
L.
Zuletzt geändert von leuveg am 31.07.2014 09:23:23, insgesamt 2-mal geändert.

Benutzeravatar
leuveg
Beiträge: 121
Registriert: 28.05.2009 16:23:36

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von leuveg » 28.07.2014 10:34:43

Da bin ich ja ueberrascht, kann keiner was dazu sagen? Habe ich die Frage bloed gestellt? Oder alle im Urlaub? :mrgreen:

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von hec_tech » 28.07.2014 19:36:08

Der Apache läuft unter www-data. WP würde ich nach /var/www/ installieren. Ist aber eine Frage was du genau willst.
Wenn du mehrere WP Instanzen installieren willst einfach unter /var/www mehrere Folder erstellen. Owner www-data.

Ich würde mir zum entwickeln nicht wirklich das Leben schwer machen. Ich würde mir weniger Sorgen um Angriffe über Apache als um Angriffe über WP selbst machen.
Selbst wenn WP immer am aktuellen Stand ist kannst du dir mit manchen Plugins extreme Sicherheitslücken aufmachen.

DeletedUserReAsG

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von DeletedUserReAsG » 28.07.2014 21:59:42

Wenn man’s etwas einsperren will, wäre ein chroot und/oder suphp/suexec eine Überlegung wert.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von hec_tech » 29.07.2014 08:40:58

In einer Produktivumgebung ok aber bei einer lokalen Testumgebung ist das overkill.

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von uname » 29.07.2014 08:48:05

Mein Apache2 kennt nur einen Benutzer und der nennt sich www-data.

Also ich mache das immer so:
- Ordner /var/www
- Benutzer www-data, Gruppe www-data
- Arbeiten als "root" oder als "www-data" (su - www-data, anmelden darf der sich normalerweise nicht)
- und bei Bedarf falls root mal was falsch kopiert wird alles geradegezogen:

Code: Alles auswählen

chown -R www-data:www-date /var/www
(ist aber teilweise bei nur Lesezugriff gar nicht nötig)
Auf dem Rechner gibt es nur zwei Benutzer: root und leuveg <- Das bin ich!
Schau dir mal

Code: Alles auswählen

cat /etc/passwd 
an. Natürlich hast du viel mehr Benutzer. Unter anderem auch www-data als Benutzer deines Webservers.

Code: Alles auswählen

www-data:x:33:33:www-data:/var/www:/bin/sh

Benutzeravatar
leuveg
Beiträge: 121
Registriert: 28.05.2009 16:23:36

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von leuveg » 29.07.2014 10:18:59

Hei,
also doch jemand da, fein. :)

@uname: Holla, sind viele weitere Benutzer. ^_^ Aber ich meinte mit den nur vorhandenen Nutzern - root und leuveg - dass keine weitere reale Person Zugriff auf meinen Rechner hat, also ich alleine daran in diesen beiden Rollen arbeite. Wieder was gelernt und verinnerlicht. :D

@hec_tech: Danke fuer den Hinweis zu den Plugins, ich werde das also im Hinterkopf behalten. Wobei ich im Moment nur zwei Plugins nutze: 'wp-syntax' und 'Eazyest Gallery'.


Die aktuelle Situation stellt sich nun wie folgt dar:
Also was moechte ich:
  • Auf meinem Notebook eine lokale Instanz von Wordpress laufen lassen um offline am Themelayout zu basteln.
  • Weder Apache noch Wordpress sollen von aussen erreichbar sein, also alles lokal.
  • Außerdem, moechte ich, einziger realer Nutzer auf dem Rechner (auch root), ebenfalls Schreib und -leserechte in /var/www haben, damit ich nicht jedes Mal mit Sudo rumhantieren muss wenn ich was in einer CSS-Datei aendere.
Was ich bisher hinbekommen habe:
  • Ich habe Schreib- und Leserechte in /var/www/... Erreicht durch Mitglied sein in neuer Gruppe www_lokal und anpasen der Rechte und Gruppenzugehoerigkeit von /var/www:

    Code: Alles auswählen

    sudo groupadd www_lokal
    sudo adduser BENUTZERNAME www_lokal
    sudo chgrp www_lokal /var/www
    sudo chmod g+w /var/www
    
    Ergebnis:

    Code: Alles auswählen

    drwxrwxr-x  3 root www_lokal 4096 Jul 28 11:02 www
    
    und ich kann mit meinem normalen Benutzer dort Daten lesen/schreiben. Von dem Tipp das /var/www Verzeichnis mit 777er Rechten zu versehen halte ich nicht viel. Damit funktioniert zwar auch der Plugin-, Theme- und Medienupload und auch das von meinem Benutzer aus ablegen und aendern von Dateien, aber sicher ist solch ein vorgehen bestimmt nicht oder. :?
  • Apache laeuft lokal auf meinem Rechner und ist auch nur von meinen Rechner (127.0.0.1) erreichbar. Erreicht durch editieren der /etc/apache2/ports.config

    Code: Alles auswählen

    Listen localhost:80
  • Wordpress laeuft in /var/www/wordpress/ lokal und sollte somit auch nur lokal erreichbar sein. Gehe ich mal von aus, da der Server auch nur lokal erreichbar ist.
Was nicht funktioniert:
  • Medienupload mit der lokalen Instanz von Wordpress. Die Daten werden ja auch lokal geschrieben, aber WP meldet immer:
    "Bild.jpg" konnte wegen eines Fehlers nicht hochgeladen werden
    Die hochgeladene Datei konnte nicht nach /var/www/wordpress/wp-content/uploads/2014/07 verschoben werden.
  • ebenso der Theme- und Pluginupload. Letzteres laesst sich aber durch einfaches hineinkopieren der entpakten Pluginverzeichnise erreichen.
Es scheint also, dass die Wordpress-Instanz (Apacheserver?) nicht genug Rechte hat dort zu schreiben.

Meine Idee nun, nach etlicher Lektuere:
Den Nutzer www-data, also den Apache, ebenfalls die Gruppe www_lokal einbinden. Das erscheint mir eine gute Vorgehensweise in anbetracht der von mir gewuenschten Punkte von oben und den Hinweisen von euch. Ist das eine sinnvolle Loesung, die mir den Aufwand lokal zu arbeiten gering haellt, ich also fuer Aenderungen in den Dateien der WP-Installation sudo nicht bemuehen muss, aber die Sicherheit meines Rechners nicht in Mitleidenschaft zieht?
Macht es eigentlich einen grossen Unterschied ob ein Verzeichnis root gehoert und ein Benutzer einer bestimmten Gruppe Schreib-/Lesezugriff darauf hat oder das Verzeichnis mit allen Rechten dem Benutzer gehoert? Sobald diese Idee geklaert ist, kanns losgehen. ^_^

Danke schon mal :D
L.

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von uname » 30.07.2014 16:20:27

Ich möchte mich wiederholen. Wenn der Webserver unter "www-data" läuft wäre es ziemlich vorteilhaft, wenn die Ordner auch dem Benutzer "www-data" gehören würden. Dann hast du nämlich nicht die aufgeführten Fehlermeldungen. Wenn du hingegen planst z.B. Webhoster mit fremden Accounts auf einem Webserver zu werden macht es vielleicht Sinn über alternative Berechtigungskonzepte nachzudenken. Dann muss der Webserver für diese Benutzer die Dateien auch speichern können bzw. der Upload erfolgt z.B. per sftp oder ftp. Sicherer wird es durch deinen Ansatz bei deinem Anwendungsbeispiel bestimmt nicht. Also werfe deinen Benutzer/Gruppe weg und nutze nur Benutzer "www-data" mit Gruppe "www-data". Wie gesagt ich habe noch nie alternative Benutzer eingesetzt und ich habe schon viele Webanwendungen rein aus Interesse ausprobiert.

Benutzeravatar
leuveg
Beiträge: 121
Registriert: 28.05.2009 16:23:36

Re: lokaler Apache2: Webseiten ablegen - Systemweit|Benutzer

Beitrag von leuveg » 31.07.2014 09:14:21

Hallo uname,

hab die Version von dir getestet und sie funktoniert, keine Fehlermeldungen mehr. :THX: Habe dann aber das Eigentum des Servers auf das wp-content-Verzeichnis beschraenkt weil:
Die bestehende Gruppe www-data sollte nicht genutzt werden. Mit den Rechten dieser Gruppe läuft der Apache Webserver und sollte ein Angreifer eine Lücke in Apache finden, so erhält er unnötigerweise Schreibrechte im "document root".

Quelle: http://wiki.ubuntuusers.de/Apache#Webse ... d-aufrufen
Auch wenn derzeit bei meiner Installation alles nur lokal angelegt ist, ist es sicher nicht von Nachteil, direkt bei der Rechtevergabe sich anzugewoehnen, nur das notwendige freizugeben. Danke an Dich und die anderen Helfenden. Hab wieder was hinbekommen und gelernt. :THX:

Hilfreich fand ich noch den Tipp auf dieser Seite: http://www.hongkiat.com/blog/update-wor ... thout-ftp/, damit kann man die Abfrage von WP nach einem FTP-Zugang beim Autoupdate von WP, dem Upload von Themes und Plugins abschalten.
In der Datei wordpress/wp-config.php am Ende folgendes eintragen:

Code: Alles auswählen

/** Setzt die Schreibmethode von WP auf direct, damit wird Autoupdate, Theme- und Pluginupload auch bei einer lokalen Installation von WP moeglich. */
define('FS_METHOD','direct');
Jetzt kann ich mich endlich auf das Wesentliche konzentrieren. :D

L.

Antworten