Absicherung von Diensten


[ Seminar Linux, WWW, Java und Internet ] ... [ Thema Sicherheit unter Linux ] ... [ Grundlagen ] ... [ Überwachung ] ...

Übersicht: Absicherung von Diensten


Telnet und r-Dienste nicht verwenden



Telnet und die sogenannten r-Dienste, wie z.B. rlogin, rsh, rcp, ... sind zwar sehr praktisch, um auf fremde Rechner zuzugreifen, sie haben jedoch alle einen gemeinsamen Nachteil: Sämtlicher Netzwerkverkehr läuft unverschlüsselt ab und ist so ein gefundendes Fressen für "Sniffer". Binnen kürzester Zeit lassen sich nahezu Unmengen an Passwörter abhorchen.

Um diesem Dilemma vorzubeugen gibt es eigentlich nur eine praktikable Lösung: Deaktivieren dieser Dienste in der Datei /etc/inetd.conf

Eine Ausnahme bilden die sich in letzer Zeit immer weiter durchsetzenden "geswitchten" Netzwerke. Hier ist ein Abhören des Netzwerkverkehrs nicht mehr möglich. Allerdings setzt die gefahrlose Nutzung dieser Dienste genaues Wissen um die Netzwerktopologie vorraus. Dies ist aber nur selten gegeben.

weiter

FTP-Dienst / FTP-Client

FTP-Dienst

Der FTP-Dienst ist in vielerlei Hinsicht unsicher. Als erstes sollte der standardmäßig vorgeschlagene wuftp-Dienst durch den proftpd ersetzt werden. Dieser verhindert das komplette Durchstöbern des Dateisystems und ermöglicht eine einfache HTML-ähnliche und einfache Konfiguration.

Anonyme Accounts sollten nach Möglichkeit verboten werden. Werden sie dennoch benötigt, dann darf das FTP-Verzeichnis auf gar keinen Fall Schreibberechtigung besitzen! Durch einfaches Hochladen einer .forward-Datei lässt sich beispielsweise die Datei /etc/passwd zumailen (Beispiel).

Auch sollte der Server so eingestellt werden, dass er nicht gleich das Betriebsystem und die Kernel-Versionsnummer frei verteilt.

Der FTP-Dienst gestattet es weiterhin, dass sich Benutzer per Klartextpasswort anmelden. In unsicheren Netzwerken ist dies ein prinzipielles Problem.

FTP-Client

Der FTP-Client bietet zwar ein paar weniger Lücken an, dennoch bleibt das Problem der Klartextpasswörter. Eine Möglichkeit, dieses Problem zu beheben, ist, Dateien nur noch verschlüsselt zu übertragen. Das Programm SecureCopy scp bietet sich dafür an. Die Syntax ist unter man scp zu finden.

weiter

SSH-Dienst / SSH-Client

SSH ist endlich mal ein Programm, das die Sicherheit eines Linux-Systems drastisch erhöht. Mit ihm ist es möglich, verschlüsselte Netzwerkverbindungen zu verwenden. Wobei es keine Rolle spielt, um welchen Dienst es sich handelt. Standardmäßig dient SSH als eine Art Telnet-Ersatz. Während einer solchen Sitzung lassen sich jedoch über diesen verschlüsselten Kanal weitere Kanäle hinzunehmen, so dass auch diese verschlüsselt übertragen werden (Beispiel http-forward).

Leider ist aber auch dieses Programm nicht gefeit gegen eine feindliche Übernahme. Wenn ein Feind im selben (ungeswitchten) Netz den Verkehr abhören kann, so kann er sich in der Synchronisationsphase der Verbindung als dritter Rechner hineinschummeln, über den dann die unverschlüsselten Datenpakete weitergeleitet werden.

Leider konnte ich ein derartiges Programm für Demonstrationszwecke nicht finden.

SSH-Dienst Der SSH-Dienst bietet nur die übliche Stack-Überlauf-Angriffsfläche. Die Version 1.2.27 ist für diese Schwäche bekannt. Da das Übernehmen von Sitzungen in der Synchronisationsphase möglich ist, sollte trotzdem folgende sicherheitserhöhende Maßnahmen durchgeführt werden:

Datei: /etc/sshd_config
AllowHosts 195.37.86.182 195.37.86.190 ... 
PermitRootLogin no

SSH-Client
- keine weiteren Schwächen bekannt -

weiter

DNS-Dienst

Der DNS-Dienst, auch BIND (Berkeley Internet Name Domain) genannt, dient der Namensauflösung in IP-Adressen. Dieser Dienst wird implizit von fast allen Netzwerk-Applikationen aufgerufen.

Das Problem ist bei diesem Dienst ist neben den üblichen "Buffer Overflows"-Zugängen, dass sich andere Dienste auf diesen Dienst zur Athentifizierung verlassen (wie z.B. .rhosts). Dabei wird die IP-Adresse eines Benutzer rückwärts in seinen Namen aufgelöst, und der Namen wiederum in die IP-Adresse. Wenn die Werte stimmig sind, ist der Benutzer authentifiziert (double reverse DNS lookup).

Werden die Informationstabellen, in denen der Dienst selbst nachschlägt, manipuliert, so ist eine beliebige Authentifizierung möglich. In der aktuellen Version kann dies (bislang) nur per Root-Zugriff möglich, ältere Versionen von BIND lassen sich ihren Namens-Cache mit falschen Werten füllen.

Der Dienst sollte nur auf einem wirklich sicheren Server installiert werden, oder von der Authentifizierung mittels DNS ist abzusehen.

weiter

Finger-Dienst

Der Finger-Dienst sollte auf einem sicheren System nicht aktiviert sein. Er lässt zu viele wertvolle Informationen zu Fremden durch.

Dieser Dienst muss in der Datei /etc/inetd.conf deaktiviert werden.

Alternativ lässt sich der Finger-Befehl auch schnell selbstprogrammieren:

#!/bin/bash

/bin/echo "\nDu hast den Server Windpocke gefingert."
/bin/echo "Hier erfaehrst du auch nicht mehr.\n"

exit 0


weiter

WWW-Dienst

Als WWW-Dienst ist auf den meisten Linux-Systemen der Platzhirsch Apache installiert. Er nimmt http-Anfragen entgegen und schickt dem Client-Browser die angeforderten Dokumente zurück. Jeder dieser Vorgänge wird protokolliert. Auf Wunsch kann eine (unverschlüsselte) Authentifizierung durchgeführt werden.

Sicherheitsbedenken:

Absichern des Apache: