DSL-Router mit Firewall auf Basis von m0n0wall selber bauen
Alles unter Kontrolle - DSL-Router from Scratch
Mirko Kulpa, 17.11.2004
Natürlich kann man sich seinen DSL-Router auch fertig kaufen. Aber das Selberbauen macht doch
viel mehr Spaß.
Dieses Tutorial beschreibt den Aufbau eines Routers auf Basis von m0n0wall.
Für das vorgestellte Projekt benötigen wir:
- Ein PC Engines WRAP-Board mit min. 2 LAN-Ports (alternativ ein Soekris net4501)
- Das passende Gehäuse
- Eine Compact Flash Karte mit min. 8 MB
- Ein Netzteil 12 Volt 1 Ampere
- Einen CF-Adapter oder Card-Reader
- Ein Nullmodem- bzw. Rolloverkabel
- Einen PC mit Linux oder Windows
Die Kosten liegen (ohne den PC) deutlich unter 200 Euro.
Die Hardware
Zuerst benötigen wir die passende Hardware für unseren Router. Ältere PC-Hardware ist zwar preiswert und ausreichend leistungsstark,
sie produziert aber auch Abwärme und Lärm. Eine interessante Alternative sind Einplatinencomputer.
Die beiden bekanntesten Anbieter dieser Geräte sind die Firmen Soekris (USA) und PC Engines (Schweiz).
Die Boards net4501 und net4801 von Soekris eignen sich sehr gut zum Aufbau eines Routers.
Leider hat Soekris keinen
deutschen Distributor. Interessierte Leser finden zwei europäische Händler in der Linkliste.
Der andere Anbieter für Embedded PC-Boards ist die schweizer Firma PC Engines von Pascal Dornier.
Aus Zürich kommt die Wireless Router Application Platform (WRAP)
zu uns. Ich habe mich für ein WRAP.1D-2 mit drei LAN-Schnittstellen entschieden.
Die Boards und Zubehör können von deutschen Distributor Tronico.net bezogen werden. Dort werden für das Board
ca. 130 Euro und für das passende Gehäuse ca. 15 Euro fällig. Die Ware wurde innerhalb weniger Tage geliefert.
Das WRAP 1D-2 verfügt über einen Steckplatz für Compact Flash und einen Mini-PCI-Steckplatz. Es wird von einer
National Geode SC1100 CPU mit 266 MHz angetrieben.
Für die Grundkonfiguration steht eine serielle Schnittstelle zur Verfügung.
Die Stromversorgung erfolgt über ein Steckernetzteil direkt zum Board oder über Power-over-Ethernet (PoE).
Einen passenden PoE-Injector gibt es vom selben Hersteller.
Das fertige Gerät hat keine beweglichen Teile und bootet von der CF-Karte, die Wärmeentwickelung ist minimal
und es ist vollkommen lautlos.
Für die m0n0wall reicht eine Speicherkarte
mit 8 MB vollkommen aus. 16 MB Compact Flash sollten nicht mehr als 10 Euro kosten.
Die Gehäuse werden in grau, rot und schwarz angeboten.
Zur Montage des Boards müssen die Gewindebolzen des seriellen Ports demontiert werden.
Leider kann man beim WRAP den Compact Flash nach der Montage im Gehäuse nicht mehr wechseln.
Die mitgelieferten Schrauben passen irgendwie nicht so richtig zum Gehäuse. Da sich die Schrauben
ihr Gewinde selber in das Blech schneiden, entstehen beim ersten Eindrehen Metallspäne. Diese sollte man vor
der Montage des Systemboards gründlich entfernen.
Ansonsten ist das Gehäuse ordentlich verarbeitet und mit einer Stellfläche von 16x16 Zentimetern angenehm klein.
WRAP in Betrieb nehmen
Zuerst verbinden wir den seriellen Ports des WRAP-Boards mit dem Nullmodemkabel mit einem PC.
Dazu eignen sich zum Beispiel die Rolloverkabel von Cisco sehr gut. Auf dem PC benötigen wir eine Terminalemulation
wie zum Beispiel Hyperterm. Unter Linux kann man auch ser2net einsetzen um mit Telnet auf den seriellen Port
zuzugreifen.
Bei meinem Board stand die serielle Schnittstelle auf 38400 Bit/s. Falls Sie also nur wirre Zeichen in
der Terminalemulation sehen, probieren Sie ruhig einige Geschwindigkeiten durch.
Für den Betrieb mit m0n0wall muss die Konsole unseres Routers auf 9600 Bit/s eingestellt werden.
Dazu betätigt man während des RAM-Test die Taste "s".
Im angezeigten Dialog kann über die Taste "9" die Konsole auf 9600 Baud umgestellt werden.
PC Engines WRAP.1C v1.03
640 KB Base Memory
64512 KB Extended Memory
01F0 Master 848A CF-ATA
Phys C/H/S 978/8/32 Log C/H/S 978/8/32
WRAP setup
*9* 9600 baud (3) 38400 baud (5) 57600 baud
*C* CHS mode (L) LBA mode
(X) Xmodem upload (Q) Quit
Nach erfolgreicher Umstellung muss die Geschwindigkeit am PC entsprechend angepasst werden.
Die Betriebsspannung kann dem WRAP-Board auch über Power over Ethernet zugeführt werden. Dazu benötigt man einen passiven
Power-Injector wie ihn die Abbildung zeigt. Er speist die Gleichspannung in die Adernpaare 4/5 und 7/8 des LAN-Anschlusses
ein.
PC Engines empfiehlt ein Netzteil mit 12 bis 18 Volt und 10 Watt. Der Stecker hat einen Durchmesser von 2,1 Millimeter und
am Schirm liegt die Masse. Für WRAP-Boards mit zwei WLAN-Karten benötigt man ein Netzteil mit 15 Watt.
m0n0wall
Als Software für unseren Router kommt m0n0wall zum Einsatz. Manuel Kasper hat dieses Projekt
für eine Firewall auf Basis von FreeBSD in Leben gerufen.
m0n0wall bietet viele interessante Features wie VLAN-Support, Einrichtung eines Captive Portals,
IPsec- und PPTP-VPN, DynDNS, Traffic Shaping und Wake on LAN. m0n0wall schreibt sich wirklich mit zwei
Nullen im Namen, aber man darf auf monowall sagen.
m0n0wall installieren
Zuerst laden wir uns das aktuelle Image von http://m0n0.ch/wall/downloads.php.
Das Image muss nun auf unsere CF-Karte geschrieben werden.
Das ist unter Linux, BSD oder Windows möglich. Unter Windows hilft uns dabei das Tool "physdiskwrite", das es
ebenfalls auf der Downloadseite von m0n0wall gibt.
Linux:
gunzip -c wrap-1.11.img | dd of=/dev/hdX bs=16k
/dev/hdX steht für Gerätenamen der CF-Card
Windows:
physdiskwrite wrap-1.11.img
Die fertige CF-Karte kommt nun in das Board. An dieser Stelle sollten noch
keine LAN-Kabel an das WRAP-Board angeschlossen sein.
Nach dem Booten sollte sich die Box auf der seriellen Schnittstelle melden:
PC Engines WRAP.1C v1.03
640 KB Base Memory
64512 KB Extended Memory
01F0 Master 848A CF-ATA
Phys C/H/S 978/8/32 Log C/H/S 978/8/32
FreeBSD/i386 bootstrap loader, Revision 0.8
(root@nb.neon1.net, Sat May 29 16:40:46 CEST 2004)
/kernel text=0x182a80 data=0x1d66c+0x1ae38 syms=[0x4+0x28650+0x4+0x2f688]
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel]...
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
[snip]
*** This is m0n0wall, version 1.1
built on Sun Aug 22 11:41:15 CEST 2004 for wrap
Copyright (C) 2002-2004 by Manuel Kasper. All rights reserved.
Visit http://m0n0.ch/wall for updates.
LAN IP address: 192.168.1.1
Port configuration:
LAN -> sis0
WAN -> sis1
m0n0wall console setup
**********************
1) Interfaces: assign network ports
2) Set up LAN IP address
3) Reset webGUI password
4) Reset to factory defaults
5) Reboot system
Enter a number:
Nun müssen wir unsere Interface zuweisen, die LAN-IP einstellen und DHCP aktivieren.
Dazu wählen wir zuerst den Punkt 1 aus dem Menü. VLANs richten wir zu diesem Zeitpunkt nicht ein.
Dann lassen wir die Schnittstellen automatisch erkennen. Dazu gibt man "a" ein und steckt dann
ein LAN-Kabel an den entsprechenden Port. Also zuerst ein Kabel zum PC. Hier wird ein
Kreuzkabel benötigt. Dann kommt der WAN-Port an die Reihe. Dieser wird mit einen normalen
Patchkabel mit dem DSL-Modem verbunden.
Der LAN-Port ist per Default der Port neben der Spannungsversorgung und der WAN-Port
ist der Port in der Mitte.
m0n0wall console setup
**********************
1) Interfaces: assign network ports
2) Set up LAN IP address
3) Reset webGUI password
4) Reset to factory defaults
5) Reboot system
Enter a number: 1
Valid interfaces are:
sis0 00:0d:b9:00:7b:48
sis1 00:0d:b9:00:7b:49
sis2 00:0d:b9:00:7b:4a
Do you want to set up VLANs first?
If you're not going to use VLANs, or only for optional interfaces, you
should say no here and use the webGUI to configure VLANs later, if required.
Do you want to set up VLANs now? (y/n) n
If you don't know the names of your interfaces, you may choose to use
auto-detection. In that case, disconnect all interfaces before you begin,
and reconnect each one when prompted to do so.
Enter the LAN interface name or 'a' for auto-detection: a
Connect the LAN interface now and make sure that the link is up.
Then press ENTER to continue.
Detected link-up on interface sis0.
Enter the WAN interface name or 'a' for auto-detection: a
Connect the WAN interface now and make sure that the link is up.
Then press ENTER to continue.
Detected link-up on interface sis1.
Enter the Optional 1 interface name or 'a' for auto-detection
(or nothing if finished):
The interfaces will be assigned as follows:
LAN -> sis0
WAN -> sis1
The firewall will reboot after saving the changes.
Do you want to proceed? (y/n) y
Nachdem die m0n0wall gebootet hat, richten wir über die serielle Verbindung unser LAN-Interface ein.
Man kann aber auch die IP-Adresse auf 192.168.1.1 eingestellt lassen.
Über den Menüpunkt 2 gelangt man zu den entsprechenden Abfragen.
m0n0wall console setup
**********************
1) Interfaces: assign network ports
2) Set up LAN IP address
3) Reset webGUI password
4) Reset to factory defaults
5) Reboot system
Enter a number: 2
Enter the new LAN IP address: 10.0.0.1
Subnet masks are entered as bit counts (as in CIDR notation) in m0n0wall.
e.g. 255.255.255.0 = 24
255.255.0.0 = 16
255.0.0.0 = 8
Enter the new LAN subnet bit count: 24
Do you want to enable the DHCP server on LAN? (y/n) y
Enter the start address of the client address range: 10.0.0.10
Enter the end address of the client address range: 10.0.0.19
The LAN IP address has been set to 10.0.0.1/24.
You can now access the webGUI by opening the following URL
in your browser:
http://10.0.0.1/
Press ENTER to continue.
Im gezeigten Beispiel wird die m0n0wall auf die Adresse 10.0.0.1 eingestellt.
m0n0wall konfigurieren
Die eigentliche Konfiguration der m0n0wall wird über das Webinterface vorgenommen.
Dazu geben wir im Browser unser Wahl die IP-Adresse der m0n0wall ein. In unserem Beispiel also die 10.0.0.1.
Der Zugang erfolgt über den Benutzernamen admin und das Kennwort mono.
Zuerst konfigurieren wir den DSL-Zugang. Unter "Interfaces (assign)/WAN" wählen wir
den passenden Type aus. In Deutschland verwenden fast alle Provider PPPoE. In Österreich wird gerne
auf PPTP zurückgegriffen.
Dann geben wir in den aktiven Felder den Username und das dazugehörige Password ein.
Nun sollte der DSL-Zugang auch schon funktionieren.
Zur Fehlersuche kann man sich das Log unter "Diagnostics/System logs" ansehen.
Nun sollte man noch das Passwort für den Adminzugang ändern und diesen auf HTTPS umstellen.
Ein interessantes Feature der m0n0wall ist der "Traffic Graph". Zur Anzeige wird der Adobe SVG Viewer benötigt.
Den Viewer gibt es für die Plattformen Linux, Mac, Solaris und Windows bei Adobe zum Download.
Nun können weitere Features der m0n0wall eingerichtet werden. DynDNS, SNMP, Firewall, Traffic Shaper, VPN
und vieles mehr wartet auf Ihren Forschergeist. Mit Hilfe von SNMP kann man seine m0n0wall mit MRTG
beobachten und Statistiken zur Leitungsauslastung erstellen (siehe Linkliste).
Vorsicht ist bei der Änderung der LAN-IP geboten. Der DHCP-Scope wird nicht automatisch angepasst.
Die m0n0wall eignet sich momentan nur für Nutzer einer Flatrate oder eines Volumentarifes, da sie die
Verbindung ständig aufrecht erhält.
Die m0n0wall kann auch als Wireless-LAN-AP eingesetzt werden. Eine Liste der unterstützen WLAN-Karten
(miniPCI und PCMCIA) finden Sie in der Dokumentation zur monowall.
Auf den Webseiten zur m0n0wall findet sich eine gute Dokumentation und eine Mailingliste inklusive eines
durchsuchbaren Archives.
Fragen zur m0n0wall können Sie im Forum Netzwerktechnik
diskutieren.
Informationen und die im Artikel erwähnten Softwarepakete finden Sie unter folgenden Links:
|