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 PluginFolgende 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 PluginFolgende 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
@@ -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 |
---|
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 KonfigurationFü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 KonfigurationFü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.1. Aktivierung von Apache2 modsecurityAufgrund 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. |