Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cddb2fd7

Von Enrique Morales vor mehr als 1 Jahr hinzugefügt

  • ID cddb2fd70edda3ea92cc6667224f995d0ff61b68
  • Vorgänger ccc063b7
  • Nachfolger bfc04a83

Anleitung für installation mit Ansible hinzugefüegt

Unterschiede anzeigen:

doc/html/ch02s06.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.6. 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.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s07.html" title="2.7. 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.6. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.6. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.6.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1190"></a>2.6.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
4
          mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt
5
          <a class="xref" href="ch02s06.html#Apache-Konfiguration.FCGI" title="2.6.2. Konfiguration für FastCGI/FCGI">Konfiguration für FastCGI/FCGI</a> beschrieben.</p></td></tr></table></div><p>Der Zugriff auf das Programmverzeichnis muss in der Apache
6
        Webserverkonfigurationsdatei <code class="literal">httpd.conf</code> eingestellt
7
        werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
8
        anderen Datei hinzu, die beim Starten des Webservers eingelesen
9
        wird:</p><pre class="programlisting">AliasMatch ^/kivitendo-erp/[^/]+\.pl /var/www/kivitendo-erp/dispatcher.pl
10
Alias /kivitendo-erp/ /var/www/kivitendo-erp/
3
   <title>2.6. Anpassung der PostgreSQL-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.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s07.html" title="2.7. Webserver-Konfiguration"></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.6. Anpassung der PostgreSQL-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.6. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><p>Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden.
4
            Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
5
                  <a class="ulink" href="https://fedoraproject.org/wiki/PostgreSQL" target="_top">Fedora (Postgres-Installation unter Fedora)</a>
6
               </p></li><li class="listitem"><p>
7
                  <a class="ulink" href="https://help.ubuntu.com/lts/serverguide/postgresql.html" target="_top">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</a>
8
               </p></li><li class="listitem"><p>
9
                  <a class="ulink" href="https://de.opensuse.org/PostgreSQL" target="_top">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</a>
10
               </p></li></ul></div><div class="sect2" title="2.6.1. Zeichensätze/die Verwendung von Unicode/UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.6.1. Zeichensätze/die Verwendung von Unicode/UTF-8</h3></div></div></div><p>kivitendo setzt zwingend voraus, dass die Datenbank
11
        Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen
12
        Serverinstallationen braucht man hier meist nicht einzugreifen.</p><p>Das Encoding des Datenbankservers kann überprüft werden. Ist das
13
        Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so braucht
14
        man nichts weiteres diesbezüglich unternehmen. Zum Testen:</p><pre class="programlisting">su postgres
15
echo '\l' | psql
16
exit </pre><p>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
17
        Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
18
        Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl
19
        getan werden:</p><pre class="programlisting">pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername</pre><p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
20
        Versionsnummer angepasst werden.</p><p>Unter anderen Distributionen gibt es ähnliche Methoden.</p><p>Das Encoding einer Datenbank kann in <span class="command"><strong>psql</strong></span> mit
21
        <code class="literal">\l</code> geprüft werden.</p></div><div class="sect2" title="2.6.2. Änderungen an Konfigurationsdateien"><div class="titlepage"><div><div><h3 class="title"><a name="%C3%84nderungen-an-Konfigurationsdateien"></a>2.6.2. Änderungen an Konfigurationsdateien</h3></div></div></div><p>In der Datei <code class="filename">postgresql.conf</code>, die je nach
22
        Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
23
        <code class="filename">/var/lib/pgsql/data/</code> oder
24
        <code class="filename">/etc/postgresql/</code>), muss sichergestellt werden,
25
        dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
26
        Parameter <code class="varname">listen_address</code> gesteuert. Laufen
27
        PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
28
        <code class="literal">localhost</code> verwendet werden. Andernfalls müssen
29
        Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
30
        was mit dem Wert <code class="literal">*</code> geschieht.</p><p>In der Datei <code class="filename">pg_hba.conf</code>, die im gleichen
31
        Verzeichnis wie die <code class="filename">postgresql.conf</code> zu finden
32
        sein sollte, müssen die Berechtigungen für den Zugriff geändert
33
        werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
34
        nötigen Verbindungen immer zuzulassen, für eine lokal laufende
35
        Datenbank zum Beispiel:</p><pre class="programlisting">local all kivitendo password
36
host all kivitendo 127.0.0.1 255.255.255.255 password</pre></div><div class="sect2" title="2.6.3. Erweiterung für servergespeicherte Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren"></a>2.6.3. Erweiterung für servergespeicherte Prozeduren</h3></div></div></div><p>In der Datenbank <code class="literal">template1</code> muss die
37
        Unterstützung für servergespeicherte Prozeduren eingerichet werden.
38
        Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
39
        </p><pre class="programlisting">su - postgres
40
psql template1</pre><p> führen Sie die folgenden Kommandos aus:</p><pre class="programlisting">CREATE EXTENSION IF NOT EXISTS plpgsql;
41
\q</pre><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>
42
                  <code class="literal">CREATE EXTENSION</code> ist seit Version 9.1 die
43
          bevorzugte Syntax um die Sprache <code class="literal">plpgsql</code>
44
          anzulegen. In diesen Versionen ist die Extension meist auch schon
45
          vorhanden. Sollten Sie eine ältere Version von Postgres haben,
46
          benutzen Sie stattdessen den folgenden Befehl.</p><pre class="programlisting">CREATE LANGUAGE 'plpgsql';
47
\q</pre></td></tr></table></div></div><div class="sect2" title="2.6.4. Erweiterung für Trigram Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-trigram"></a>2.6.4. Erweiterung für Trigram Prozeduren</h3></div></div></div><p>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
48
        Diese wird mit dem SQL-Updatescript
49
        sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
50
        Rechten automatisch installiert. Dazu braucht der
51
        DatenbankSuperbenutzer "postgres" ein Passwort.</p><pre class="programlisting">su - postgres
52
psql
53
\password postgres
11 54

  
12
&lt;Directory /var/www/kivitendo-erp&gt;
13
 AddHandler cgi-script .pl
14
 Options ExecCGI Includes FollowSymlinks
15
&lt;/Directory&gt;
16

  
17
&lt;Directory /var/www/kivitendo-erp/users&gt;
18
 Require all granted
19
&lt;/Directory&gt;</pre><p>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher
20
        das kivitendo-Archiv entpacket haben.</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Vor den einzelnen Optionen muss bei einigen Distributionen ein
21
          Plus ‘<code class="literal">+</code>’ gesetzt werden.</p><p>Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss
22
          noch explizit das cgi-Modul mittels </p><pre class="programlisting">a2enmod cgi</pre><p>
23
          aktiviert werden.</p></td></tr></table></div><p>Auf einigen Webservern werden manchmal die Grafiken und
24
        Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
25
        geholfen, die folgende Option in die Konfiguration aufzunehmen:</p><pre class="programlisting">EnableSendfile Off</pre></div><div class="sect2" title="2.6.2. Konfiguration für FastCGI/FCGI"><div class="titlepage"><div><div><h3 class="title"><a name="Apache-Konfiguration.FCGI"></a>2.6.2. Konfiguration für FastCGI/FCGI</h3></div></div></div><div class="sect3" title="2.6.2.1. Was ist FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WasIstEs"></a>2.6.2.1. Was ist FastCGI?</h4></div></div></div><p>Direkt aus <a class="ulink" href="http://de.wikipedia.org/wiki/FastCGI" target="_top">Wikipedia</a>
26
          kopiert:</p><p>
27
                  [<span class="citation"> FastCGI ist ein Standard für die Einbindung
28
          externer Software zur Generierung dynamischer Webseiten in einem
29
          Webserver. FastCGI ist vergleichbar zum Common Gateway Interface
30
          (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu
31
          umgehen. </span>]
32
               </p></div><div class="sect3" title="2.6.2.2. Warum FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Warum"></a>2.6.2.2. Warum FastCGI?</h4></div></div></div><p>Perl Programme (wie kivitendo eines ist) werden nicht statisch
33
          kompiliert. Stattdessen werden die Quelldateien bei jedem Start
34
          übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit
35
          ausmacht. Während SQL Ledger einen Großteil der Funktionalität in
36
          einzelne Module kapselt, um immer nur einen kleinen Teil laden zu
37
          müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass
38
          immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich
39
          benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
40
          entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies
41
          führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile
42
          deutlich länger dauert als früher, und dass davon 90% für das Laden
43
          der Module verwendet wird.</p><p>Mit FastCGI werden nun die Module einmal geladen, und danach
44
          wird nur die eigentliche Programmlogik ausgeführt.</p></div><div class="sect3" title="2.6.2.3. Getestete Kombinationen aus Webservern und Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WebserverUndPlugin"></a>2.6.2.3. Getestete Kombinationen aus Webservern und Plugin</h4></div></div></div><p>Folgende Kombinationen sind getestet:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</p></li><li class="listitem"><p>Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.41 (Ubuntu 20.04 LTS) und mod_fcgid</p></li></ul></div><p>Als Perl Backend wird das Modul <code class="filename">FCGI.pm</code>
45
          verwendet.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem
46
            strict in der Behandlung von Unicode, und verweigern bestimmte
47
            Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrer
48
            Installation gibt, muss zwingend Version 0.68 oder aber Version
49
            0.72 und neuer eingesetzt werden.</p><p>Mit <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> lässt sie
50
            sich die Vorgängerversion wie folgt installieren:</p><pre class="programlisting">force install M/MS/MSTROUT/FCGI-0.68.tar.gz</pre></td></tr></table></div></div><div class="sect3" title="2.6.2.4. Konfiguration des Webservers"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Konfiguration"></a>2.6.2.4. Konfiguration des Webservers</h4></div></div></div><p>Bevor Sie versuchen, eine kivitendo Installation unter FCGI
51
          laufen zu lassen, empfiehlt es sich die Installation ersteinmal
52
          unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu
53
          debuggen die beim ersten aufsetzen auftreten können. Sollte die
54
          Installation schon funktionieren, lesen Sie weiter.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
55
          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
56
          erfolgt durch Anpassung der vorhandenen <code class="function">Alias</code>-
57
          und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
58
          dem Installationspfad von kivitendo im Dateisystem
59
          ("<code class="filename">/path/to/kivitendo-erp</code>") und der URL
60
          unterschieden, unter der kivitendo im Webbrowser erreichbar ist
61
          ("<code class="filename">/url/for/kivitendo-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
62
          mod_fastcgi:</p><pre class="programlisting">AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
63
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
64

  
65
&lt;Directory /path/to/kivitendo-erp&gt;
66
  AllowOverride All
67
  Options ExecCGI Includes FollowSymlinks
68
  Require all granted
69
&lt;/Directory&gt;
70

  
71
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
72
Require all denied
73
&lt;/DirectoryMatch&gt;</pre><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>Wer einen älteren Apache als Version 2.4 im Einsatz hat,
74
            muss entsprechend die Syntax der Directorydirektiven verändert.
75
            Statt</p><pre class="programlisting">Require all granted</pre><p>muß man Folgendes einstellen:</p><pre class="programlisting">
76
  Order Allow,Deny
77
  Allow from All </pre><p>und statt</p><pre class="programlisting">Require all denied</pre><p>muss stehen:</p><pre class="programlisting">
78
  Order Deny,Allow
79
  Deny from All </pre></td></tr></table></div><p>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
80
          die maximale Größe eines Requests. Diese sollte wie folgt
81
          hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das Ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
82
AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
83
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
84
FcgidMaxRequestLen 10485760
85

  
86
&lt;Directory /path/to/kivitendo-erp&gt;
87
  AllowOverride All
88
  Options ExecCGI Includes FollowSymlinks
89
  Require all granted
90
&lt;/Directory&gt;
91

  
92
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
93
Require all denied
94
&lt;/DirectoryMatch&gt;</pre><p>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle
95
          Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet.
96
          Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden,
97
          gibt es hier kleine Performance-Einbußen.</p><p>Es ist möglich, die gleiche kivitendo Version parallel unter
98
          CGI und FastCGI zu betreiben. Dafür bleiben die Directorydirektiven
99
          wie oben beschrieben, die URLs werden aber umgeleitet:</p><pre class="programlisting"># Zugriff über CGI
100
Alias       /url/for/kivitendo-erp                /path/to/kivitendo-erp
101

  
102
# Zugriff mit mod_fcgid:
103
AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
104
Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</pre><p>Dann ist unter <code class="filename">/url/for/kivitendo-erp/</code>
105
          die normale Version erreichbar, und unter
106
          <code class="constant">/url/for/kivitendo-erp-fcgid/</code> die
107
          FastCGI-Version.</p></div></div><div class="sect2" title="2.6.3. Authentifizierung mittels HTTP Basic Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1344"></a>2.6.3. Authentifizierung mittels HTTP Basic Authentication</h3></div></div></div><p>
108
        Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
109
        (siehe <a class="ulink" href="https://tools.ietf.org/html/rfc7617" target="_top">RFC 7617</a>). Dazu ist es aber nötig, dass der dabei vom Client
110
        mitgeschickte Header <code class="constant">Authorization</code> vom Webserver an Kivitendo über die Umgebungsvariable
111
        <code class="constant">HTTP_AUTHORIZATION</code> weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die
112
        folgende Konfigurationsoption aktiviert werden:
113
       </p><pre class="programlisting">SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1</pre></div><div class="sect2" title="2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1360"></a>2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</h3></div></div></div><p>
114
        Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess
115
        restriktiver geworden und verhindert somit das Auslesen von git basierten Daten.
116
        Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden:
117
        </p><pre class="programlisting">a2enmod rewrite</pre><p>
118
        Alternativ und für Installationen ohne Apache ist folgender Artikel interessant:
119
        <a class="ulink" href="https://www.cyberscan.io/blog/git-luecke" target="_top">git-lücke</a>.
120
        Anstelle des dort beschriebenen DirectoryMatch für Apache2 würden wir etwas weitergehend auch noch das Verzeichnis config miteinbeziehen
121
        sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann.
122
        Die Empfehlung für Apache 2.4 wäre damit:
123
        </p><pre class="programlisting">
124
        &lt;DirectoryMatch "/(\.git|config)/"&gt;
125
          Require all denied
126
        &lt;/DirectoryMatch&gt;</pre><p>
127
       
128
            </p></div><div class="sect2" title="2.6.5. Weitergehende Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1374"></a>2.6.5. Weitergehende Konfiguration</h3></div></div></div><p>Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung
129
        von kivitendo nur über https-verschlüsselten Verbindungen, sowie
130
        weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die
131
        Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
132
        Anleitung, hier ein Hinweis auf einen entsprechenden <a class="ulink" href="https://www.kivitendo.de/boards/1/topics/142" target="_top">Foreneintrag
133
        (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">
134
        SSL-Konfigurations-Generator</a>.</p></div><div class="sect2" title="2.6.6. Aktivierung von Apache2 modsecurity"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1385"></a>2.6.6. Aktivierung von Apache2 modsecurity</h3></div></div></div><p>Aufgrund des OpenSource Charakters ist kivitendo nicht "out of the box" sicher.
135
  Organisatorisch empfehlen wir hier die enge Zusammenarbeit mit einem kivitendo Partner der auch in der
136
Lage ist weiterführende Fragen in Bezug auf Datenschutz und Datensicherheit zu beantworten.
137
Unabhängig davon empfehlen wir im Webserver Bereich die Aktivierung und Konfiguration des Moduls modsecurity für den Apache2, damit
138
XSS und SQL-Injections verhindert werden.</p><p> Als Idee hierfür sei dieser Blog-Eintrag genannt:
139
<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">
140
        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="ch02s05.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s07.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.5. Anpassung der PostgreSQL-Konfiguration&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.7. Der Task-Server</td></tr></table></div></body></html>
55
Eingabe Passwort
56
\q</pre><p>Benutzername Postgres und Passwort können jetzt beim Anlegen
57
        einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
58
        benötigen, eingegeben werden.</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>
59
                  <code class="literal">pg_trgm</code> ist je nach Distribution nicht im
60
          Standard-Paket von Postgres enthalten. Ein </p><pre class="programlisting">select * from pg_available_extensions where name ='pg_trgm';</pre><p>
61
          in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
62
          das Paket nachinstalliert werden, bspw. bei debian/ubuntu
63
          </p><pre class="programlisting">apt install postgresql-contrib</pre><p>
64
               </p></td></tr></table></div></div><div class="sect2" title="2.6.5. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.6.5. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
65
        benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
66
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
67
        können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit
68
        nein beantworten, genauso ist die Berechtigung neue User (Roles) zu
69
        generieren nicht nötig.</p><pre class="programlisting">su - postgres
70
createuser -d -P kivitendo
71
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
72
        Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo”
73
        bzw. den hier gewählten Benutzernamen.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s05.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s07.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.5. kivitendo-Konfigurationsdatei&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.7. Webserver-Konfiguration</td></tr></table></div></body></html>

Auch abrufbar als: Unified diff