Kapitel 5 Zugriffskontrolle für Dienste

Die Sicherheit in Ihrem Red Hat Linux System ist sehr wichtig. Eine Möglichkeit, die Sicherheit in Ihrem System zu verwalten, ist das umsichtige Handhaben von Zugriffen auf Systemdienste. Auch wenn für Ihr System für bestimmte Dienste einen offenen Zugriff bereitstehen muss (z.B httpd für einen Web-Server), sollten Sie diesen Zugriff, wenn er nicht verwendet wird, sperren — das verringert das Risiko, das Unbefugte Zugriff erlangen.

Es gibt einige verschiedene Möglichkeiten, den Zugriff zu Systemdiensten zu verwalten. Anhand des Dienstes, Ihrer Systemkonfiguration und Ihrer Erfahrungen mit Linux sollten Sie entscheiden, welche Möglichkeit für Sie am geeignetesten ist.

Der einfachste Weg den Zugriff zu Ihrem System zu verwehren, ist das System einfach abzuschalten. Beide Dienste, die von xinetd verwaltet werden (was wir zu einem späteren Zeipunkt genauer beschreiben), und die Dienste in der /etc/rc.d Hierarchie, können so konfiguriert werden, dass sie durch das Dienst- programm ntsysv oder den Befehl chkconfig gestartet oder angehalten werden können. Diese Tools sind einfacher zu verwenden, als die andere Alternative — das manuelle Bearbeiten der vielen Symbolischen Links in den Verzeichnissen unter /etc/rc.d oder das Bearbeiten der /etc/rc.d Konfigurationsdateien in /etc/xinetd.d .

Das Dienstprogramm ntsysv hat ein einfaches Interface zum Aktivieren oder Deaktivieren von Diensten. Sie können ntsysv zu Ein- und Ausschalten von xinetd-verwalteten Diensten sowie zum Starten und Anhalten eines Dienstes in der /etc/rc.d Hierarchie verwenden. In diesem Fall konfiguriert der Befehl ntsysv Ihren aktuellen Runlevel. Wenn Sie einen anderen Runlevel konfigurieren möchten, verwenden Sie zum Beispiel den Befehl ntsysv --levels 016. (In diesem Beispiel werden die Dienste für die Runlevels 0, 1 und 6 eingestellt.)

Das ntsysv-Interface arbeitet wie das textbasierte Installationsprogramm. Sie können mit den Aufwärts- und Abwärtspfeilen in der Liste navigieren. Mit der Leertaste können Dienste ausgewählt und abgewählt werden. Sie wird außerdem verwendet, die Buttons Ok und Cancel zu "drücken". Um sich in der Liste von Diensten und den Buttons Ok und Cancel bewegen zu können, benutzen Sie die Taste Tab. Das Zeichen * zeigt an, dass ein Service auf "on" gestellt ist. Mit der Taste F1 wird eine kurze Beschreibung jedes Dienstes aufgerufen.

Mit dem Befehl chkconfig können Dienste aktiviert und deaktiviert werden. Der Befehl chkconfig --list zeigt eine Liste von System-Diensten, und ob diese Dienste in den Runlevels 0-6 gestartet (on) oder angehalten (off ) wurden. (Am Ende der Liste erscheint Abschnitt über die Dienste, die mit xinetd verwaltet werden. Wir gehen später näher darauf ein).

Wenn Sie mit chkconfig --list einen Dienst anfragen, der von xinetd verwaltet wird, erhalten Sie die Meldung, ob der Dienst eingeschaltet (on) oder ausgeschaltet (off) ist. Mit dem folgenden Befehl wird zum Beispiel angezeigt, dass finger als xinetd-Dienst aktiviert ist:

$ chkconfig --list finger
finger          on

Das heisst, wenn xinetd ausgeführt wird, ist finger aktiviert.

Wenn Sie chkconfig --list für eine Anfrage eines Dienstet in /etc/rc.d verwenden, werden die Einstellungen des Dienstes für jeden Runlevel wie folgt angezeigt:

$ /sbin/chkconfig --list anacron
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off

Mit chkconfig kann ein Dienst so eingestellt werden, dass er in einem bestimmten Runlevel gestartet (oder nicht gestartet wird). Wenn zum Beispiel nscd in den Runlevels 3, 4 und 5 ausgeschaltet werden soll, geben Sie folgenden Befehl ein:

chkconfig --level 345 nscd off

In der man-Seite von chkconfig finden Sie weitere Informationen.

WarnungÄnderungen Aktivieren
 

Die mit ntsysv oder chkconfig vorgenommenen Änderungen werden nicht sofort wirksam. Dafür müssen Sie den Dienst mit dem Befehl service daemon stop anhalten und wieder starten. Ersetzen Sie im vorherigen Beispiel daemon durch den Namen des Dienstes, der angehalten werden soll (z.B. httpd). Ersetzen Sie dann stop durch start oder restart, um den Dienst dann wieder zu starten bzw. neu zu starten. Wenn Sie einen von xinetd verwalteten Dienst starten oder anhalten möchten, geben Sie den Befehl service xinetd restart ein.

Für die Zugangskontrolle zu Internet-Diensten können Sie xinetd verwenden, einen sicheren Ersatz für inetd. Der Dämon xinetd enthält System-Ressourcen, Zugriffs- und Anmeldekontrollen und kann zum Starten von speziellen, zweckgebundenen Servern verwendet werden. xinetd kann zusätzlich dazu verwendet werden festzulegen, dass zu bestimmten Zeiten nur auf bestimmte Hosts zugegriffen werden kann, die Anzahl der ankommenden Verbindungen und/oder die durch die Verbindung entstehende Belastung einzuschränken.

xinetd ist ständig in Betrieb und wartet an den Ports auf zu verwaltende Dienste. Wenn die Nachfrage für eine Verbindung zu einem von xinetd verwalteten Dienst ankommt, wird der entsprechende Server für diesen Dienst gestartet.

/etc/xinetd.conf ist die Konfigurationsdatei für xinetd. Bei näherer Betrachtung der Datei, werden Sie feststellen, dass sie nur wenige Vorgaben und Anweisungen enthält, um das Verzeichnis /etc/xinetd.d einzufügen. Um einen xinetd Dienst zu aktivieren oder zu deaktivieren, bearbeiten Sie im Verzeichnis /etc/xinetd.d die Konfigurationsdatei dieses Dienstes. Wenn das Attribut disable auf yes eingestellt ist, ist der Service ausgeschaltet. Ist das Attribut disable auf no eingestellt ist, ist der Dienst aktiviert. Wenn Sie alle xinetd Konfigurationsdateien mit ntsysv oder chkconfig bearbeitet haben oder den aktiven Status geändert haben, müssen Sie xinetd mit dem Befehl service xinetd restart neu starten, bevor die Änderungen aktiviert werden.

Viele UNIX-Systemadministratoren verwenden gewöhnlich TCP-Wrapper zum Verwalten von Zugriffen auf bestimmte Netzwerkdienste. Alle von xinetd verwalteten Netzwerkdienste (sowie alle Programme mit integriertem Support für libwrap) können TCP-Wrapper zur Zugriffsverwaltung verwenden werden. xinetd kann die Dateien /etc/hosts.allow und /etc/hosts.deny für das Konfigurieren von Zugriffen auf Systemdienste verwenden. Wenn Sie TCP-Wrapper benutzen möchten, finden Sie in der man-Seite host_access (5) detaillierte Informationen.

Eine andere Möglichkeit Zugriffe auf Systemdienste zu verwalten, ist die Verwendung von ipchains zum Konfigurieren einer IP- Firewall. Für Linux-Einsteiger ist ipchains jedoch nicht die optimale Lösung. Das Einstellen von ipchains kann komliziert sein und sollte am Besten von erfahrenen UNIX/Linux Systemadministratoren durchgeführt werden.

Andererseits bietet die Verwendung von ipchains eine größere Flexibilität. Wenn Sie zum Beispiel eine individuell angepasste Lösung benötigen, die Zugriff zu bestimmten Diensten bestimmter Hosts liefert, können Sie ipchains verwenden. Mehr Informationen über ipchains finden Sie im Linux IPCHAINS-HOWTO unter http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html. Linux IPCHAINS-HOWTO ist auf der Dokumentations- CD enthalten.

Wenn Sie alternativ ein Dienstprogramm verwenden möchten, das die allgemeinen Regeln für Zugriffe auf Ihren Heimcomputer einstellt und/oder wenn Sie Linux-Einsteiger sind, sollten Sie das Dienstprogramm gnome-lokkit verwenden. gnome-lokkit ist ein GUI-Dienstprogramm, das Sie fragt, wozu Sie Ihren Computer verwenden möchten. gnome-lokkit wird dann für Sie eine auf Ihren Antworten basierende Firewall konfigurieren.

Zusätzliche Ressourcen

Unter den nachstehenden Quellen erhalten Sie weitere Informationen über gnome-lokkit.

Installierte Dokumentationen

  • man xinetd — Die man-Seite xinetd.

  • man xinetd.conf — Die man-Seite für die Konfigurationsdatei xinetd.conf.

Hilfreiche Websites

  • http://www.xinetd.org — Die xinetd Webseite. Sie enthält eine sehr detaillierte Liste von Eigenschaften und Beispielen für Konfigurationsdateien.