2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 <title>2.7. Webserver-Konfiguration</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.9.2: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s06.html" title="2.6. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s08.html" title="2.8. Der Task-Server"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.7. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.7. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.7. Webserver-Konfiguration</h2></div></div></div><p>In diesem Abschnitt wird die Konfiguration des Apache-Webservers
4 beschrieben. kivitendo wird mittels FastCGI/FCGI ausgeführt.</p><p>Es ist empfehlenswert, SSL einzusetzen, um die Daten per HTTPS
5 verschlüsselt zwischen Browser und Webserver über das Netzwerk zu
6 übertragen. Eine Möglichkeit dazu ist das Erstellen eines self-signed
7 SSL Zertifikates, was unter Debian/Ubuntu durch Installieren des Pakets
8 <code class="literal">ssl-cert</code> geschehen kann.</p><p>Der Zugriff auf den Installationspfad von kivitendo im Dateisystem
9 muss in der Apache Webserverkonfigurationsdatei eingestellt werden,
10 welche beim Starten des Webservers eingelesen wird. Wird SSL/HTTPS
11 eingesetzt, so ist dies die Datei <code class="literal">default-ssl.conf</code>,
12 für unverschlüsseltes HTTP ist es die Datei
13 <code class="literal">000-default.conf</code>.</p><p>Bitte konsultieren Sie die Dokumentation des Apache-Webservers und
14 Ihres Betriebssystems. Es kann erforderlich sein, das SSL-Modul und die
15 Webserverkonfigurationsdatei zu aktivieren:</p><pre class="programlisting">a2enmod ssl
16 a2ensite default-ssl</pre><p>Unter Fedora und openSUSE müssen weiterhin in der Firewall die
17 Ports 80 (HTTP) bzw. 443 (HTTPS) geöffnet werden.</p><div class="sect2" title="2.7.1. Konfiguration für FastCGI/FCGI"><div class="titlepage"><div><div><h3 class="title"><a name="Apache-Konfiguration.FCGI"></a>2.7.1. Konfiguration für FastCGI/FCGI</h3></div></div></div><p>Mit FastCGI wird der kivitendo-Programmcode beim Start des
18 Webservers einmal geladen und danach wird nur die eigentliche
19 Programmlogik ausgeführt.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
20 unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:</p><pre class="programlisting">a2enmod fcgid</pre><p>Die Konfiguration für die Verwendung von kivitendo mit FastCGI
21 erfolgt durch Einfügen von <code class="function">Alias</code>-
22 und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
23 dem Installationspfad von kivitendo im Dateisystem
24 ("<code class="filename">/path/to/kivitendo-erp</code>") und der URL
25 unterschieden, unter der kivitendo im Webbrowser erreichbar ist
26 ("<code class="filename">/url/for/kivitendo-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
27 mod_fcgid:</p><pre class="programlisting">AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
28 Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/
29 FcgidMaxRequestLen 10485760
31 <Directory /path/to/kivitendo-erp>
33 Options ExecCGI Includes FollowSymlinks
37 <DirectoryMatch /path/to/kivitendo-erp/users>
39 </DirectoryMatch></pre><p>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle
40 Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet.
41 Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden,
42 gibt es hier kleine Performance-Einbußen.</p><p>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
43 die maximale Größe eines Requests. Mit folgender Zeile wird diese
44 Grenze hochgesetzt:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre></div><div class="sect2" title="2.7.2. Aktivierung von mod_rewrite/directory_match für git basierte Installationen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1359"></a>2.7.2. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</h3></div></div></div><p>
45 Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess
46 restriktiver geworden und verhindert somit das Auslesen von git basierten Daten.
47 Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden:
48 </p><pre class="programlisting">a2enmod rewrite</pre><p>
49 Alternativ und für Installationen ohne Apache ist folgender Artikel interessant:
50 <a class="ulink" href="https://www.cyberscan.io/blog/git-luecke" target="_top">git-lücke</a>.
51 Anstelle des dort beschriebenen DirectoryMatch für Apache2 würden wir etwas weitergehend auch noch das Verzeichnis config miteinbeziehen
52 sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann.
53 Die Empfehlung für Apache 2.4 wäre damit:
54 </p><pre class="programlisting">
55 <DirectoryMatch "/(\.git|config)/">
57 </DirectoryMatch></pre><p>
59 </p></div><div class="sect2" title="2.7.3. Weitergehende Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1373"></a>2.7.3. Weitergehende Konfiguration</h3></div></div></div><p>Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung
60 von kivitendo nur über https-verschlüsselten Verbindungen, sowie
61 weiteren Zusatzmassnahmen, wie beispielsweise Basic Authentication. Die
62 Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
63 Anleitung, hier ein Hinweis auf einen entsprechenden <a class="ulink" href="https://www.kivitendo.de/redmine/boards/1/topics/142" target="_top">Foreneintrag
64 (Stand Sept. 2015)</a> und einen aktuellen (Stand Mai 2017) <a class="ulink" href="https://mozilla.github.io/server-side-tls/ssl-config-generator/" target="_top">
65 SSL-Konfigurations-Generator</a>.</p></div><div class="sect2" title="2.7.4. Aktivierung von Apache2 modsecurity"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1384"></a>2.7.4. Aktivierung von Apache2 modsecurity</h3></div></div></div><p>Aufgrund des OpenSource Charakters ist kivitendo nicht "out of the box" sicher.
66 Organisatorisch empfehlen wir hier die enge Zusammenarbeit mit einem kivitendo Partner der auch in der
67 Lage ist weiterführende Fragen in Bezug auf Datenschutz und Datensicherheit zu beantworten.
68 Unabhängig davon empfehlen wir im Webserver Bereich die Aktivierung und Konfiguration des Moduls modsecurity für den Apache2, damit
69 XSS und SQL-Injections verhindert werden.</p><p> Als Idee hierfür sei dieser Blog-Eintrag genannt:
70 <a class="ulink" href="https://doxsec.wordpress.com/2017/06/11/using-modsecurity-web-application-firewall-to-prevent-sql-injection-and-xss-using-blocking-rules/" target="_top">
71 Test Apache2 modsecurity for SQL Injection</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s08.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.6. Anpassung der PostgreSQL-Konfiguration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.8. Der Task-Server</td></tr></table></div></body></html>