Firewalls

Konfiguration von Internetdiensten

Wir gehen in folgenden davon, daß Ihnen die verschiedenen Internet-Dienste bekannt sind, und beschränken uns darauf zu erklären, wie man diese Dienste durch einen Firewall hindurch anbietet.

Folgende Dienste werden hier besprochen:

E-Mail

Ein E-Mail System besteht aus folgenden drei Komponenten:

Server : tauscht Mails mit externen Rechnern aus.

»Delivery Agent« stellt die Mail auf dem lokalen Rechner in die korrekte Mailbox.

Mit einem »User Agent« kann der Empfänger die Mail lesen/schreiben.

Jeder dieser Teile ist aus unterschiedlichen Gründen angreifbar:

Da der Server direkt Kommandos von externen Rechnern akzeptiert, kann es passieren, daß der Server einem Angreifer die gleichen Zugriffsrechte gibt, die er selbst hat. Dieses wird als Angriffe über den Kommandokanal bezeichnet.

Da der »Delivery Agent« in die Mailboxen aller Benutzer schreiben muß, erhält der Eindringling sehr breiten Zugang. In diesem Fall spricht man über Datengesteuerte Angriffe.

»User Agent« hat zwar nur begränzte Fähigkeiten, kann aber beliebige andere Programme ausführen (z.B. Virus-Programm).

Wie gut schützt ein Firewall gegen die oben genannten Angriffsmöglichkeiten ?

Angriffe über den Kommandokanal:

Ein Firewall kann die Anzahl der Maschinen beschränken, zu denen ein Angreifer einen Kommandokanal öffnen kann und auf diesen Maschinen einen gesicherten Server zu verfügung stellen.

Datengesteuerte Angriffe:

Im Fall von dieser Art der Angriffe, kann ein Firewall nicht viel ausrichten, da die Daten müssen irgendwie durch.

Aufruffehler:

Gegen diese Art von Fehlern, kann ein Firewall nichts ausrichten, denn sie könnennur von jemanden ausgenutzt werden, der bereits Kommandos auf lokalem System asführen kann.

Simple Mail Transfer Protocol (SMTP)

Der gebräuchliste Mailer auf UNIX-Systemen ist Sendmail. Dieses Programm braucht aber root-Berechtigungen, was die Hauptprobleme bezüglich sicherheit verursacht. Arbeitet der Sendmail als SMTP-Server, so kann der Eingreifer über eine SMTP-Verbindung zu einem Prozeß mit root-Berechtigung gelingen. In diesem Fall kann wohl ein Firewall die sicherheit erhöhen, indem er verhindert, daß Angreifer direkt an Sendmail SMTP-Anweisungen übergeben, und statt Seindmail einen Ersatzserver verwendet. Als Bespiel fuer solche Programme kann man hier smap und smapd nennen. Das Programm smap ist sehr kurz und einfach und läuft ohne root-Berechtigungen. Dieses Programm hat einzig und allein die Aufgabe, aus dem Internet eingehende Nachrichten mittels SMTP eintgegenzunehmen und sie in einer Datei in Wartenschlangenverzeichnis zu speichern. Das zweite Programm des

smap-Pakets verarbeitet regelmäßig die Dateien in Warteschlangeverzeichnis und sie normaleweise an Sendmail, das die Zustellung besorgt. Mittels Einsatz solchen Ersatzservers ist es fuer den Angreifer unmöglich eine direkte Verbindung zu Sendmail zu bekommen.

Konfiguration von SMTP mit einem Firewall

Da alle Mails durch den Bastion-Host laufen sollen, ist es notwendig das Mail-System besonders konfigurieren. Die wichtigsten Schritte dabei sind:

1. Mit Mail Exchange (MX)-Datensätzen von DNS soll es angegeben werden, daß alle einlaufenden Nachrichten an den Bastion-Host gerichtet werden sollen.

2. Der Mailer auf dem Bastion-Host soll so konfieguriert sein, daß er die Zieladressen der empfangenen Mail überprüft.

3. Die interne Systeme müssen so konfiguriert sein, daß alle ausgehenden Nachrichten an den Bastion host gerichtet werden.

Emfehlungen für SMTP zusammengefasst:

Die üblichen funktionen von SMTP sollen genützt sein, um alle ein- und ausgehende Nachrichten über den Bastion-Host zu leiten.

Mittels Paketfilterung sollen SMTP-Verbindungen von externen Rechnern auf den Bastion-Host beschränkt sein.

Ebenfalls mit Paketfilterung sollen SMTP-Verbindungen von Bastion-Host auf einen oder wenige interne Server begrenzt sein.

Alle interne Systeme müssen auslaufende Mails an den Bastion-Host schicken.

Statt Sendmail als SMTP-Server zu verwenden, sollte man auf Bastion-Host (eventuell auch auf den internen Mail-Servern) z.B. smap verwenden.

File Transfer Protocol (FTP)

FTP dient zur Übertragung von Daten von einer Maschine zu einer anderen. Es gibt zwei Arten von FTP-Zugang: FTP mit Benutzererkennung und Anonymous-FTP.

FTP benützt zwei getrennte TCP-Verbindungen: eine für Kommandos zwischen Client und Server sowie deren Ergebnisse (Kommandokanal) und eine zweite Verbindung, auf der Verzeichnislistings und Daten übertragen werden (Datenkanal).

FTP kann man in zwei Modi betreiben: normal und passiv. Bei einem "normalen" Modus reseviert der Client zunächst zwei TCP-Ports füer sich selbst. Auf dem ersten öffnet er den Kommandokanal zum Server und setzt dann das FTP-Kommando PORT ab, um dem Server die Nummer des zweiten Ports mitzuteilen, den der Client zur Datenübertragung benutzen will.Daraufhin öffnet der Server die Verbindung auf dem Datenkanal. Dies ist das Sicherheitsproblem bei "normalen" Modus. In passiven Modus öffnet der Client sowohl den Kommando- als auch den Datenkanal. Wenn sowohl FTP-Client als auch der gewünschte Server den passiven Modus unterstützen, sollte man mit den passiven Modus zu arbeiten, um Paketfilteringprobleme zu vermeiden. (Bemerkung: viele in WWW-Browser eingebaute

FTP-Clients benutzen den passiven Modus). Mit einem Client in normalen modus und einem Proxy kann man zuverlässig Verbindung zu externen Servern aufzunehmen, ohne eigentliche TCP-Verbindungen für den Datenkanal auf anderen Rechnern als dem Bastion-Host zuzulassen, der als Proxy fungiert. Es ist daher selbst dann sinvoll, einen FTP-Proxy einzurichten, wenn die meisten anderen Protokolle direkt über einen Firewall mit Paketfilterung abgewickelt werden.

Empfehlungen für FTP zusammengefasst:

Ünterstützen FTP-Clients den passiven Modus, dann ist der Kontakt zwischen internen Rechnern und FTP-Server mit Paketfilerung erlaubt.

Ünterstützen die Clients den passiven Modus nicht, dann ist es besser einen Proxy-Server für FTP zu benutzen.

FTP-Zugang sollte sowohl über Paketfilterung als auch über Proxies zugänglich sein. Mit Paketfilterung sollte man den passiven Modus verwenden, mit den Proxies den normalen Modus.

Wenn eingehende FTP-Verbindungen erlaubt sein sollen, dann verwendet man Paketfilter, die eingehende FTP-Verbindungen nur auf Bastion-Host erlauben.

Terminal-Zugang (Telnet)

Mit Telnet kann ein Benutzer einen Kommandointerpreter (Shell) auf einem fernen Computer ausführen. Durch Eingabe einer beliebigen Portnummer, kann man auch andere Anwendungen zugreifen (z.B. MUDs, oder SMTP-kommandos ausführen).

Die meisten Standorte erlauben ihren Benutzern ausgehende Telnet-Verbindungen, damit sie auf Kommandointerpreter und Informationsdienste zugreifen können, die per Telnet auf fernen Systemen angeboten werden. Eingehende Verbindungen sind dagegen an den meisten Standorten strikt verboten oder werden zumindest streng kontrolliert. Unabhängig von der Richtung der Verbindung, handelt sich bie Telnet um ein Klartext-Protokoll. Alle Informationen, auf die Benutzer über eine Telnet-Verbindung zugreifen, sind für jemanden sichtbar, der in der Telnet-Verbindung herumschnüffelt.

Emfehlungen für Telnet:

Telnet-Verbindungen sollten so weit wie möglich eingeschränkt sein.

Es ist besser die Ausgehende Telnet-Verrbindungen über Paketfilterung oder Proxies zullasen.

Bei einer Telnet-Sitzung mit zugriff auf vertrauliche Daten, sollte man eine Telnet-Version mit verschlüssselung benützen.