Über offene Ports und deren Gefährdung
Was sind offene Ports
Alle Programme, die Daten über das Internet (bzw. TCP/IP und UDP/IP) senden, machen dies mit Hilfe von Ports. Dabei hat jedes Programm sein eigenes Protokoll und muss beim Aufbau einer Netzverbindung angeben, über welche Portnummer es kommunizieren will.
Dabei wird unterschieden zwischen:
- bekannten Ports im Nummernbereich zwischen 0 und 1023, die von Systemprotokollen verwendet werden, die üblicherweise nur vom root oder von privilegiert Usern gestartet werden können,
- registrierten Ports von 1024 bis 49151
- dynamischen oder privaten Ports von 49152 bis 65535
Ein Port gilt als offen, wenn man auf seinem Rechner ein Programm laufen hat, das auf diesem Port Daten von aussen empfangen kann, also quasi lauscht. Das heisst, jedes(!) Programm, mit dem man im Internet ist, hat mindestens einen Port offen.
Warum sind offene Ports gefährlich
Jeder Rechner, der länger als ein paar Minuten im Netz hängt, wird für gewöhnlich angegriffen. Die erste Stufe der meisten Angriffe besteht üblicherweise aus einem sogenannten "Portscan". Dabei wird auf jeden Port eine kurze Anfrage gesendet und der Angreifer schaut dann nach, welche der Ports eine Antwort zurückschicken. Da die meisten Programme immer über denselben Port kommunizieren, kennt ein Angreifer dadurch die Programme, die auf dem Zielrechner laufen und die mit dem Internet verbunden sind. Einige dieser Programme wie z.B. FTP und SSH sind jetzt nur noch durch den Nutzernamen und das Passwort des Anwenders geschützt und wenn der Angreifer diese herausbekommt, kann er sich auf dem angegriffenen Rechner bereits nach belieben umschauen und Schaden anrichten.
Aber selbst Programme, die einem Angreifer eigentlich keine Möglichkeit bieten auf ihren Rechner zuzugreifen, sind eine potentielle Gefahrenquelle, wenn sie offene Ports haben. Jedes Programm mit einem offenen Port kann beispielsweise Programmierfehler enthalten durch die es seine Kommunikation nicht ausreichend schützt. Diese Sicherheitslücken lassen sich dann oft wieder ausnützen, um einem Angreifer Zugriff auf Fremdrechnern zu geben.
Daher gilt folgender Grundsatz: Niemals mehr Ports öffnen als absolut notwendig!
Wie finde ich offene Ports
Es gibt im Internet verschiedene Webseiten über die man sich die eigenen offenen Ports anzeigen lassen kann. Eine dieser Seiten ist z.B.
http://www.heise.de/security/dienste/portscan/∞ (Test Unix/Linux anklicken).
Dies sollte man ruhig öfters mal machen. Leider werden z.B. beim verwenden von :blau:apt-get dist-upgrade:blau: oft neue Services gestartet, die man bereits zuvor abgeschaltet hatte.
Schutz trotz offener Ports
Ganz ohne offene Ports kann man im Internet leider nichts machen. Daher hier ein paar Tipps, um die eigene Sicherheit zu erhöhen:
Die Software auf dem neuesten Stand halten. Es werden immer wieder neue Sicherheitslücken entdeckt und üblicherweise auch schnell wieder behoben. Daher ist gilt der Grundsatz "never change a running system" NICHT für Software die mit dem Netz verbunden ist. Am leichtesten lässt sich dies mit einem regelmässigen :blau:apt-get update:blau: und :blau:apt-get upgrade:blau: bewerkstelligen.
Wer die Möglichkeit dazu hat sollte einen Router zwischen seinen Rechner und dem Internet setzen.
Mit Hilfe einer Firewall kann man alle nicht benötigten Ports automatisch schliessen lassen. Wer bereit ist sich etwas tiefgehender mit Firewalls zu beschäftigen, kann auch komplexere Regeln für die Kommunikation mit dem Netz konfigurieren. Linux hat mit :blau:iptables:blau: bereits eine Firewall im Kernel eingebaut. Einrichten kann man diese z.B. mit Hilfe des Programmes :blau:guarddog:blau:.
Übersicht über Ports und Methoden, diese zu schliessen
Um herauszufinden welches Programm welchen Port geöffnet hat, kann man als root folgendes in die console tippen:
:blau:netstat -anp --ip:blau:
TCP-Ports:
Portnummer Protokoll
21 ftp
Sehr hohes Gefahrenpotential.
Der FTP-Server wird meistens in der Datei /etc/inetd.conf gestartet.
Beenden kann man ihn, indem man in dieser Datei den ftp-Eintrag mit '#' auskommentiert
und den Service dann mit :blau:/etc/init.d/inetd restart:blau: neu startet.
22 ssh
Extrem hohes Gefahrenpotential. Der wahrscheinlich am häufigsten angegriffene Port im Internet.
Beenden im laufenden Betrieb kann man ihn mit:
:blau:/etc/init.d/ssh stop:blau:
Dauerhaft entfernen mit:
:blau:update-rc.d -f ssh remove:blau:
53 DNS Server
Wird auf einem Einzelrechner nicht benötigt und sollte geschlossen werden.
Beendet wird mit:
:blau:/etc/init.d/dnsmasq stop:blau:
Dauerhaft entfernen mit:
:blau:update-rc.d -f dnsmasq remove:blau:
113 Authentifikationsserver
Es gibt einige IRC-Server die eine Authentifizierung der Benutzer verlangen.
Wer damit kein Problem hat, sollte den Port schliessen.
631 Druck-Server (IPP/Cups)
Wird zum drucken benötigt, aber auch wenn der Port offen ist werden keine Nachrichten aus dem Internet angenommen.
Man kann ihn schliessen, wenn man in der Datei /etc/cups/cupsd.conf alle Ports und Listen Zeilen auskommentiert und
sie ersetzt durch: :blau:Listen 127.0.0.1:631:blau:
Danach sollte man testen, ob das Drucken noch geht.
6000 X Window System (X11)
Das X Window System sollte mit :blau:-nolisten tcp:blau: gestartet werden.
Wer kdm verwendet trägt dazu die folgende Zeile in :blau:/etc/
kde3?/kdm/kdmrc:blau: im Abschnitt [X-*-Core] ein:
:blau:
ServerArgsLocal?=-nolisten tcp -br:blau:
Ansonsten sollte man nach Dateien namens "Xservers" suchen und das -nolisten tcp dort als Startparameter hinter den Aufruf von X setzen. Das sieht dann z.B. so aus:
:blau::0 local /usr/X11R6/bin/X
vt7? -dpi 100 -nolisten tcp:blau: