X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch02s06.html;h=c0614ca1243758dd3950bf870f00a555627d7f0d;hb=4af639717afee7911c70653b6166d10a7e1f2bae;hp=a85dde1ae804b37acd556c23ea69e0cf3978a644;hpb=eb496376260c7360d5bc53d865c38d47a9685fda;p=kivitendo-erp.git diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index a85dde1ae..c0614ca12 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,6 +1,6 @@
-Anmerkung | ||||||
---|---|---|---|---|---|---|
Für einen deutlichen Performanceschub sorgt die Ausführung +
Der Zugriff auf das Programmverzeichnis muss in der Apache
Webserverkonfigurationsdatei Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das kivitendo-Archiv entpacket haben.
Auf einigen Webservern werden manchmal die Grafiken und
+ Plus â Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss + noch explizit das cgi-Modul mittels a2enmod cgi + aktiviert werden. |
Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die folgende Option in die Konfiguration aufzunehmen:
EnableSendfile Off
Direkt aus Wikipedia kopiert:
@@ -42,13 +41,13 @@ 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.
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
- verwendet.
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 Installation gibt, muss zwingend Version 0.68 oder - aber Version 0.72 und neuer eingesetzt werden. Mit CPAN lässt sie sich die Vorgängerversion wie folgt - installieren: force install M/MS/MSTROUT/FCGI-0.68.tar.gz |
Bevor Sie versuchen, eine kivitendo Installation unter FCGI + wird nur die eigentliche Programmlogik ausgeführt.
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 | |
---|---|
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 + Installation gibt, muss zwingend Version 0.68 oder aber Version + 0.72 und neuer eingesetzt werden. Mit CPAN lässt sie + sich die Vorgängerversion wie folgt installieren: force install M/MS/MSTROUT/FCGI-0.68.tar.gz |
Bevor Sie versuchen, eine kivitendo Installation unter FCGI laufen zu lassen, empfiehlt es sich die Installation ersteinmal unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu debuggen die beim ersten aufsetzen auftreten können. Sollte die @@ -70,10 +69,14 @@ Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ </Directory> <DirectoryMatch /path/to/kivitendo-erp/users> -Require all granted -</DirectoryMatch>
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: +Require all denied +</DirectoryMatch>
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 @@ -83,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, @@ -103,9 +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.
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) -
+ 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
+ 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>
+ +
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) und einen aktuellen (Stand Mai 2017) + SSL-Konfigurations-Generator.
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.