Vorbemerkung (15.05.2015)

Die nachfolgende Beschreibung dokumentiert den Aufbau eines FLI4L-Routers im Jahr 2002 und steht hier nur noch aus nostalgischen Gründen.

Allgemeine Beschreibung

Seit 26. März 2002 ist unser Computer durch einen selbst gebauten (ISDN-)Router mit eingebauter Firewall geschützt. Auch wenn die Kindlein später mal ihren eigenen Computer haben, ist ein Router eine gute Lösung.

Unser Router basiert auf dem freien Projekt FLI4L: FLoppy Isdn for Linux – ist ein Open Source Freeware Router auf Linux-Basis. Weitere Inforamtionen sind unter www.fli4l.de zu finden. Alle hier gezeigten Schaltpläne sind nicht von mir sondern stammen aus den entsprechenden OPT-Paketen des FLI4L-Projekts. Nachfolgend ist meine Konfiguration beschrieben.

fli4l Vorderansicht PCD-5H
Basis ist der Siemens-Nixdorf PCD-5H

Der Router steht ohne Tastatur und Bildschirm unter meinem Schreibtisch und wird mittels IMONC (bei mir der Windows-Client) gesteuert. Der IMONC liefert auch die Info über den Online-Status in der System-Tray. Das Windows-DFÜ-Netzwerk von meinen Windows-Rechnern wird nicht mehr benötigt und ist gar nicht mehr installiert, so dass böswillige Programme ins Leere laufen würden. An der Vorderseite sind Tasten montiert, auf die wichtige Funktionen (z.B. Reboot, Verbindung zum Provider aufbauen, Auflegen) gelegt sind, so dass keine Tastatur zur Steuerung benötigt wird.

fli4l Seitenansicht mit geöffnetem Gehäuse
Es geht recht eng zu: eine Platte und eine CD-Rom brauchen einfach Platz.

Hier sieht man den Rechner (im Bild noch der Vorgänger des aktuell verwendeten Rechners – ein PCD 4H/VL) ohne Deckel. Man sieht deutlich die Kabel, die von der Rückwand in den Festplattenkäfig laufen – diese gehen von der parallelen Schnittstelle zum Display bzw. von der seriellen Schnittstelle zu den auf der Frontseite befindlichen Tasten.

fli4l Rückansicht PCD-5H
Die Rückansicht mit den zwei Netzkarten, der ISDN-Karte und dem seriellen und parallelen Anschlüssen, die nach innen geführt werden.

Hier kann man sehr gut die Kabel von den Schnittstellen zum Display bzw. zu den Tasten sehen. Außerdem zu sehen: Die zwei Netzwerkkarten (jeweils mit BNC, TP- und AUI-Anschluss) und die ISDN-Karte.

 

Hardware

Siemens Nixdorf PCD 5H/90 PCI

Jumper des Mainboard D843 von Siemens-Nixdorf
Jumper des Mainboard D843 von Siemens-Nixdorf

SNI D842-Board

  • Intel Pentium-Prozessor mit 90 MHz.
  • Board SNI D842
  • 64 MB RAM
  • 5 ISA bzw. 3 ISA und 2 PCI-Slots

Damit der Prozessorkühler abgeschaltet werden kann (aus Lärmgründen) ohne dass der Prozessor zu heiß wird habe ich den Prozessortakt auf 75 MHz heruntergesetzt.

Prozessor Steckbrücke 
J2 1-2
Steckbrücke 
J2 3-4
Steckbrücke 
J2 5-6
Steckbrücke 
J3
75 Mhz gesteckt gesteckt
90 MHz gesteckt gesteckt
100 MHz gesteckt
120 MHz gesteckt gesteckt gesteckt
133 MHz gesteckt gesteckt

Die Abbildung und die Tabelle wurden dem Systemmanual zum Siemens-Nixdorf D842-Systemboard entnommen. Weitere Informationen zu diesem Systemboard hat Willie zusammengetragen.

Grafikkarte

On-Board Grafikkarte Tseng Labs ET4000/W32 PCI – Die Grafikkarte wird eigentlich nicht benötigt, da die Wartung per serieller Konsole (siehe weiter unten) geschieht.

Netzkarten

  • 3Com Etherlink III 3C509b – für internes Netz
    IRQ: 5, I/O: 0x240-0x24F, Halb-Duplex
  • 3Com Etherlink III 3C509b – evtl. mal für DSL oder so
    IRQ: 15, I/O: 0x210-0x21F, Halb-Duplex

Die Netzkarten haben jeweils drei Anschlüsse: BNC, TP und AUI. Zur Konfiguration siehe unten bei Basis-Konfiguration. Um IRQ, I/O-Adresse, Duplex-Art und zu verwendenden Anschluss zu konfigurieren benötigt man eine DOS- bzw. Windows-Bootdiskette sowie das Programm 3c5x9cfg.exe (läuft nur unter DOS).

ISDN-Anbindung

AVM Fritz!Card Classic (ISA-Karte) 

IRQ: 10, I/O: 0x300 – Die Konfiguration erfolgt über die Jumper auf der Karte.

Massenspeicher

Festplatte Seagate ST 5660A mit 504 MB

Die benötigten Dateien sind auf Platte abgelegt. Die Platte dient auch als Bootmedium. Der Betrieb des Routers selbst erfolgt dann aus der Ramdisk heraus (Siehe Installations-Variante A der FLI4L-Doku).

IDE-CD-ROM-Laufwerk

Wird vielleicht mal gebraucht und war übrig…

LC-Anzeige

Anzeige- und Schaltelemente
LC-Anzeige, eine DUO-LED (rt/gn), ein Schalter und 5 Taster

Aufbau

LCD-Modul pplcd mit Serielladapter
LCD-Modul pplcd mit Serielladapter

Als „Schmankerl“ habe ich meinem Router ein LC-Display spendiert. Das LCD wird am Parallelport angeschlossen. Der Schaltplan befindet sich in der Doku.
LCD-Modul

Ich setze das kleine LCD der Firma Kernel concepts ein, das 4 Zeilen à 20 Zeichen anzeigen kann. Der auf dem Modul verwendete Chip ist ein HD 66712U von Hitachi, der zum HD 44780 nahezu 100%ig kompatibel ist. Außerdem habe ich mir die auch bei Kernel concepts erhältliche Parallelport-Adapterplatine geleistet, damit ich nicht selbst Drähte an das LCD löten muss. Der Anschluss des Parallelports kann dort wahlweise über einen 25-poligen SUB-D Stecker oder eine 26-polige Pfostenleiste erfolgen.

Das LC-Display wird mit der mitgelieferten FFC-Leitung direkt auf die Adapterplatine gesteckt. Die Spannungsversorgung erfolgt über einen 3,5″ Floppy Spannungsversorgungsstecker. Auf der Platine befindet sich zusätzlich noch ein Potentiometer zur Einstellung des Display-Kontrasts. Nachteil der Adapterplatine ist die FFC-Leitung, die relativ kurz und unflexibel ist. Bei Platzproblemen rate ich davon ab.

Da mein Mainbord keine Parallelport-Steckleisten besitzt (die Buchsen sind direkt auf die Platine gelötet), habe ich einfach außen an den Parallelport eine Parallelkabel angeschlossen und dieses in den Rechner bis zur Adapterplatine geführt.

Um die Hintergrundbeleuchtung des LCD zu schonen, habe ich in die 5V-Leitung der Hintergrundbeleuchtung (bei mir Pin 15) des LCD einen Ein-/Ausschalter eingebaut (der gelbe Schalter). Mit diesem kann ich die Hintergrundbeleuchtung nach Belieben ein- und ausschalten.

Außerdem habe ich auch die Option zwei Displayseiten anzeigen zu können realisiert. Hierfür muss Pin 6 (D4) des LCD auf einen Schalter gelegt werden, der zwischen Pin 1 (STROBE) und Pin 17 (SELECT IN) des Parallelport-Anschlusses umschaltet (siehe Doku).

    25-pol. Sub-D        LCD

    1 -------|
             |
              \
               \-------- Pin 6
             |
    17-------|

           Schalter

Material

  • 1 x LCD-Modul inkl. Parallelportplatine von Kernel concepts, Art. Nr. PPLCD-001
  • 1 x Umschalter, z.B. Conrad Art.-Nr. 70 30 10-77
  • je einen Parallelport-Stecker männlich und weiblich
  • 1 x 1xEin/Aus-Schalter, schwarz (gelb scheint’s nicht mehr zu geben – ich hatte noch einen im Fundus), z.B. Conrad Art.-Nr. 70 61 40-77

 

Angezeigte Informationen auf Display-Seite 1 im Offline-Modus

LC-Anzeige Offline (1)
Im Offline-Modus wird Datum, Zeit, CPU-Last und der Status der beiden ISDN-Kanäle angezeigt.
Zeile 0: Fester Text „FLI4L“ und „CPU“, CPU-Auslastung in ProzentZeile 1: Aktuelles Datum und aktuelle Zeit

Zeile 2: Fester Text „1:“ und „2:“ sowie ISDN-Status für Kanal 1 und 2

Zeile 3: Derzeit leer

 

Angezeigte Informationen auf Display-Seite 2 im Offline-Modus

LC-Anzeige Offline (2)
Alternativ kann im Offline-Modus die CPU-Last und die Uptime angezeigt werden.
Zeile 0: Fester Text „FLI4L“ und „CPU“, CPU-Auslastung in ProzentZeile 1: Fester Text „Uptime“, Uptime des Routers

Zeile 2: Derzeit leer

Zeile 3: Derzeit leer

 

Angezeigte Informationen auf Display-Seite 1 im Online-Modus

LC-Anzeige Online (1)
Online-Darstellung 1: CPU-Last, In-/Out-Raten und die Verbindungsdauer je ISDN-Kanal werden angezeigt.
Zeile 0: Fester Text „FLI4L“ und „CPU“, CPU-Auslastung in ProzentZeile 1: Fester Text „IN:“ und „OUT:“, ISDN Input- und Output Rate (Ist im Bild Null, da während der Fotoaufnahmen kein Datenverkehr lief)

Zeile 2: Fester Text „CH1:“, Load 1, Online-Zeit für Kanal 1

Zeile 3: Fester Text „CH2:“, Load 2, Online-Zeit für Kanal 2

Anmerkung: Die Ausgabe von Load liefert derzeit immer 0.00. Leider scheint niemand genau zu wissen, was da eigentlich angezeigt werden soll.

 

Angezeigte Informationen auf Display-Seite 2 im Online-Modus

LC-Anzeige Online (2)
Online-Darstellung 2: ISDN-Kanal 1 ist mit MUC.DE verbunden.
Zeile 0: Fester Text „CH1:“, Aktiver Circuit-Name (aus isdn.txt) für Kanal 1Zeile 1: Fester Text „IP:“ ISDN-IP-Adresse für Kanal 1

Zeile 2: Fester Text „CH2:“, Aktiver Circuit-Name (aus isdn.txt) für Kanal 2

Zeile 3: Fester Text „IP:“ ISDN-IP-Adresse für Kanal 2

Die Konfigurationsdatei lcd.txt ist ist weiter unten dargestellt.

Befehls-Tasten

Anzeige- und Schaltelemente
LC-Anzeige, eine DUO-LED (rt/gn), ein Schalter und 5 Taster

Johannes Hermen und Georg Kainzbauer haben basierend auf einem Artikel des Linux-Magazins (Ausgabe 9/2000) die Abfrage von bis zu vier Tasten in Form des OPT_Pakets opt_cpanel realisiert. Die Tasten sind nützlich, wenn keine Tastatur am Router angeschlossen ist, man aber trotzdem einige rudimentäre Kommandos oder Abläufe (wie z.B. einen Reboot) anstarten möchte.

Schaltplan

Schaltplan-cpanel
Schaltplan des cpanel: 4 Taster und 2 LEDs

Der Schaltplan, der – wie auch der oben genannte Artikel – auch in der Dokumentation des OPT-Pakets zu finden ist, ist nebenstehend abgebildet. Ich habe für die „Online/Offline-LED“ eine zweipolige Duo-LED (rot/grün) verwendet. Solange der Router offline ist (d.h. es besteht keine Verbindung zum Provider) leuchtet die LED rot, bei aktiver Verbindung leuchtet sie grün. Nach Initialisierug des cpanel-Pakets – also in der Regel wenn der Router betriebsbereit ist – leuchtet die Status-LED gelb. Wird eine der Tasten gedrückt, blinkt die Status-LED zur Bestätigung einige Male.

Die Tasten werden an die serielle Schnittstelle angeschlossen. Vorzugsweise sollte COM2 bzw. ttyS1 verwendet werden, um eine Kollision mit der seriellen Konsole zu vermeiden.

Zuordnung Leitung zu Pin
Anschluss Pin 9-polig Pin 25-polig
DTR 4 20
GND 5 7
RTS 7 4
RI 9 22
CD 1 8
DSR 6 6
CTS 8 5

Da mein Mainbord keine Steckleisten für die seriellen Ports besitzt (die Buchsen sind direkt auf die Platine gelötet), habe ich einfach außen an den seriellen Port ein serielles Kabel angeschlossen und dieses in den Rechner direkt bis zu den Tastern und LEDs geführt und dort entsprechend angelötet.

Dann geht es nur noch an die Konfiguration der Tasten. Diese können beliebige Befehle, also auch Shell-Skripte, aufrufen. Dabei werden bis zu 14 Tastenkombinationen ausgewertet (also z.B. Taste 1 und Taste 3 gedrückt usw.).

Die Verwendung der Version 2.1 von cpanel unterscheidet sich von der Vorversion durch die Kodierung der Tasten. Die Tasten repräsentieren jetzt Bit-Wertigkeiten, was es erlaubt, beliebige Tastenkombinationen abzufragen. Die Taster erzeugen also – wenn sie alleine gedrückt werden – die Bit-Wertigkeiten 1, 2, 4 oder 8.

Achtung Falle: Man benötigt unbedingt das OPT-Paket glibc255, damit die Version 2.1 von cpanel läuft. Das steht zwar in der Doku drin, aber ich habe es erstmal übersehen…

Ich habe einen roten und drei grüne Taster eingebaut, die bei mir ist folgendermaßen konfiguriert sind:

  • Taster 1 (rote Farbe) führt /sbin/reboot aus, rebootet den Router also. Das Linux-Magazin schlägt hierfür zwei in Reihe geschaltete Taster vor, um versehentliches Rebooten zu erschweren. Ich habe – trotz kleiner Kinder im Haus – darauf verzichtet.
  • Taster 2 (grüne Farbe) führt fli4lctrl hangup ippp0 aus, beendet also die bestehende ISDN-Verbindung.
  • Taster 3 (grüne Farbe) führt fli4lctrl dial ippp0 aus, baut also eine Verbindung mit dem aktuellen Circuit zum Provider auf.
  • Taster 4 (ebenfalls grüne Farbe) ist bei mir (noch) nicht belegt.
  • Der gelbe „Taster“ ist ein Schalter und dient zum Ein- und Ausschalten der Display-Beleuchtung (siehe dort)
 ##-----------------------------------------------------------------------------
 ## cpanel.txt - fli4l configuration parameters               fli4l-2.0.x v3.4.1
 ##
 ##-----------------------------------------------------------------------------
 OPT_CPANEL='yes'           # install cpanel: yes or no
 CPANEL_PORT='/dev/ttyS1'   # Seriell Port: /dev/ttyS0 = COM1, /dev/ttyS1 = COM2
 CPANEL_STATUSLED='ISDN'    # DSL, ISDN, DSLISDN, SCRIPT

 #------------------------------------------------------------------------------
 # CPANEL_STATUSLED='SCRIPT': Benutzerdefiniertes Script anlegen
 #------------------------------------------------------------------------------
 CPANEL_SCRIPTLINE_N='0'    # Anzahl der Scriptzeilen
 CPANEL_SCRIPTLINE_1=''     # Scriptzeile 1
 CPANEL_SCRIPTLINE_2=''     # Scriptzeile 2

 #------------------------------------------------------------------------------
 # Tastenbelegung
 #------------------------------------------------------------------------------
 CPANEL_FUNKTION1='/sbin/reboot'
 CPANEL_FUNKTION2='/usr/local/bin/fli4lctrl hangup ippp0'
 CPANEL_FUNKTION3=''
 CPANEL_FUNKTION4='/usr/local/bin/fli4lctrl dial ippp0'
 CPANEL_FUNKTION5=''
 CPANEL_FUNKTION6=''
 CPANEL_FUNKTION7=''
 CPANEL_FUNKTION8=''
 CPANEL_FUNKTION9=''
 CPANEL_FUNKTION10=''
 CPANEL_FUNKTION11=''
 CPANEL_FUNKTION12=''
 CPANEL_FUNKTION13=''
 CPANEL_FUNKTION14=''

Material

  • 1 x LED gelb, z.B. Conrad Art.-Nr. 18 49 00-77
  • 1 x Duo-LED, grün/rot, zweipolig, z.B. Conrad DL 5, Art.-Nr. 18 44 03-77
  • 2 x LED-Befestigungsring, z.B. Conrad Art.-Nr. 18 59 14-77
  • 2 x Widerstand 2,2 kOhm, 1/4 W, z.B. Conrad Art.-Nr. 40 32 96-77
  • 1 x Widerstand 10 kOhm, 1/4 W, z.B. Conrad Art.-Nr. 40 33 77-77
  • 1 x 1xEin/Aus-Taster, rot, z.B. Conrad Art.-Nr. 70 61 24-77
  • 3 x 1xEin/Aus-Taster, grün, z.B. Conrad Art.-Nr. 70 61 67-77

 

Wartung und serielle Konsole

Die Wartung des Routers Routers kann entweder per angeschlossenem Bildschirm und Tastatur erfolgen oder aber über die serielle Konsole (auch ein Zugriff über SSH ist möglich, wird hier aber nicht weiter beschrieben). Ich habe die Variante über die serielle Konsole gewählt, da dann ein Bildschirm und eine Tastatur weniger herumstehen und Staub ansetzen.

Serielle Konsole bedeutet, dass alle Ausgaben, die normalerweise an der Konsole erfolgen würden, auf die serielle Schnittstelle umgeleitet werden. Ein dort angeschlossener Rechner mit entsprechendem Terminalprogramm kann dann im Bedarfsfall die Aufgabe der Konsole übernehmen. Hierfür wird ein modifiziertes Null-Modem-Kabel verwendet, um den Router auch mit abgeschaltetem Terminal(programm) betreiben zu können. Der Schaltplan wurde dem „howto-serial-console-2.html“ vonhttp://www.fli4l.de/ entnommen.

Benötigt wird ein dreiadriges Kabel, an dem einige Kontakte in den Steckern überbrückt werden. Die Leitungen 2 und 3 werden gekreuzt.

                                               Zuordnung der Kontakte
 weiblich                      weiblich            9pol    25pol
   9pol                          9pol               1        8

 +- 1                             1  -+             2        3
 |                                    |              
 |  2 ------------\ /------------ 2   |             3        2
 |                 X                  |
 |  3 ------------/ \------------ 3   |             4       20
 |                                    |
 +- 4                             4  -+             5        7
 |                                    |               
 |  5 --------------------------- 5   |             6        6
 |                                    |
 +- 6                             6  -+             7        4

 +- 7                             7  -+             8        5
 |                                    |
 +- 8                             8  -+

    9                             9

Zur Installation muss die Datei syslinux.cfg angepasst werden. Wie, ist in der FLI4L-Dokumentation beschrieben. Nachfolgend meine Datei für die Einstellung COM1, 19200 Bd, 8 Bit, No parity:

 SERIAL 1 19200
 TIMEOUT 0
 DEFAULT kernel
 APPEND load_ramdisk=1 initrd=rootfs.gz root=/dev/ram0 boot=/dev/hda1 console=ttyS0,19200n8

 

Basis-Konfiguration

 

Allgemeine Konfiguration

Mein Router basiert auf der derzeit (März 2003) aktuellen FLI4L-Version 2.0.7. Ich habe die Installationvariante A gewählt, d.h. das gesamte Filesystem des Routers wird in der RAM-Disk angelegt (Speicher ist ja wirklich ausreichend vorhanden…). Die Datei OPT.TGZ wird von der Festplatten-Partition hda2 geladen.

 #------------------------------------------------------------------------------
 # General settings:
 #------------------------------------------------------------------------------
 HOSTNAME='router'                       #name of fli4l router
 PASSWORD='123456'                       #password for telnetd, ftpd and sshd
 MOUNT_BOOT='rw'                         #mount boot device (floppy): ro, rw, no
 RAMSIZE='8192'                          #size of ramdisk for unzipped opt.tgz
 # the variables MOUNT_OPT, PART_OPT and UPDATE_MODE will be ignored if
 # RAMSIZE is not empty. see docu
 MOUNT_OPT='ro'                          #mount opt device: ro, rw
 PART_OPT='hda2'                         #location of opt-files? ram1 or disk-partition
 UPDATE_MODE='full'                      #add, cfg, full, none, see documentation

Konfiguration der Netzwerkkarten und des Netzwerks

Ich habe zwei gleiche Netzkarten stecken. Die zweite ist schon mal eingebaut, damit der Anschluss von DSL möglichst ohne weitere Hardware-Schraubereien gehen kann.

 #------------------------------------------------------------------------------
 # Ethernet card drivers:
 # uncomment your ethernet card
 #------------------------------------------------------------------------------
 ETH_DRV_N='1'                   #number of ethernet drivers to load, usually 1
 ETH_DRV_1='3c509'               # ISA: 3COM EtherLinkIII (3c509b)
 ETH_DRV_1_OPTION=''

Jeder Netzwerkkarte wird eine Adresse zugewiesen, unter der sie von den an dieser Netzwerkkarte angeschlossenen Rechnern aus ansprechbar ist. Das ist die Adresse des Routers bzw. des DNS-Servers!

 #------------------------------------------------------------------------------
 # Ether networks used with IP protocol:
 #------------------------------------------------------------------------------
 IP_ETH_N='2'                            #number of ip ethernet networks, usually 1
 IP_ETH_1_NAME=''                        #optional: other device name than ethX
 IP_ETH_1_IPADDR='192.168.1.1'           #IP address of your nth ethernet card
 IP_ETH_1_NETWORK='192.168.1.0'          #network of your LAN
 IP_ETH_1_NETMASK='255.255.255.0'        #netmask of your LAN
 IP_ETH_2_NAME=''                        #optional: other device name than ethX
 IP_ETH_2_IPADDR='192.168.2.1'           #IP address of your nth ethernet card
 IP_ETH_2_NETWORK='192.168.2.0'          #network of your LAN
 IP_ETH_2_NETMASK='255.255.255.0'        #netmask of your LAN

Das Maskieren wird bei mir noch speziell für FTP und Real-Audio angepasst, außerdem werden zusätzliche Ports für FTP freigeschaltet.

In das Firmennetz wähle ich mich per VPN-Tunnel ein – hierfür muss mein Router das IPSEC-Protokoll weiterleiten, was mittels des Masquerading-Moduls ipsec erledigt wird. Außerdem müssen für IPSEC noch die Ports 50 und 500 geöffnet werden (Auf Port 500 eigentlich nur UDP, aber das ist mir momentan zu schwierig zu konfigurieren) – näheres siehe unten.

 #------------------------------------------------------------------------------
 # Masquerading:
 #------------------------------------------------------------------------------
 MASQ_NETWORK='192.168.1.0/24'           #networks to masquerade (e.g. our LAN)
 MASQ_MODULE_N='3'                       #load n masq modules (default: only ftp)
 MASQ_MODULE_1='ftp'                     #ftp
 MASQ_MODULE_2='raudio'                  #raudio
 MASQ_MODULE_3='ipsec'                   #ipsec, Protokoll esp
 MASQ_FTP_PORT_N='3'                     #using ftp masq-module on different ports
 MASQ_FTP_PORT_1='21'                    #standard ftp port
 MASQ_FTP_PORT_2='2021'                  #additional port
 MASQ_FTP_PORT_3='2121'                  #für xxxxxxxxxxx

Routing und Firewall

Hier habe ich die Standardeinstellungen beibehalten und das Firewall-Logging eingeschaltet. Außerdem müssen die Ports 50 und 500 für IPSEC freigeschaltet sowie wegen der Remote-CAPI der Port 20000 gesperrt werden.

 #------------------------------------------------------------------------------
 # Routing: ports to reject/deny forwarding (from inside and outside!)
 #------------------------------------------------------------------------------
 FORWARD_DENY_PORT_N='1'                 #no. of ports to reject/deny forwarding
 FORWARD_DENY_PORT_1='137:139 REJECT'    #deny/reject forwarding of netbios
 FORWARD_TRUSTED_NETS=''                 #but allow forwarding between LANs
 #------------------------------------------------------------------------------
 # Firewall: ports to reject/deny from outside (all served ports)
 # offen bleiben:
 #  53 dns
 # 113 auth
 # 50, 500 ipsec-Protokoll esp (Encapsulation Security Payload))
 # 20000 mtG-CAPRI
 #------------------------------------------------------------------------------
 FIREWALL_DENY_PORT_N='9'                #no. of ports to reject/deny
 FIREWALL_DENY_PORT_1='0:49 REJECT'      #privileged ports: reject or deny
 FIREWALL_DENY_PORT_2='51:52 REJECT'     #privileged ports: reject or deny
 FIREWALL_DENY_PORT_3='54:112 REJECT'    #privileged ports: reject or deny
 FIREWALL_DENY_PORT_4='114:499 REJECT'   #privileged ports: reject or deny
 FIREWALL_DENY_PORT_5='501:1023 REJECT'  #privileged ports: reject or deny
 FIREWALL_DENY_PORT_6='5000:5001 REJECT' #imond/telmond ports: reject or deny
 FIREWALL_DENY_PORT_7='8000 REJECT'      #proxy access: reject or deny
 FIREWALL_DENY_PORT_8='20000 REJECT'     #mtG-CAPRI: reject or deny
 FIREWALL_DENY_PORT_9='20012 REJECT'     #vbox server access: reject or deny
 FIREWALL_DENY_ICMP='no'                 #deny icmp (ping): yes or no
 FIREWALL_LOG='yes'                      #log access to rejected/denied ports

DNS-Konfiguration

Zur besseren Übersicht habe ich mir folgende IP-Adressbereiche aus dem Bereich 192.168.1.x definiert:

Rechner-Typ Adresse (4. Byte)
Router, etc
(haben eine statische Adresse)
1 bis 9
Server mit statischer Adresse
(Adresse wird direkt am Server konfiguriert oder anhand der MAC-Adresse des Servers zugewiesen)
10 bis 29
Clients mit fester Adresse
(Adresse wird direkt am Client konfiguriert oder anhand der MAC-Adresse des Clients zugewiesen)
30 bis 49
Clients, die eine dynamische Adresse per DHCP zugewiesen erhalten 50 bis 250

Ob ich diese Bereiche jemals ausschöpfen werden ist natürlich mehr als unwahrscheinlich. Aber 1. muss der Spieltrieb befriedigt werden und 2. habe ich damit für eventuelle LAN-Parties meiner Söhne ausreichend vorgesorgt 🙂

 #------------------------------------------------------------------------------
 # Domain configuration:
 #------------------------------------------------------------------------------
 START_DNS='yes'                         #start dns server: yes or no
 DNS_FORWARDERS='193.149.48.11 193.149.48.2'  #DNS servers of your provider
 DNS_VERBOSE='no'                        #log queries in /usr/local/ens/ens.log
 DOMAIN_NAME='ufp'                       #your domain name
 DNS_FORBIDDEN_N='0'                     #number of forbidden domains
 DNS_FORBIDDEN_1='foo.bar'               #1st forbidden domain
 DNS_FORBIDDEN_2='bar.foo'               #2nd forbidden domain
 # IP-Adressbereiche  192.168.1.x:
 #   Router, etc (statische Adresse):          1 bis   9
 #   Server mit statischer Adresse:           10 bis  29
 #   Clients mit fester Adresse:              30 bis  49
 #   Clients mit dynamischer Adr. per DHCP:   50 bis 250
 HOST_1='192.168.1.1   fli4l betazed.ufp'        #1st host: ip and name
 HOST_2='192.168.1.20  bajor  00:20:AF:C6:4E:2E' #2nd host: ip and name
 HOST_3='192.168.1.30  iconia 00:E0:7D:7A:D2:BD' #3rd host: ip and name

Konfiguration des IMOND

Um den IMON-Client (IMONC) benutzen zu können, muss auch dieser konfiguriert werden. Da ich gerne auch die gesamte Konfiguration inklusive der Installation neuer OPT-Pakete etc. vom Windows-PC aus durchführen möchte, habe ich den IMOND entsprechend konfiguriert (ENABLEDIALROUTEREBOOT auf yes gesetzt).

Das LOGDIR wird wie das gesamte Filesystem in der RAM-Disk abgelegt, was bei mir nichts macht, da ich den Router zusammen mit meinem PC per Steckerleiste ausschalte. Sollte der Router durchlaufen, muss man aufpassen, dass die RAM-Disk dann nicht überläuft.

 #------------------------------------------------------------------------------
 # imond configuration:
 #------------------------------------------------------------------------------
 START_IMOND='yes'                       #start imond: yes or no
 IMOND_PORT='5000'                       #TCP-Port, see also FIREWALL_DENY_PORT_x!
 IMOND_PASS='123456'                     #imond-password, may be empty
 IMOND_ADMIN_PASS='12345678'             #imond-admin-password, may be empty
 IMOND_LED=''                            #tty for led: com1 - com4 or empty
 IMOND_BEEP='no'                         #beep if connection going up/down
 IMOND_LOG='yes'                         #log /var/log/imond.log: yes or no
 IMOND_LOGDIR='/var/log'                 #log-directory, e.g. /var/log
 IMOND_ENABLE='yes'                      #accept "enable/disable" commands
 IMOND_DIAL='yes'                        #accept "dial/hangup" commands
 IMOND_ROUTE='yes'                       #accept "route" command
 IMOND_REBOOT='yes'                      #accept "reboot" command

Konfiguration des Logging

Standardmäßig werden alle Meldungen auf der Konsole ausgegeben. Wenn dies nicht gewünscht wird oder man die Meldungen aufheben möchte, müssen diese in eine Datei geschrieben werden. Diese werden über die SYSLOGD-Einstellungen definiert. Die Zeile SYSLOGD_DES_2 sendet Log-Meldungen an den IMONC auf dem Rechner iconia (dieser muss natürlich in der host-Einträgen definiert worden sein – sonst tut es auch eine IP-Adresse).

 #------------------------------------------------------------------------------
 # optional package: syslogd
 #------------------------------------------------------------------------------
 OPT_SYSLOGD='yes'                       #start syslogd: yes or no
 SYSLOGD_DEST_N='3'                      #number of destinations
 SYSLOGD_DEST_1='*.* /dev/console'       #nth prio & destination of syslog msgs
 #SYSLOGD_DEST_1='*.* /var/log/messages'  #Syslog-Meldungen dorthin speichern
 SYSLOGD_DEST_2='*.* @192.168.1.30'      #Syslog-Meldungen auch zum imonc
 SYSLOGD_DEST_3='kern.warning /var/log/firewall.log'
 #------------------------------------------------------------------------------
 # optional package: klogd
 #------------------------------------------------------------------------------
 OPT_KLOGD='yes'                     # start klogd: yes or no

Um auch Firewall-Meldungen zu loggen muss der KLOGD aktiv sein (letzte Zeile oben) und das Firewall-Logging aktiviert worden sein (siehe Firewall).

 FIREWALL_LOG='yes'                      #log access to rejected/denied ports

 

ISDN-Konfiguration

Ich verwende die ISDN-Karte Fritz! Card classic der Firma AVM. Dies ist eine ISA-Karte – man muss also auf die korrekte Jumperung der I/O-Adresse auf der Karte und die korrekte Angabe in der ISDN-Konfiguration achten. Da ich per Remote-CAPI faxen möchte, kann ich nicht das Standard-ISDN-Paket der FLI4L-Distribution verwenden, sondern muss das optionale Paket OPT_ISDN4AVM_2.0.7 verwenden. Der entsprechende Ausschnitt aus der Konfigurationsdatei zur Konfiguration der ISDN-Karte schaut bei mir also so aus:

 #This Version is only for AVM Cards it contains CAPI support!
 #----------------------------------------------------------------------------
 # optional package: avm capi support
 #----------------------------------------------------------------------------
 OPT_ISDN='yes'			# for base isdn support!
 OPT_AVMCAPI='yes'		# for installing avm capi drivers
 AVMCAPI_DO_DEBUG='yes'		# Debug ;-)
 ISDN_TYPE='3'               # !NOT! same types like in the "standart" script
 				# 0 no card (Needed for installation 
 				#	     cause all files don't fit 
 				#            onto 1,4 MB disk)
 				# 1  fritz pci
 				# 2  fritz pnp
 				# 3  fritz classic
 				# thats all for now :-(
 OPT_AVMCAPI_FILE='filename'	# filename of the cardbios (active cards) 
 OPT_AVMCAPI_PROTO='DSS1'	# protocoll b,c,t series
 OPT_AVMCAPI_IO='0x300'		# isa card config
 OPT_AVMCAPI_IRQ='10'		# isa card config
 OPT_AVMCAPI_CARDNO='0'		# for more than 1 card (only t1.t4 isa)
 OPT_AVMCAPI_OPTIONS='P2P'	# Options for some c/t cards
 ISDN_VERBOSE_LEVEL='2'		# verbose level ( please leave or telmond will fail )

Ich habe mir drei Verbindungen („Circuits“) definiert:

  • Eine Verbindung zu meinem Leib- und Magen-Provider MUC.DE, bei dem für mich die normalen Telefonkosten anfallen,
  • eine Verbindung über T-Online (ist tagsüber billiger),
  • sowie eine Verbindung zu meinem Arbeitgeber ins Firmennetz

Hierbei werden nur die ersten zwei Circuits in das least cost routing mit einbezogen. Wenn ich mich ins Firmennetz meines Arbeitgebers einwählen möchte, muss ich diese Verbindung manuell per IMONC aufrufen. Außerdem muss ich hierfür die auf dem Router in den Dateien /etc/ppp/pap-secrets und /etc/ppp/chap-secrets gespeicherten Passworte anpassen, da diese täglich neu generiert werden. Diese Anpassung führe ich mittels Terminalverbindung über SSH vom Windows-PC durch. Der Editor, der auf dem Router läuft, ist wie WordStar (kennt den noch jemand?) zu bedienen und im Paket TOOLS enthalten.

Für Homebanking sind spezielle Vorkehrungen zu treffen, die weiter unten beschrieben sind.

Die Konfiguration in der Datei isdn.txt ist bereits oben beschrieben.

Fax, Remote-CAPI

Für mich kommt es darauf an, Faxe versenden zu können und gelegentlich mal ein Fax zu empfangen (nach vorheriger Ankündigung durch den Absender). Als Fax-Client dient mir am Windows-PC das Programm Fritz!Fax, das bei der Fritz!Card mit dabei ist. Eine aktuelle, XP-taugliche, Version kann bei AVM heruntergeladen werden (man benötigt zur Installation auf einem „jungfräulichen“ Rechner die Original-CD).

Außerdem werden folgende OPT- und Software-Pakete benötigt:

  1. opt_isdn4avm_2.0.7 – Ersatz des Standard-ISDN-Pakets (siehe oben)
  2. opt_mtgcapi-0.5 – zur Einbindung mtG-CAPRI in FLI4L
  3. capri_ls_v151.tar.gz – die mtG-CAPRI-Freeware der Firma media transfer GmbH (MTG)
  4. capri_wc_15.exe – die Windows-Komponente der mtG-CAPRI-Freeware

Zur Installation einfach die beigefügte Dokumentation befolgen – dann kann nichts schief gehen. Wie immer gilt auch hier: Wer lesen kann, ist klar im Vorteil!

Die mtG-CAPRI verursacht nach dem Booten des Routers einen (meist) ungewollten Verbindungsaufbau. Eine Umgehung des Problems hat Thomas Creutz, der Verfasser des OPT-Pakets opt_mtgcapi beschrieben. Die dort beschriebene Datei rc990.dialon schaut bei mir so aus:

 #------------------------------------------------------------------------------
 # /etc/rc.d/rc990.dialon - verhindert Verbindungsaufbau nach Boot
 #                          durch mtg-capri
 #                          Dialmode in base.txt muss auf "off" stehen
 #
 # Creation:	26.03.2003  chs
 # Last Update:
 #------------------------------------------------------------------------------
 /usr/local/bin/colecho "Set DIALMODE = AUTO" gn

 port=`cat /var/run/imond.port`
 { echo "enable"; echo "quit"; } | netcat localhost $port

Achtung: Damit dieses Skript läuft, benötigt man NETCAT aus dem opt-Tools-Paket.

Die Konfiguration des Faxzugangs vom Client aus gelingt über die richtigen Einträge in der FLI4L-Config-Datei mtgcapi.txt. Als Beispiel hier Ausschnitte aus meiner Datei mit Kommentaren:

 #-------------------------------------------------------------------------------------
 # OPT_MTGCAPI									v.0.5
 # (c) Thomas Creutz
 #
 # www.alientxc.de/fli4l
 # 
 # für weitere Infos schaut euch die Doku an... !!!
 # zu finden im Fli4l Verzeichnis unter doc\deutsch\opt\mtgcapi.html
 # ------------------------------------------------------------------------------------
 #--------------
 # Allgemeines
 #------------
 OPT_MTGCAPI='yes'  
 # Wird hier yes gesetzt startet mtg-CAPRI beim Booten
 MTGCAPI_START='yes'
 # Port auf dem der CAPI-Server laufen soll
 MTGCAPI_PORT='20000'

Nicht vergessen, den Port 20000 für den Zugriff von draußen zu sperren!

 # Pfad für das Tracefile
 MTGCAPI_TRACEFILE='/boot/capri.trc'
 # Pfad für das Logfile
 MTGCAPI_LOGFILE='/boot/caprilog.txt'

Als Pfad habe ich „/boot“ gewählt, damit die Log- und evtl. Tracedateien nicht die RAM-Disk zumüllen, sondern auf der Platte landen.

 MTGCAPI_USERS='2'
 #-------------
 # USER1
 #-------------
 # Name des ersten Benutzers
 MTGCAPI_USER_1='USER1'

Wichtig sind hier zwei Dinge:

  1. Nur Großbuchstaben verwenden
  2. Der Name muss der Anmeldung am Windows-Client entsprechen
 # Hier werden die Dienste festgelegt, die der Benutzer in Anspruch nehmen darf.
 MTGCAPI_SERVICE_1='1'	# Bitte schaut euch die Doku an!

„1“ steht für „alle Dienste“. Zum Faxen würde die Angabe von „2 3“ für „fax23“ (Fax Gruppe 2 und 3) sowie „fax4“ (Fax Gruppe 4) ausreichen. Damit wären auch die anderen Dienste (Telefonie, Datenübertragung) deaktiviert, aber hier scheint noch ein Bug vorzuliegen – bei mir funktioniert es jedenfalls nur mit der Angabe „1“.

 # Zu welchen Nummern kann der Benutzer KEINE ISDN-Verbindungen aufbauen?
 MTGCAPI_OUTGOING_NUMBERS_1='3'	# Bitte schaut euch die Doku an!
 MTGCAPI_OUTGOING_NUMBERS3_1='00 019 0900'

Bei mir sind die wichtigsten, potentiell teueren, Nummern 00…, 019… und 0900… gesperrt.

 # Zeiten zu denen der Benutzer die CAPI benutzen darf ( MOntag - SOnntag )
 MTGCAPI_TIME_MO_1='0:0 0:0'
 MTGCAPI_TIME_DI_1='0:0 0:0'
 MTGCAPI_TIME_MI_1='0:0 0:0'
 MTGCAPI_TIME_DO_1='0:0 0:0'
 MTGCAPI_TIME_FR_1='0:0 0:0'
 MTGCAPI_TIME_SA_1='0:0 0:0'
 MTGCAPI_TIME_SO_1='0:0 0:0'

Faxen darf ich immer…

 MTGCAPI_USER_2='USER2'
 (... weiter wie oben für User2)

Hier folgen die gleichen oder ähnliche Angaben, für Nutzer 2 bis n.

Weitere installierte optionale Pakete – „OPT“s

Nachfolgend eine Kurzbeschreibung der installierten OPT-Pakete sowie Ausschnitte aus den Konfigurationsdateien. Genauere Infos sind in der FLI4L-Dokumentation oder in der Dokumentation des OPT-Pakets nachzulesen. Alles zu finden unter www.fli4l.de.

 

DHCP

Der DHCP-Server weist allen meinen Rechnern automatisch eine IP-Adresse zu, so dass sich die Netz-Konfiguration der Rechner selbst dramatisch vereinfacht, da alle Infos wie IP-Adresse, Subnetz-Maske, DNS-Server etc. vom FLI4L-Router geliefert werden. Meinem meist verwendeten Rechner allerdings habe ich trotzdem eine feste IP-Adresse verpasst, damit der auch läuft, falls der Router ausgeschaltet o.Ä. ist.

 ##-----------------------------------------------------------------------------
 ## dhcp.txt - fli4l configuration parameters                       2.0.7
 ##
 #------------------------------------------------------------------------------
 # Optional package: DHCP server
 #------------------------------------------------------------------------------
 OPT_DHCP='yes'                  # install DHCP server: yes or no
 DHCP_LS_TIME_DYN='14400'        # default time for dynamic leases: 4 hours
 DHCP_MAX_LS_TIME_DYN='28800'    # max time  for dynamic leases: 8 hours
 DHCP_LS_TIME_FIX='86400'        # default time for fix leases: 1 day
 DHCP_MAX_LS_TIME_FIX='604800'   # max time for fix leases: 1 week
 DHCP_RANGE_1='192.168.1.50 192.168.1.250'    # range of n'th ethnet, see ETH_N !
 DHCP_RANGE_2=''
 DHCP_WINSSERVER_1=''            # ip-adress of 1st external wins-server (use only, if OPT_NMBD='no' !)
 DHCP_WINSSERVER_2=''            # ip-adress of 2nd external wins-server (use only, if OPT_NMBD='no' !)

INET

Aus diesem Paket habe ich das SSH-Paket aktiviert. Zusätzlich zur Verfügung stünden ein FTP- und Telnet-Service, die aber bei mir deaktiviert sind.

 ##-----------------------------------------------------------------------------
 ## inet.txt - fli4l configuration parameters                       2.0.7
 ##
 #------------------------------------------------------------------------------
 # Optional package: TELNETD
 #------------------------------------------------------------------------------
 OPT_TELNETD='no'                # install telnetd: yes or no
 TELNETD_PORT='23'               # telnet port, see also FIREWALL_DENY_PORT_x

 #------------------------------------------------------------------------------
 # Optional package: SSHD (secure shell)
 #------------------------------------------------------------------------------
 OPT_SSHD='yes'                  # install sshd: yes or no
 SSHD_PORT='22'                  # ssh port, see also FIREWALL_DENY_PORT_x

 #------------------------------------------------------------------------------
 # Optional package: FTPD
 #------------------------------------------------------------------------------
 OPT_FTPD='no'                   # install ftpd: yes or no
 FTPD_PORT='21'                  # ftp port, see also FIREWALL_DENY_PORT_x

OPT_TIME

Dieses Paket holt automatisch beim ersten Verbindungsaufbau des Tages die aktuelle Zeit von der physikalisch-technischen Bundesanstalt in Braunschweig und aktualisiert die Systemzeit auf dem Router. Die angeschlossenen Windows- (und Linux-) Rechner können dann ihre Zeit mit der des Routers abgleichen.

 ##-----------------------------------------------------------------------------
 ## time.txt - fli4l configuration parameters                       2.0.7
 ##
 #------------------------------------------------------------------------------
 # Optional package: TIME
 #------------------------------------------------------------------------------
 OPT_TIME='yes'                  # install time zone informations: yes or no
 TIME_ZONE='MET'                 # timezone: MET or GMT
 TIME_SERVICE='yes'              # enable "time" service (port 37): yes or no
 TIME_SERVER='ntp1.ptb.de ntp2.ptb.de'   # names of time servers, may be empty
 TIME_ACCESS_AT_BOOT_TIME='no'   # access time server at boot time: yes or no
 TIME_CIRCUITS='1 2'             # circuit indices when to activate time sync

TOOLS

Dieses Paket stellt einige Systemkommandos zur bequemeren Wartung und Fehlersuche unter Linux bereit. Insbesondere stellt es auch einen IMONC bereit, der direkt auf dem Router läuft. Man kann also bequem alle Funktionen testen. Beim Einsatz der mtG-CAPRI sollte das Programm netcat installiert werden.

 

OPT_COMFORT

Dieses Paket stellt einen Kommandozeileneditor (mit History-Funktion) zur Verfügung, um leichter Kommandos edieren zu können.

 

OPT_HD

Dieses Paket wird benötigt, um die Intallationsvariante A (siehe Doku) realisieren zu können. Außerdem stellt es ein Rettungssystem auf Platte zur Verfüung, falls man sich mal die Router-Konfiguration so zerschossen hat, dass ein normales Booten des Routers nicht mehr gelingen will.

Die Konfigurationsdatei hd.txt ist oben anzuschauen.

 

Hinweise zum Homebanking

Die meisten Homebanking-Programme verwenden den T-Online Decoder, der seinerseits eine ISDN-Karte benötigt. Homebanking funktioniert aber auch ohne ISDN-Karte mit dem vorgeschaltetem Router. Ich verwende das Finanzprogramm WISO – Mein Geld, das auf einen eingebauten T-Online Decoder zurück greift, aber die Möglichkeit bietet, über das T-Online Classic Gateway ‚rauszugehen.

Was ist das T-Online Classic Gateway? Kurz gesagt bietet dieses die Möglichkeit auf T-Online Homebanking via normalem Internet zuzugreifen. Man benötigt also nur noch eine normale Internetverbindung und kann dann ganz normal Homebanking betreiben – ohne eingebaute ISDN-Karte und T-Online Decoder. Auch andere Provider außer T-Online funktionieren. Dieses Gateway muss man sich freischalten lassen. Es kostet einige Cent pro Minute zusätzlich, was aber bei Nutzung eines Finanzprogramms nicht stark ins Gewicht fallen dürfte, da die Onlinezeiten während des Datenaustauschs in der Regel nur kurz sein werden.

Das Classic Gateway kann man sich auf der Business-Homepage von T-Online online freischalten. Auf der Homepage unter „Banking“ einfach T-Online classic anwählen.

FLI4L (veraltet)
Tagged on: