Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Tutorials

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 Board mit einer CF-Card

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.

Fertiges Gehäuse etwa 16 mal 16 cm

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.

Unschön überstehende Schrauben

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.

Power Injector mit 2 RJ-45-Buchsen

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.

Webinterface der monowall

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.

Webinterface der monowall

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:

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012