Internet-Router im Eigenbau (Teil 1)

09.07.2003 von Dieter Mayer
Ein leistungsfähiger ISDN- oder DSL-Router muss nicht teuer sein: Bauen Sie ihn selbst - mit vorhandener Hardware und kostenloser Software. Das Zauberwort dazu heißt Fli4l.

Mit nur wenig Aufwand lässt sich ein ausgedienter Rechner zu einem vollwertigen, stabilen Internet-Router mit vielen interessanten Zusatzoptionen reanimieren. Die nötige Funktionalität liefert Frank Meyer's Fli4l (FLoppy ISDN 4 [for] Linux), eine auf einem Linux-Kernel 2.2.22 basierende kostenlose Softwarelösung, die auch Linux-Unkundigen keine Installations- oder Konfigurationsprobleme bereitet.

Das Besondere an Fli4l ist, dass alle zum Betrieb notwendigen Dateien auf eine HD-Diskette passen und somit ein stromsparender und geräuscharmer PC-Router realisiert werden kann. Der Einsatz einer Festplatte oder CD-ROM als Bootmedium ist dennoch optional möglich.

Teil 1 des Beitrags beschreibt die Grundkonfiguration am Beispiel eines DSL-Routers, mit der sich bereits alle Routing-Aktivitäten erledigen lassen. Teil 2 erläutert erweiterte Features, etwa die Themen Security oder Port-Forwarding.

Als Basiskonfiguration für einen DSL-Router reicht schon ein Rechner mit 80486/66-Prozessor, 16 MByte Speicher, einem Diskettenlaufwerk und zwei Netzwerkkarten. Besser ist natürlich der Einsatz einer Pentium-CPU und 32 MByte oder mehr Arbeitsspeicher.

Grundkonfiguration

Benötigt werden das Fli4l-Basispaket (besprochen wird die Version 2.0.8 vom 26.04.2003), der DHCP-Server und das DSL-Paket. Die Archive sind mit Unterverzeichnissen zu entpacken, so dass die im Bild ersichtliche Verzeichnisstruktur entsteht.

Falls Sie unter Windows WinZIP zum Entpacken verwenden, ist zu beachten, dass unter "Optionen -> Konfiguration -> Verschiedenes" der Punkt "Umwandlung LF zu CR/LF bei TAR-Archiv" ausgeschaltet ist, da sonst die tar-Archive nicht korrekt entpackt werden. Bei WinRAR sind keine derartigen Einstellungen erforderlich.

Die Konfiguration des Routers erfolgt über Textdateien, die sich im Verzeichnis "fli4l-2.0.8\\config" befinden. Wer eine grafische Konfigurationshilfe bevorzugt, wird den fliwizNG (floppy isdn 4 linux wizard Next Generation) zu schätzen wissen, mit dem sich (fast) alle Optionen komfortabel einstellen lassen.

Dieser Artikel beschreibt die Einstellung ohne das grafische Front-End. Die wichtigste Konfigurationsdatei ist fli4l-2.0.8\\config\\base.txt. Hier sind folgende Bereiche zu modifizieren beziehungsweise zu ergänzen. Nicht aufgeführte Sektionen können Sie vorerst so belassen wie sie sind:

#--------------------------------------
# General settings:
#--------------------------------------
PASSWORD='fli4l'

Sie sollten unbedingt ein Passwort Ihrer Wahl setzen, um zu verhindern, dass Unbefugte den Router aus der Ferne manipulieren können! Damit könnten sich Angreifer fli4l so konfigurieren, dass sie letztlich Zugriff auf alle Rechner im Netz erhalten.

Netzwerk-Karten

Der nächste Schritt ist das Einrichten der Netzwerk-Karten. Eine Karte stellt die Verbindung zum Intranet her und die zweite ist mit dem DSL-Modem verbunden.

#--------------------------------------
# Ethernet card drivers:
#--------------------------------------
ETH_DRV_N='2'
ETH_DRV_1='TYP1'
ETH_DRV_2='TYP2'
ETH_DRV_1_OPTION='
ETH_DRV_2_OPTION='

Handelt es sich bei den Karten um verschiedene Modelle, tragen Sieden Wert 2 in ETH_DRV_N. Bei identischen Karten setzen Sie den Wert auf "1". Letzteres hat den Vorteil, dass nicht verschiedene Treiber geladen werden müssen.

Weiterhin sind aus der Liste die entsprechenden Netzwerkkarten zu wählen, beispielsweise ETH_DRV_x='ne2k-pci'.

Sollten Sie noch ältere ISA-Karten benutzen, tragen Sie unter ETH_DRV_x_OPTION die Parameter für IRQ und Basisadresse ein, bei PCI-Karten bleibt dieser Wert unbelegt.

IP-Adressierung und Masquerading

Der nächste Bereich betrifft die IP-Adressierung: Welchen IP-Bereich nutzen Sie ihn Ihrem Netz, welche Netzwerkmaske verwenden Sie und welche IP-Adresse soll der Router erhalten? Weiterhin ist das Masquerading wichtig, mit dem nichts anderes gemeint ist als NAT, also das Übersetzen von internen IP-Adressen in die vom Provider zugeteilte IP und zurück. Tragen Sie dort den IP-Bereich des lokalen Netzes ein.

#--------------------------------------
# Ether networks used with IP protocol:
#--------------------------------------
IP_ETH_N='1'
IP_ETH_1_IPADDR='192.168.1.1'
IP_ETH_1_NETWORK='192.168.1.0'
IP_ETH_1_NETMASK='255.255.255.0'

#--------------------------------------
# Masquerading:
#--------------------------------------
MASQ_NETWORK='192.168.1.0/24'

Domain Name Service

Es ist empfehlenswert, auf dem Router selbst einen DNS -Server laufen zu lassen, der die lokalen DNS-Abfragen annimmt und nur dann einen öffentlichen DNS-Server kontaktiert, wenn der entsprechende Name nicht intern aufgelöst werden kann. Weiterhin bietet es sich an, gleich mehrere öffentliche, durch ein Leerzeichen getrennte DNS-Server einzutragen, so dass beim Ausfall eines DNS-Servers die Information bei einer alternativen Instanz angefragt wird.

Wenn sich im Netz Rechner mit fester IP-Adresse befinden, können Sie diesen symbolische Namen zuordnen und sie mit der entsprechenden IP verbinden.

#--------------------------------------
# Domain configuration:
#--------------------------------------
DNS_FORWARDERS='212.185.252.201 194.25.2.129 192.76.144.66'
HOSTS_N='3'
HOST_1='192.168.1.1 fli4l'
HOST_2='192.168.1.2 surfstation1
HOST_3='192.168.1.3 surfstation2

Steuerung per Client

Der "imond" (IsdnMONitorDaemon) ist ein äußerst hilfreicher Dienst, der mit dem Client-Programm "imonc" (IsdnMONitorClient) zur Steuerung des Routers über einen Windows- oder Linux-Arbeitsplatz dient. Die Dateien finden Sie im Verzeichnis "\\fli4l-2.0.8\\windows\\imonc" beziehungsweise "\\fli4l-2.0.8\\unix\\".

Dazu muss auf dem Router der imond gestartet werden. Eine Absicherung ist dabei unbedingt erforderlich. Das mindeste Sicherheitsfeature ist das Setzen eines Passworts in der Variablen IMOND_ADMIN_PASS. Sinnvoll ist es zudem, bei IMOND_ENABLE und IMOND_REBOOT den Wert "no" einzutragen, so dass ein imonc-Benutzer ohne Kenntnis des Passwortes den Fli4l weder neu starten noch dessen Routing ändern kann.

#--------------------------------------
# imond configuration:
#--------------------------------------
START_IMOND='yes'
IMOND_ADMIN_PASS='
IMOND_ENABLE='no'
IMOND_REBOOT='no'

Protokollierung

Der Router wird vermutlich nur in den wenigsten Fällen direkt an der Linux-Konsole gewartet und überwacht. Um dennoch Warnungen, Hack-Versuche und Fehlermeldungen verfolgen zu können, kann man diese Informationen an einen anderen Rechner weiterleiten lassen.

Dazu dient der Systemlogdaemon (SysLogD), der Fehlermeldungen an ein oder mehrere definierte Ausgabegeräte schickt. Im unteren Beispiel werden die Meldungen sowohl auf den Bildschirm des Routers geschrieben wie auch an den Rechner mit der IP-Adresse 192.168.1.2 gesendet. Dort nimmt ein SysLog-Reader die Daten auf Port 514 entgegen und verarbeitet sie weiter. Linux kann bereits diese Meldungen verarbeiten, für Windows ist ein Zusatzprogramm nötig, wie etwa der SysLogD für Windows von MikroTik.

Wenn neben den Fehlermeldungen auch noch die Meldungen des Linux-Kernels übermittelt werden sollen, ist die Variable "OPT_KLOGD" auf "yes" zu setzen.

#--------------------------------------
# optional package: syslogd
#--------------------------------------
OPT_SYSLOGD='yes'
SYSLOGD_DEST_N='2'
SYSLOGD_DEST_1='*.* /dev/console'
SYSLOGD_DEST_2='*.* @192.168.1.2'

#--------------------------------------
# optional package: klogd
#--------------------------------------
OPT_KLOGD='yes'

Jahr 2000

Falls Sie im Router eine ältere, nicht Jahr 2000-fähige Hardware verwenden, kann Fli4l dies durch die Parameter des folgenden Bereichs korrigieren (in Y2K_DAYS steht die Anzahl der zu addierenden Tage. Nähere Informationen dazu finden Sie hier):

#--------------------------------------
# optional package: y2k correction
#--------------------------------------
OPT_Y2K='yes'
Y2K_DAYS='

Automatische IP-Adressvergabe mit DHCP

Sofern die im Netzwerk angeschlossenen Rechner keine festen IP-Adressen besitzen, können Sie die IP-Adressvergabe einem DHCP-Server überlassen. Das entsprechende Fli4l-Paket "DHCP" wird direkt in das fli4l-Verzeichnis entpackt. Zur Konfiguration dient die Datei fli4l-2.0.8\\config\\dhcp.txt.

Zuerst ist der DHCP-Server zu aktivieren: OPT_DHCP='yes'. Danach bestimmen Sie den IP-Adressbereich, aus dem eine IP an einen Netzwerkrechner übermittelt wird (DHCP_RANGE_1='). Im Beispiel vergibt der DHCP-Server maximal 40 IP-Adressen aus den beiden Bereichen 192.168.1.20 bis 192.168.1.29 sowie 192.168.1.40 bis 192.168.1.69.

Falls sich der Router in einem Windows-Netzwerk mit aktivem WINS-Service befindet, beschreiben die Variablen DHCP_WINSSERVER_1 und gegebenenfalls DHCP_WINSSERVER_2 die IP-Adresse des oder der verwendeten WINS-Server.

Um zu verhindern, dass ein über DHCP konfigurierter PC bei jeder DHCP-Anfrage eine neue IP aus dem Adresspool erhält, kann eine IP auch fest an die eindeutige MAC -Adresse einer Netzwerkkarte gebunden werden. Dies ist besonders in den Fällen wichtig, in denen beispielsweise ein Port an eine bestimmte IP durchgeschleift und immer der gleiche PC angesprochen werden soll (Port-Forwarding, Teil 2 dieser Artikelserie).

#---------------------------------------
# Optional package: DHCP server
#--------------------------------------
OPT_DHCP='yes'
IP_ETH_N='2'
DHCP_RANGE_1='192.168.1.20 192.168.1.29'
DHCP_RANGE_2='192.168.1.40 192.168.1.69'
DHCP_WINSSERVER_1='
DHCP_WINSSERVER_2='
HOSTS_N='3'
HOST_1='192.168.1.1 fli4l'
HOST_2='192.168.1.2 surfstation1
HOST_3='192.168.1.3 surfstation2 00:00:EB:CF:33:96

Achten Sie bei der DHCP-Konfiguration darauf, dass kein Rechner im Netz eine der Adressen aus dem dynamischen Adresspool als feste IP eingetragen hat!

Wichtig: im Fall der DHCP-Unterstützung ist zu beachten, das Fli4l die DHCP-Leases auf Diskette speichern will, somit ist der Disketten-Schreibschutz zu deaktivieren. Andernfalls würden bei einem Neustart die IP-Adressen an die Netzwerkrechner neu vergeben.

Fli4l als DSL-Router

Nach Auspacken des DSL-Paketes ist die Datei fli4l-2.0.8\\config\\dsl.txt zu bearbeiten. Neben dem obligatorischen Aktivieren des Moduls in der Variablen OPT_PPPOE sollte PPPOE_USEPEERDNS auf "yes" gesetzt werden. Dadurch wird erreicht, dass nach der Einwahl beim Provider dessen DNS-Server-Adresse an das LAN übermittelt wird - so hat man die Gewissheit, immer einen aktuellen DNS-Server vorzufinden.

Das Wichtigste bei der Einwahl beim Provider ist die korrekte Kombination aus Username und Passwort. T-Online-Kunden kombinieren die zwölfstellige Anschlusskennung, die T-Online-Nummer sowie die Zeichenfolge "0001@t-online.de" zu einer Zeichenkette (beziehungsweise "#0001@t-online.de", wenn die T-Online-Nummer weniger als zwölf Stellen aufweist). Diese Zeichenkette ist unter PPPOE_USER einzutragen. Bei PPPOE_PASS ist das persönliche, achtstellige T-Online-Kennwort einzusetzen.

#--------------------------------------
# Optional package: PPPoE
#--------------------------------------
OPT_PPPOE='yes'
PPPOE_USEPEERDNS='yes'
PPPOE_USER='anonymer'
PPPOE_PASS='surfer'
PPPOE_DEBUG='yes'
PPPOE_HUP_TIMEOUT='300'

Falls die Ausgabe von PPPoE-Meldungen über den SysLog-Dienst gewünscht ist, setzt man die Variable PPPoE_DEBUG entsprechend auf "yes". Sofern Sie nicht glücklicher Nutzer einer DSL-Flatrate sind, sollten Sie in der Variable PPPOE_HUP_TIMEOUT die Zeit in Sekunden eintragen, nach welcher der Router die Verbindung bei Untätigkeit automatisch beendet - im Beispiel 300 Sekunden oder 5 Minuten.

Erstellen der Router-Bootdiskette

Nach der Konfiguration aller relevanten Parameter ist es an der Zeit, eine formatierte 1,44-Zoll-Diskette einzulegen. Unter Windows führen Sie die Dateien

\\fli4l-2.0.8\\mkclean.bat
\\fli4l-2.0.8\\mkfloppy.bat

aus und unter Linux

\\fli4l-2.0.8\\mkclean.sh
\\fli4l-2.0.8\\mkfloppy.sh

Bei korrekter Konfiguration startet der Kopiervorgang, ansonsten geben die Fehlermeldungen Aufschluss über das Problem.

Nach dem Abschluss der Kopieraktion haben Sie eine bootfähige Diskette, mit der Sie Ihren neuen DSL-Router umgehend in Betrieb nehmen können.

Wie Sie Fli4l durch Erweiterungen und Feintuning noch leistungsfähiger machen können, lesen Sie im 2. Teil des Beitrags. (mha)