File: security.html

package info (click to toggle)
icinga 1.14.2%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 49,264 kB
  • sloc: ansic: 108,564; sql: 9,656; sh: 4,945; perl: 3,439; makefile: 1,213; php: 581; xml: 104
file content (182 lines) | stat: -rw-r--r-- 14,745 bytes parent folder | download
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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>8.1. Sicherheitsüberlegungen</title>
<link rel="stylesheet" href="../stylesheets/icinga-docs.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<meta name="keywords" content="Supervision, Icinga, Nagios, Linux">
<link rel="home" href="index.html" title="Icinga Version 1.14 Dokumentation">
<link rel="up" href="ch08.html" title="Kapitel 8. Sicherheit und Leistungsoptimierung">
<link rel="prev" href="ch08.html" title="Kapitel 8. Sicherheit und Leistungsoptimierung">
<link rel="next" href="cgisecurity.html" title="8.2. Verbesserte Classic UI Modul-Sicherheit und Authentifizierung">
<script src="../js/jquery-min.js" type="text/javascript"></script><script src="../js/icinga-docs.js" type="text/javascript"></script>
</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">8.1. Sicherheitsüberlegungen</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch08.html">Zurück</a> </td>
<th width="60%" align="center">Kapitel 8. Sicherheit und Leistungsoptimierung</th>
<td width="20%" align="right"> <a accesskey="n" href="cgisecurity.html">Weiter</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" title="8.1. Sicherheitsüberlegungen">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="security"></a>8.1. Sicherheitsüberlegungen</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section">8.1.1. <a href="security.html#introduction">Einführung</a></span></dt>
<dt><span class="section">8.1.2. <a href="security.html#bestpractices">Optimale Verfahren</a></span></dt>
</dl></div>
  

  <div class="section" title="8.1.1. Einführung">
<div class="titlepage"><div><div><h3 class="title">
<a name="introduction"></a>8.1.1. Einführung</h3></div></div></div>
    

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

    <p>Dies ist als ein kurzer Überblick einiger Dinge gedacht, die Sie bei der Installation von Icinga im Hinterkopf behalten
    sollten, um es in einer sicheren Weise aufzusetzen.</p>

    <p>Ihr Überwachungsrechner sollte als eine Hintertür in Ihre anderen System betrachtet werden. In vielen Fällen wird dem
    Icinga-Rechner der Zugriff auf Firewalls gewährt, um entfernte Server zu überwachen. In den meisten Fällen ist die Abfrage von
    verschiedenen Informationen der entfernten Server erlaubt. Überwachenden Servern wird ein gewisses Maß an Vertrauen entgegen gebracht,
    damit sie entfernte Systeme abfragen können. Das bietet einem potenziellen Angreifer eine attraktive Hintertür zu Ihren Systemen. Ein
    Angreifer könnte es einfacher haben, in Ihre Systeme einzudringen, wenn er zuerst den Überwachungsserver kompromittiert. Das trifft
    besonders dann zu, wenn Sie gemeinsame SSH-Schlüssel nutzen, um entfernte Systeme zu überwachen.</p>

    <p>Wenn ein Eindringling in der Lage ist, Prüfergebnisse oder externe Befehle an den Icinga-Daemon zu erteilen, hat er die
    Möglichkeit, falsche Überwachungsdaten zu übertragen, Sie mit falschen Benachrichtigungen auf die Palme bringen oder
    Eventhandler-Scripte auszulösen. Wenn Sie Eventhandler-Scripte haben, die Services neu starten, Strom unterbrechen usw., dann kann das
    ziemlich problematisch sein.</p>

    <p>Ein weiterer zu beachtender Bereich ist die Möglichkeit von Eindringlingen, Überwachungsdaten (Statusinformationen) zu belauschen,
    während sie über den Draht gehen. Wenn Übertragungskanäle nicht verschlüsselt sind, können Angreifer durch Beobachtung Ihrer
    Überwachungsdaten wertvolle Informationen gewinnen. Nehmen Sie als Beispiel die folgende Situation: ein Angreifer belauscht für eine
    gewisse Zeit die Überwachungsdaten und analysiert die typische CPU- und Plattenauslastung Ihrer Systeme zusammen mit der Zahl der
    Benutzer, die typischerweise angemeldet sind. Der Angreifer ist dann in der Lage, die beste Zeit für die Kompromittierung eines Systems
    und dessen Ressourcen (CPU usw.) zu ermitteln, ohne bemerkt zu werden.</p>

    <p>Hier sind einige Hinweise, wie Sie Ihre Systeme sichern können, wenn Sie eine Icinga-basierte Überwachungslösung
    implementieren...</p>
  </div>

  <div class="section" title="8.1.2. Optimale Verfahren">
<div class="titlepage"><div><div><h3 class="title">
<a name="bestpractices"></a>8.1.2. Optimale Verfahren</h3></div></div></div>
    

    <div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
        <p><span class="bold"><strong>Benutzen Sie eine eigene Überwachungs-Box</strong></span>. Wir würden empfehlen, dass Sie einen Server
        benutzen, der nur für die Überwachung (und ggf. andere administrative Aufgaben) vorgesehen ist. Schützen Sie Ihren
        Überwachungsserver, als wäre es einer der wichtigsten Server Ihres Netzwerks. Halten Sie die laufenden Services auf einem Minimum
        und beschränken Sie den Zugang durch TCP-Wrapper, Firewalls usw. Weil der Icinga-Rechner berechtigt ist, mit Ihren Servern zu
        reden und vielleicht durch Ihre Firewalls zu gehen, kann es ein Sicherheitsrisiko sein, wenn Sie Benutzern Zugang zu Ihrem
        Überwachungsserver gewähren. Bedenken Sie, dass es einfacher ist, root-Zugang über eine Sicherheitslücke zu bekommen, wenn Sie ein
        lokales Benutzerkonto auf dem System haben.</p>

        <p><span class="inlinemediaobject"><img src="../images/security3.png"></span></p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Lassen Sie Icinga nicht als root laufen</strong></span> . Icinga muss nicht als root laufen,
        also tun Sie es nicht. Sie können Icinga anweisen, die Berechtigungen nach dem Start zu "droppen" und mit Hilfe der <a class="link" href="configmain-nagios_user" target="_top">icinga_user</a>- und <a class="link" href="configmain-nagios_group" target="_top">icinga_group</a>-Direktiven in der Hauptkonfigurationsdatei unter anderen Benutzer- und/oder
        Gruppenberechtigungen zu laufen. Wenn Sie Eventhandler oder Plugins ausführen müssen, die Root-Berechtigungen benötigen, möchten Sie
        vielleicht <a class="link" href="http://www.courtesan.com/sudo/sudo.html" target="_top">sudo</a> nutzen.</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Verriegeln Sie das Prüfergebnis-Verzeichnis</strong></span>. Stellen Sie sicher, dass nur der
        <span class="emphasis"><em>icinga</em></span>-Benutzer im <a class="link" href="configmain.html#configmain-check_result_path">check result path</a> lesen und schreiben
        darf. Wenn andere Benutzer außer <span class="emphasis"><em>icinga</em></span> (oder <span class="emphasis"><em>root</em></span>) in diesem Verzeichnis schreiben
        dürfen, dann können sie falsche Host-/Service-Prüfergebnisse an den Icinga-Daemon senden. Dies kann zu Ärger (falschen
        Benachrichtigungen) oder Sicherheitsproblemen (ausgelösten Eventhandlern) führen.</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Verriegeln Sie das External Command File</strong></span>. Wenn Sie <a class="link" href="extcommands.html" target="_top">externe Befehle</a> aktivieren, dann stellen Sie sicher, dass Sie passende Berechtigungen für das
        <span class="emphasis"><em>/usr/local/icinga/var/rw</em></span>-Verzeichnis setzen. Nur der Icinga-Benutzer (normalerweise
        <span class="emphasis"><em>icinga</em></span>) und der Web-Server-Benutzer (normalerweise <span class="emphasis"><em>nobody</em></span>, <span class="emphasis"><em>httpd</em></span>,
        <span class="emphasis"><em>apache2</em></span> oder <span class="emphasis"><em>www-data</em></span>) sollten Schreibberechtigung für das Commmand-File besitzen. Wenn
        Sie Icinga auf einer Maschine installiert haben, die der Überwachung und administrativen Aufgaben dient, dann sollte das
        ausreichen. Wenn Sie es auf einer allgemeinen- oder Multi-User-Maschine installiert haben (nicht empfohlen) und dem
        Web-Server-Benutzer Schreibberechtigung auf das Command-File geben, kann das ein Sicherheitsproblem sein. Sie wollen schließlich
        nicht, dass jeder Benutzer auf Ihrem System Icinga über das External-Command-File kontrollieren kann. In diesem Fall würden
        wir raten, nur dem <span class="emphasis"><em>nagios</em></span>-Benutzer Schreibberechtigung zu erlauben und etwas wie <a class="link" href="http://cgiwrap.sourceforge.net/" target="_top">CGIWrap</a> zu benutzen, um die CGIs als <span class="emphasis"><em>icinga</em></span> statt als
        <span class="emphasis"><em>nobody</em></span> laufen zu lassen.</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Fordern Sie Authentifizierung bei den CGIs</strong></span>. Wir empfehlen dringend Authentifizierung für den
        Zugriff auf die CGIs. Sobald Sie das tun, lesen Sie die Dokumentation zu Standardberechtigungen von authentifizierten Kontakten und
        autorisieren Sie bestimmte Kontakte für zusätzliche Rechte nur, wenn es nötig ist. Eine Anleitung zur Einrichtung von
        Authentifizierung und Autorisierung finden Sie <a class="link" href="cgiauth.html" title="6.2. Authentifizierung und Autorisierung im Classic UI">hier</a>. Wenn Sie mit der <a class="link" href="configcgi.html#configcgi-use_authentication">use_authentication</a>-Direktive die Authentifizierung in der CGI-Konfigurationsdatei
        deaktivieren, wird das <a class="link" href="cgis.html#cgis-cmd_cgi">command CGI</a> das Schreiben jeglicher Befehle in das <a class="link" href="configmain.html#configmain-command_file">external command file</a> verweigern. Sie wollen schließlich nicht, dass alle Welt in der Lage
        ist, Icinga zu kontrollieren, oder?</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Benutzen Sie absolute Pfade in Befehlsdefinitionen</strong></span>. Wenn Sie Befehle definieren, benutzen Sie
        den <span class="emphasis"><em>absoluten Pfad</em></span> (keinen relativen) für Scripte oder Programm, die Sie ausführen.</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Verstecken Sie sensible Daten mit $USERn$-Makros</strong></span>. Die CGIs lesen die <a class="link" href="configmain.html" title="3.2. Optionen der Hauptkonfigurationsdatei">Hauptkonfigurationsdatei</a> und die <a class="link" href="configobject.html" title="3.3. Überblick Objektkonfiguration">Objekt-Konfigurationsdatei(en)</a>, so
        dass Sie dort keine sensiblen Informationen (Benutzernamen, Passwörter, usw.) ablegen sollten. Wenn Sie Benutzernamen und/oder
        Passwörter in einer Befehlsdefinition angeben müssen, dann nutzen Sie ein $USERn$-<a class="link" href="macros.html" title="5.2. Makros verstehen und wie sie arbeiten">Makro</a>, um sie zu
        verstecken. $USERn$-Makros werden in einer oder mehreren <a class="link" href="configmain.html#configmain-resource_file">Ressourcen-Dateien</a>
        definiert. Die CGIs werden nicht versuchen, den Inhalt von Ressourcen-Dateien zu lesen, so dass Sie restriktivere Berechtigungen
        (600 oder 660) dafür benutzen können. Betrachten Sie die Beispiel-<span class="emphasis"><em>resource.cfg</em></span>-Datei im Basisverzeichnis der
        Icinga-Distribution für ein Beispiel, wie $USERn$-Makros zu definieren sind.</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Entfernen Sie gefährliche Zeichen aus Makros</strong></span>. Benutzen Sie die <a class="link" href="configmain.html#configmain-illegal_macro_output_chars">illegal_macro_output_chars</a>-Direktive, um gefährliche Zeichen aus den
        $HOSTOUTPUT$- , $SERVICEOUTPUT$-, $HOSTPERFDATA$- und $SERVICEPERFDATA$-Makros zu entfernen, bevor sie in Benachrichtigungen usw.
        benutzt werden. Gefährliche Zeichen kann alles sein, was ggf. durch die Shell interpretiert wird und dadurch eine Sicherheitslücke
        öffnet. Ein Beispiel dafür sind Backtick-Zeichen (`) in den $HOSTOUTPUT$, $SERVICEOUTPUT$, $HOSTPERFDATA$ und /oder
        $SERVICEPERFDATA$-Makros, die es einem Angreifer erlauben, einen beliebigen Befehl als Icinga-Benutzer auszuführen (ein guter
        Grund, Icinga NICHT als root-Benutzer laufen zu lassen).</p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Sicherer Zugang zu entfernten Agenten</strong></span>. Verriegeln Sie den Zugang zu Agenten (NRPE,
        NSClient, SNMP, usw.) auf entfernten Systemen durch Firewalls, Zugangsliste usw. Sie wollen nicht, dass jeder Ihre Systeme nach
        Statusinformationen abfragt. Diese Informationen können durch einen Angreifer genutzt werden, um entfernte Eventhandler-Scripte
        auszuführen oder die beste Zeit zu ermitteln, um nicht beobachtet zu werden.</p>

        <p><span class="inlinemediaobject"><img src="../images/security1.png"></span></p>
      </li>
<li class="listitem">
        <p><span class="bold"><strong>Sichere Kommunikationskanäle</strong></span>. Stellen Sie sicher, dass Sie die Kommunikationskanäle zwischen
        verschiedenen Icinga-Installationen und Ihren Überwachungskanälen verschlüsseln, wann immer möglich. Sie wollen nicht, dass
        jemand Statusinformationen belauscht, die über Ihr Netzwerk gehen. Diese Informationen können durch einen Angreifer genutzt werden,
        um die beste Zeit für einen unbeobachteten Zugang zu ermitteln.</p>

        <p><span class="inlinemediaobject"><img src="../images/security2.png"></span></p>
      </li>
</ol></div>

    <a class="indexterm" name="idm139734664440432"></a>
  </div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch08.html">Zurück</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch08.html">Nach oben</a></td>
<td width="40%" align="right"> <a accesskey="n" href="cgisecurity.html">Weiter</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Kapitel 8. Sicherheit und Leistungsoptimierung </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td>
<td width="40%" align="right" valign="top"> 8.2. Verbesserte Classic UI Modul-Sicherheit und Authentifizierung</td>
</tr>
</table>
</div>
<P class="copyright">© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com</P>
</body>
</html>