X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch02s06.html;h=59be848d9d8397ee39564af073aedabdfc1efd84;hb=c62a6cabffc11bdb2d3fda2025fef2f3d07c5ba9;hp=b38812d08de5a395282c67c150fc5fc81624e432;hpb=e449cab205e224f7e2cc3cdd37338e3716115979;p=kivitendo-erp.git diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index b38812d08..59be848d9 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,6 +1,6 @@ - 2.6. Webserver-Konfiguration

2.6. Webserver-Konfiguration

2.6.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

Für einen deutlichen Performanceschub sorgt die Ausführung + 2.6. Webserver-Konfiguration

2.6. Webserver-Konfiguration

2.6.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

Für einen deutlichen Performanceschub sorgt die Ausführung mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt Konfiguration für FastCGI/FCGI beschrieben.

Der Zugriff auf das Programmverzeichnis muss in der Apache Webserverkonfigurationsdatei httpd.conf eingestellt @@ -15,8 +15,7 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/ </Directory> <Directory /var/www/kivitendo-erp/users> - Order Deny,Allow - Deny from All + Require all granted </Directory>

Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das kivitendo-Archiv entpacket haben.

[Anmerkung]Anmerkung

Vor den einzelnen Optionen muss bei einigen Distributionen ein Plus ‘+’ gesetzt werden.

Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss @@ -42,9 +41,7 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/ führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile deutlich länger dauert als früher, und dass davon 90% für das Laden der Module verwendet wird.

Mit FastCGI werden nun die Module einmal geladen, und danach - wird nur die eigentliche Programmlogik ausgeführt.

2.6.2.3. Getestete Kombinationen aus Webservern und Plugin

Folgende Kombinationen sind getestet:

  • Apache 2.2.11 (Ubuntu) und mod_fcgid.

  • Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.

  • Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.

Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer - Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf - mod_fastcgi nicht mehr explizit eingegangen.

Als Perl Backend wird das Modul FCGI.pm + wird nur die eigentliche Programmlogik ausgeführt.

2.6.2.3. Getestete Kombinationen aus Webservern und Plugin

Folgende Kombinationen sind getestet:

  • Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.

  • Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid

  • Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid

  • Apache 2.4.41 (Ubuntu 20.04 LTS) und mod_fcgid

Als Perl Backend wird das Modul FCGI.pm verwendet.

[Warnung]Warnung

FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrer @@ -72,12 +69,14 @@ Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ </Directory> <DirectoryMatch /path/to/kivitendo-erp/users> -Require all granted +Require all denied </DirectoryMatch>

[Warnung]Warnung

Wer einen älteren Apache als Version 2.4 im Einsatz hat, muss entsprechend die Syntax der Directorydirektiven verändert. Statt

Require all granted

muß man Folgendes einstellen:

   Order Allow,Deny
-  Allow from All 

Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für + Allow from All

und statt

Require all denied

muss stehen:

+  Order Deny,Allow
+  Deny from All 

Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für die maximale Größe eines Requests. Diese sollte wie folgt hochgesetzt werden:

FcgidMaxRequestLen 10485760

Das Ganze sollte dann so aussehen:

AddHandler fcgid-script .fpl
 AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
@@ -87,13 +86,11 @@ FcgidMaxRequestLen 10485760
 <Directory /path/to/kivitendo-erp>
   AllowOverride All
   Options ExecCGI Includes FollowSymlinks
-  Order Allow,Deny
-  Allow from All
+  Require all granted
 </Directory>
 
 <DirectoryMatch /path/to/kivitendo-erp/users>
-  Order Deny,Allow
-  Deny from All
+Require all denied
 </DirectoryMatch>

Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet. Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden, @@ -107,10 +104,37 @@ AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispat Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/

Dann ist unter /url/for/kivitendo-erp/ die normale Version erreichbar, und unter /url/for/kivitendo-erp-fcgid/ die - FastCGI-Version.

2.6.3. Weitergehende Konfiguration

Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung + FastCGI-Version.

2.6.3. Authentifizierung mittels HTTP Basic Authentication

+ Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt + (siehe RFC 7617). Dazu ist es aber nötig, dass der dabei vom Client + mitgeschickte Header Authorization vom Webserver an Kivitendo über die Umgebungsvariable + HTTP_AUTHORIZATION weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die + folgende Konfigurationsoption aktiviert werden: +

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen

+ Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess + restriktiver geworden und verhindert somit das Auslesen von git basierten Daten. + Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden: +

a2enmod rewrite

+ Alternativ und für Installationen ohne Apache ist folgender Artikel interessant: + git-lücke. + Anstelle des dort beschriebenen DirectoryMatch für Apache2 würden wir etwas weitergehend auch noch das Verzeichnis config miteinbeziehen + sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann. + Die Empfehlung für Apache 2.4 wäre damit: +

+        <DirectoryMatch "/(\.git|config)/">
+          Require all denied
+        </DirectoryMatch>

+ +

2.6.5. Weitergehende Konfiguration

Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung von kivitendo nur über https-verschlüsselten Verbindungen, sowie weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser Anleitung, hier ein Hinweis auf einen entsprechenden Foreneintrag - (Stand Sept. 2015) -

\ No newline at end of file + (Stand Sept. 2015) und einen aktuellen (Stand Mai 2017) + SSL-Konfigurations-Generator.

2.6.6. Aktivierung von Apache2 modsecurity

Aufgrund des OpenSource Charakters ist kivitendo nicht "out of the box" sicher. + Organisatorisch empfehlen wir hier die enge Zusammenarbeit mit einem kivitendo Partner der auch in der +Lage ist weiterführende Fragen in Bezug auf Datenschutz und Datensicherheit zu beantworten. +Unabhängig davon empfehlen wir im Webserver Bereich die Aktivierung und Konfiguration des Moduls modsecurity für den Apache2, damit +XSS und SQL-Injections verhindert werden.

Als Idee hierfür sei dieser Blog-Eintrag genannt: + + Test Apache2 modsecurity for SQL Injection.

\ No newline at end of file