File: cgisecurity.html

package info (click to toggle)
icinga 1.0.2-2%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 33,952 kB
  • ctags: 13,294
  • sloc: xml: 154,821; ansic: 99,198; sh: 14,585; sql: 5,852; php: 5,126; perl: 2,838; makefile: 1,268
file content (233 lines) | stat: -rw-r--r-- 12,826 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Verbesserte CGI-Sicherheit und Authentifizierung</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<meta name="keywords" content="Supervision, Icinga, Icinga, Linux">
<link rel="home" href="index.html" title="Icinga Version 1.0.2 Dokumentation">
<link rel="up" href="ch07.html" title="Kapitel 7. Sicherheit und Leistungsoptimierung">
<link rel="prev" href="security.html" title="Sicherheitsüberlegungen">
<link rel="next" href="tuning.html" title="Icinga für maximale Leistung optimieren">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<CENTER><IMG src="../images/logofullsize.png" border="0" alt="Icinga" title="Icinga"></CENTER>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Verbesserte CGI-Sicherheit und Authentifizierung</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="security.html">Zurück</a> </td>
<th width="60%" align="center">Kapitel 7. Sicherheit und Leistungsoptimierung</th>
<td width="20%" align="right"> <a accesskey="n" href="tuning.html">Weiter</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" title="Verbesserte CGI-Sicherheit und Authentifizierung">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="cgisecurity"></a>Verbesserte CGI-Sicherheit und Authentifizierung</h2></div></div></div>
  

  <p><span class="bold"><strong>Einführung</strong></span></p>

  <div class="mediaobject" align="right"><img src="../images/security.png" align="right"></div>

  <p>Dies ist als eine Einführung für die Implementierung stärkerer Authentifizierung und Server-Sicherheit bezogen auf das
  CGI-Web-Interface gedacht.</p>

  <p>Es gibt viele Wege, die Sicherheit Ihres Überwachungs-Servers und des Icinga-Umfeldes zu verbessern. Dies sollte
  nicht als das Ende aller Bemühungen angesehen werden. Nehmen Sie es statt dessen als eine Einführung für einige der Techniken,
  die Sie nutzen können, um die Sicherheit Ihres System zu verstärken. Wie immer sollten Sie forschen und die besten Techniken
  nutzen, die verfügbar sind. Behandeln Sie Ihren Überwachungs-Server, als wäre es der wichtigste Server in Ihrem Netzwerk und Sie
  werden belohnt werden.</p>

  <p><a name="cgisecurity-additionaltechniques"></a> <span class="bold"><strong>Zusätzliche Techniken</strong></span></p>

  <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
      <p><span class="bold"><strong>Stärkere Authentifizierung durch Digest Authentication</strong></span>. Wenn Sie den <a class="link" href="quickstart" target="_top">Schnellstartanleitungen</a> gefolgt sind, werden Sie wahrscheinlich Apaches <a class="link" href="http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html" target="_top">Basic Authentication</a> nutzen. "Basic
      Authentication" wird Benutzer und Password bei jedem HTTP-Request im Klartext übertragen. Ziehen Sie eine sicherere
      Authentifierungsmethode wie z.B. <a class="link" href="http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html" target="_top">Digest
      Authentication</a> in Betracht, die aus Ihrem Benutzernamen und Passwort einen MD5-Hash erzeugt, der bei jeder Anfrage
      gesendet wird.</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>Erzwingen von TLS/SSL für jede Web-Kommunikation</strong></span>. Apache bietet <a class="link" href="http://de.wikipedia.org/wiki/Transport_Layer_Security" target="_top">TLS/SSL</a> durch das <a class="link" href="http://httpd.apache.org/docs/2.2/mod/mod_ssl.html" target="_top">mod_ssl</a>-Modul. TLS/SSL bietet einen sicheren Tunnel
      zwischen Client und Server, der Abhören und Verfälschung durch starke publickey/privatekey-Kryptographie verhindert.</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>Beschränken Sie Apache mit Hilfe von Zugangskontrollen</strong></span>. Überlegen Sie, ob Sie
      den Zugang zur Icinga-Box auf Ihre IP-Adresse, IP-Adressbereich oder IP-Subnetz beschränken. Wenn Sie Zugang von
      außen auf Ihr Netzwerk benötigen, können Sie VPN und SSH-Tunnel nutzen. Es ist einfach, den Zugang zu Ihrem System auf
      HTTP/HTTPS zu begrenzen.</p>
    </li>
</ul></div>

  <p><a name="cgisecurity-implementation-digest"></a> <span class="bold"><strong>Implementieren der Digest
  Authentication</strong></span></p>

  <p>Die Implementierung der Digest Authentication ist einfach. Dazu müssen Sie den neuen Typ der Passwort-Datei mit dem <a class="link" href="http://httpd.apache.org/docs/2.2/programs/htdigest.html" target="_top">'htdigest'</a>-Tool anlegen, dann die
  Apache-Konfiguration für Icinga anpassen (typischerweise /etc/httpd/conf.d/icinga.conf).</p>

  <p>Legen Sie eine neue Passwort-Datei mit dem <a class="link" href="http://httpd.apache.org/docs/2.2/programs/htdigest.html" target="_top">'htdigest'</a>-Tool an. Den Unterschied, den Sie
  feststellen werden, wenn Sie mit dem <a class="link" href="http://httpd.apache.org/docs/2.2/programs/htpasswd.html" target="_top">'htpasswd'</a>-Tool vertraut sind, ist die Anforderung,
  ein 'Realm'-Parameter anzugeben. In diesem Fall bezieht sich 'realm' auf den Wert der 'AuthName'-Direktive in der
  Apache-Konfiguration.</p>

  <pre class="screen"> htdigest -c /usr/local/icinga/etc/.digest_pw "Icinga Access" icingaadmin</pre>

  <p>Als nächstes editieren Sie die Apache-Konfigurationsdatei für Icinga (typischerweise /etc/httpd/conf.d/icinga.conf) mit
  Hilfe des folgenden Beispiels:</p>

  <pre class="screen"> ## BEGIN APACHE CONFIG SNIPPET - Icinga.CONF
 ScriptAlias /icinga/cgi-bin "/usr/local/icinga/sbin"
 &lt;Directory "/usr/local/icinga/sbin"&gt;
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Digest
    AuthName "Icinga Access"
    AuthUserFile /usr/local/icinga/etc/.digest_pw
    Require valid-user
 &lt;/Directory&gt;
 Alias /icinga "/usr/local/icinga/share"
 &lt;Directory "/usr/local/icinga/share"&gt;
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Digest
    AuthName "Icinga Access"
    AuthUserFile /usr/local/icinga/etc/.digest_pw
    Require valid-user
 &lt;/Directory&gt;
 ## END APACHE CONFIG SNIPPETS</pre>

  <p>Danach starten Sie den Apache-Service, damit die neuen Einstellungen aktiv werden können.</p>

  <pre class="screen"> /etc/init.d/httpd restart</pre>

  <p><a name="cgisecurity-implementation-ssl"></a> <span class="bold"><strong>Implementieren erzwungener
  TLS/SSL-Kommunikation</strong></span></p>

  <p>Stellen Sie sicher, dass Sie Apache und OpenSSL installiert haben. Normalerweise sollten Sie <a class="link" href="http://httpd.apache.org/docs/2.2/mod/mod_ssl.html" target="_top">mod_ssl</a>-Unterstützung haben. Falls Sie trotzdem
  Schwierigkeiten haben, finden Sie ggf. Hilfe durch das Lesen von Apaches <a class="link" href="http://httpd.apache.org/docs/2.0/ssl" target="_top">TLS/SSL Encryption Documentation</a>.</p>

  <p>Als nächstes prüfen Sie durch den Aufruf des Icinga-Web-Interfaces über HTTPS (https://your.domain/Icinga),
  dass die TLS/SSL-Unterstützung funktioniert. Wenn es funktioniert, können Sie mit den nächsten Schritten fortfahren, die die
  Nutzung von HTTPS erzwingen und alle HTTP-Anfragen an das Icinga-Web-Interface blockiert. Wenn Sie Schwierigkeiten haben,
  lesen Sie bitte Apaches <a class="link" href="http://httpd.apache.org/docs/2.0/ssl" target="_top">TLS/SSL Encryption Documentation</a>
  und nutzen Sie <a class="link" href="http://www.google.com" target="_top">Google</a> für die Suche nach Lösungen zu Ihrer
  Apache-Installation.</p>

  <p>Danach editieren Sie die Apache-Konfigurationsdatei für Icinga (typischerweise /etc/httpd/conf.d/icinga.conf) und fügen
  Sie den 'sbin'- und 'share'-Verzeichnissen die 'SSLRequireSSL'-Direktive hinzu.</p>

  <pre class="screen"> ## BEGIN APACHE CONFIG SNIPPET - Icinga.CONF
 ScriptAlias /icinga/cgi-bin "/usr/local/icinga/sbin"
 &lt;Directory "/usr/local/icinga/sbin"&gt;
    ...
    SSLRequireSSL
    ...
 &lt;/Directory&gt;
 Alias /icinga "/usr/local/icinga/share"
 &lt;Directory "/usr/local/icinga/share"&gt;
    ...
    SSLRequireSSL
    ...
 &lt;/Directory&gt;
 ## END APACHE CONFIG SNIPPETS</pre>

  <p>Danach starten Sie den Apache-Service, damit die neuen Einstellungen aktiv werden können.</p>

  <pre class="screen"> /etc/init.d/httpd restart</pre>

  <p><a name="cgisecurity-implementation-lockdown"></a> <span class="bold"><strong>Implementieren von
  IP-Subnetz-Beschränkung</strong></span></p>

  <p>Das folgende Beispiel zeigt, wie Sie den Zugang auf die Icinga-CGIs auf eine bestimmte IP-Adresse, einen
  IP-Adressbereich oder ein IP-Subnetz mit Hilfe von Apaches <a class="link" href="http://httpd.apache.org/docs/2.2/howto/access.html" target="_top">Access Controls</a> beschränken.</p>

  <p>Danach editieren Sie die Apache-Konfigurationsdatei für Icinga (typischerweise /etc/httpd/conf.d/icinga.conf) und fügen
  Sie die 'Allow'-, 'Deny'- und 'Order'-Direktiven hinzu. Dazu folgendes Beispiel:</p>

  <pre class="screen"> ## BEGIN APACHE CONFIG SNIPPET - Icinga.CONF
 ScriptAlias /icinga/cgi-bin "/usr/local/icinga/sbin"
 &lt;Directory "/usr/local/icinga/sbin"&gt;
    ...
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 10.0.0.25               # Allow single IP addresses
    Allow from 10.0.0.0/255.255.255.0            # Allow network/netmask pair
    Allow from 10.0.0.0/24                       # Allow network/nnn CIDR spec
    ...
 &lt;/Directory&gt;
 Alias /icinga "/usr/local/icinga/share"
 &lt;Directory "/usr/local/icinga/share"&gt;
    ...
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 10.0.0.25               # Allow single IP addresses
    Allow from 10.0.0.0/255.255.255.0            # Allow network/netmask pair
    Allow from 10.0.0.0/24                       # Allow network/nnn CIDR spec
    ...
 &lt;/Directory&gt;
 ## END APACHE CONFIG SNIPPET</pre>

  <p><a name="cgisecurity-importantnotes"></a> <span class="bold"><strong>Wichtige Anmerkungen</strong></span></p>

  <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
      <p><span class="bold"><strong>Digest Authentication sendet Daten im Klartext, aber nicht Ihren Benutzernamen und
      Passwort</strong></span> .</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>Digest Authentication ist nicht ganz so gut unterstützt wie Basic Authentication</strong></span>
      .</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>TLS/SSL hat das Potential für einen "Man-in-the-middle-Angriff"</strong></span>. MITM-Angriffe machen
      verletzbar, wenn ein Angreifer in der Lage ist, sich zwischen Server und Client zu schieben wie bei einem Phishing-Angriff,
      ISP-Monitoring oder Resignierung von Unternehmens-LAN Firewall-Zertifikaten. Bitte machen Sie sich kundig zu
      Zertifikats-Verifikation!</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>Apache Access Controls schützen nur die HTTP/HTTPS-Protokolle</strong></span> . Sehen Sie sich
      <a class="link" href="http://www.netfilter.org/projects/iptables/index.html" target="_top">IPtables</a> für eine starke systemweite
      Firewall-Kontrolle an.</p>
    </li>
<li class="listitem">
      <p><span class="bold"><strong>Am wichtigsten: Sicherheit ist ein bewegliches Ziel, also bleiben Sie informiert und forschen
      Sie</strong></span> ! Vielleicht durch das Anhören eines Podcasts wie z.B. "<a class="link" href="http://www.grc.com/securitynow.htm" target="_top">Security Now!</a>".</p>
    </li>
</ul></div>
  <a class="indexterm" name="id5608563"></a>
  <a class="indexterm" name="id5608577"></a>
  <a class="indexterm" name="id5608584"></a>
  <a class="indexterm" name="id5608595"></a>
  <a class="indexterm" name="id5608605"></a>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="security.html">Zurück</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch07.html">Nach oben</a></td>
<td width="40%" align="right"> <a accesskey="n" href="tuning.html">Weiter</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Sicherheitsüberlegungen </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td>
<td width="40%" align="right" valign="top"> Icinga für maximale Leistung optimieren</td>
</tr>
</table>
</div>
<P class="copyright">© 2009-2010 Icinga Development Team, http://www.icinga.org</P>
</body>
</html>