Das
FWTK ist ein modular aufgebautes Software-Paket. Die Komponenten sind so
aufeinander abgestimmt, daß man mit ihnen einen einfachen, aber wirkungsvollen
Bastion Host konfigurieren kann. Das Toolkit läuft unter UNIX-Systemen,
die TCP/IP mit Berkeley Socket Interface unterstützen. Der damit geschaffene
Bastion Host fungiert als Application-Level Gateway. Das FWTK bietet keine
Packet Filter-Funktionen. Der Bastion Host sollte niemals ohne Schutz seine
Arbeit im Netz verrichten. Es ist ratsam, mindestens einen weiteren Rechner
oder Router im Netz zu plazieren, der die IP-Filterung vornimmt. Die alleinige
Installation eines IP-Filters auf dem Bastion Host ist nicht ratsam. Möglich
wäre eine klassische Installation in einem Screened Subnet (Abb1.:
Screened Subnet). Weitere Installationsvarianten und allgemeine Hinweise
zu Firewall-Systemen finden Sie auch im Heft 14 der RZ-Mitteilungen.
Das
FWTK unterstützt die Funktionen eines Bastion Host durch mehrere kleine,
überschaubare Programme, die wie in einem Baukasten zusammengesetzt
und nur über eine Konfigurationsdatei administriert werden müssen.
Für jeden Dienst, der das Firewall-System passieren soll, wird ein
Application-Level Proxy installiert. Ein Proxy verhält sich
für den Nutzer vollkommen transparent. Der Kommunikationspartner erliegt
der Illusion, daß er nur mit dem Bastion-Host kommuniziert, und dem
Nutzer im Netz wird eine direkte Internetverbindung vorgetäuscht (Abb.
2: Proxy).
| # Beispiel inetd.conf mit netacl und finger
stream tcp nowait daemon /usr/local/etc/netacl in.fingerd |
| # Beispiel netperm-table für Netacl
netacl-service: permit-hosts address -exec program name netacl-service: deny-hosts address -exec program name |
| # Beispiel netperm-table für finger
netacl-in.fingerd: permit-hosts .intern.de -exec /usr/sbin/in.fingerd netacl-in.fingerd: permit-hosts * -exec /bin/cat/usr/local/etc/mein_finger_script |
| # Beispiel netperm-table für das telnet-gateway (tn-gw)
tn-gw: welcome-msg /usr/local/etc/telnet-welcome.txt tn-gw: deny-msg /usr/local/etc/telnet-deny.txt tn-gw: help-msg /usr/local/etc/telnet-help.txt |
Die gewünschten
Authentisierungsmethoden müssen beim Kompilieren aktiviert werden.
Im folgenden soll die Konfiguration des Einmalpaßwort-Systems S/Key
beschrieben werden. Alle Optionen können in den Dateien im Verzeichnis
../fwtk/auth/ definiert werden. S/Key ist ein sogenanntes Challenge-Response
Einmalpaßwort-System, das dem Benutzer bei der Anmeldung eine Sequenz
Nummer präsentiert. Der Benutzer muß vorher mit seiner Sequenznummer
und einem geheimen Paßwort eine Liste mit sechs einmal gültigen
Paßwörtern erzeugen. Für jede Anmeldung muß ein anderes
Paßwort benutzt werden.
| # Beispiel /etc/services
authsrv 7777/tcp |
| # Beispiel /etc/inetd.conf für authsrv
authsrv stream tcp nowait root /usr/local/etc/authsrv authsrv |
| # Beispiel netperm-table für authsrv
authsrv: database /usr/local/etc/authsrv.db authsrv: permit-hosts localhost bastionhost |
| root@bastion%./authsrv
authsrv # adduser admin authsrv # enable admin |
| authsrv # proto admin skey
authsrv # superwiz admin |
| authsrv # password admin "mein supergeheimes passwort"
ID admin s/key is 99 ma42566 authsrv # exit |
Anhand der
beiden klassischen Dienste smtp und telnet soll das generelle
Konfigurationskonzept des FWTK dargestellt werden. Weiterführende
Optionen entnehmen Sie bitte den Hilfedateien.
|
| # Beispiel /etc/inetd.conf für die Telnet-Proxy Konfiguration
telnet stream tcp nowait root /usr/local/etc/netacl in.telnetd # Beispiel netperm-table für die Telnet-Proxy Konfiguration
|
| # Beispiel inetd.conf für smap Konfiguration
smtp stream tcp nowait mail /usr/local/etc/smap smap |
| # Beispiel rc*-Script für den Start von smapd
if [ i-x /usr/local/etc/smapd ]; then echo "Starting sendmail proxy" /usr/local/etc/smapd fi |
| #Beispiel netperm-table für smap and smapd
smap, smapd: userid mail
|
| 0,30 * * * * /usr/lib/sendmail -q >/dev/null 2>&1 |