SOCKSSOCKS
Einrichten eines Proxy-FirewallsDieser Abschnitt stellt die Einrichtung eines einfachen Proxy-Firewalls, bestehend aus einem Proxy-Server, dar. Als Server wird der bereits oben vorgestellte SOCKS-Proxy-Server verwendet, da dieser standardisiert ist, von vielen Clients unterstützt wird (Netscape, IE), dabei kostenfrei ist und sich leicht eigene Clients anpassen lassen. Es handelt sich hierbei um einen generischen Circuit-Level-Proxy (siehe Abschnitt 4.1). Die Einrichtung erfolgt nach dem Konzept des ,Firewall and Proxy Server HOWTO v0.83, August 21, 2000" von Mark Grennan.SOCKS-Server Als Basis für die Installation des Servers muß der Kernel entsprechend vorcompiliert sein. Es sollten die folgenden Optionen aktiviert sein:
Weiter sind die gefährlichen und unwichtigen Dienste abzuschalten, die sich ein Angreifer zu Nutze machen könnte. Dazu kommentiert (#) man in der Datei /etc/inetd.conf die Dienste echo, discard, daytime, chargen, ftp, gopher, shell, login, exec, talk, ntalk, pop-2, pop-3, netstat, systat, tftp, bootp, finger, cfinger, time, swat und linuxconfig (soweit vorhanden) aus. Ein
mit für <PID> eingesetzter Prozessnummer von inetd sorgt für eine entsprechende Aktualisierung der laufenden Dienste. Nun folgt die Installation des SOCKS-Paketes (zu finden in Version 4.2 unter ftp://sunsite.unc.edu/pub/Linux/system/network/misc/socks-linux-src.tgz ). Zunächst sind die Einstellungen der Datei include/socks.h, wie SOCKS_DEFAULT_SERVER ,www.meinserver.com" und MULTIHOMED_SERVER, an die eigenen Bedürfnisse anzupassen. Nach Überprüfung der Einstellungen des ./Makefile kann mit ,make" die Kompilierung des Servers und Clients gestartet werden. Als root installiert ,make install.server" den Server und die Manpages. Die Service-Konfiguration /etc/services ist um die Zeile
zu aktualisieren. Der Server-Start wird in der Datei /usr/inetd.conf mit
automatisiert. Der optionale Parameter -I fordert für alle Clients einen laufenden Identifikationsdeamon identd, um eine Verbindung zu erhalten. Die Zugriffskontrolle des Servers wird durch die Datei /etc/sockd.conf konfiguriert. Folgender Inhalt
erlaubt dem Hosts mit der IP 192.168.1.* (da Netzmaske 255.255.255.0) den Zugriff auf den SOCKS-Server. Die Zeile
lehnt jeden Host, der nicht vorher mit permit erfasst wurde, ab und sendet root eine Mail mit dem Benutzernamen, Hostnamen, Zielhost und Dienst des Angreifers (falls er per finger identifizierbar ist). Es lassen sich auch einzelne Dienste in Abhängigkeit der Quell-IP auf diese erlauben oder abweisen. Für unseren Dual-Homed-Host muß noch ein simples Routing angelegt werden. Falls eine Verbindung durch sockd.conf freigegeben ist, wird in sockd.route nach einem Routing gesucht. Die Datei /etc/sockd.route sollte nur aus den Zeilen
bestehen, wobei jede Ziel-Adresse *.*.*.* (Ziel-Maske bewirkt dies) zu der Netzwerkkarte mit der IP 24.94.1.123 geroutet wird. SOCKS-Client-Host Wie oben bereits auf Server-Seite festgelegt wurde, muß identd installiert sein. Auf den internen Hosts reicht als root ein ,make clients", um mitgelieferten Clients für finger, ftp und telnet zu generieren. Mit ,make install.clients" werden diese dann installiert. Die alten Versionen von finger, telnet und telnet sollten umbenannt werden (beachte für finger den Eintrag in include/socks.h). Die SOCKSifizierten Varianten werden mit links, wie
zu Standardbefehlen gemacht. Mit Hilfe der Datei /etc/socks.conf wird den SOCKS-Clients mitgeteilt, welche Verbindungen abgelehnt werden sollen, welche direkt (oder mit einem anderen Proxy-Server) zu verbinden sind und welche den SOCKS-Server nutzen sollen. Die Zeile
sorgt alle Verbindungen innerhalb des internen Netzes (192.168.1.*) direkt ohne SOCKS aufgenommen werden sollen. Die folgende Zeile
erlaubt nur dem Benutzer root und boss, eine Telnet-Verbindung zum Rechner 11.12.13.14 über den SOCKS-Proxy 24.94.1.123 herzustellen. Mit
wird allen Benutzern der Zugriff über Port 80 (HTTP) auf das gesamte Internet per SOCKS-Server gestattet. Die restlichen Spielarten werden unter Benachrichtigung des root abgelehnt:
Damit ist der Aufbau einer einfachen SOCKS-Proxy-Firewall abgeschlossen. Weitere Clients können nun von Hand SOCKSifiziert werden. Manche Standardwebclients, wie der z.B. Netscape Navigator, lassen sich unter den Einstellungen für Proxys in einem Eingabefeld für SOCKS an den Server anbinden.
|