Einrichten eines multifunktionalen fli4l-Routers

 

Beitrag von:
Uwe Walther, Lampertheim


Um was geht es in diesem Beitrag

Es geht um die Einrichtung eines Fli4L Version 2.1.3 mit folgenden Eigenschaften:
  • Einrichtung des Fli4L für grundlegende Funktionen und SSH-Shell für "Fernlogon"
  • Einrichtung von Win-SCP (Secure-Copy) für den Upload optionaler Pakete
  • Erweiterung des Programmumfangs um nützliche Tools wie z.B. e3 (einem Editor)
  • Proxy zum Filtern von Werbung
  • Webserver für die Status-Kontrolle
  • Samba-Server für die gemeinsamen Nutzung von Dateien
  • Portforwarding für den Fernzugriff auf einen Windows-Clients "hinterm Router" mittels "tightvnc"
  • Verbindungsaufbau ins Internet per Anruf vom Handy
  • Automatisierte Synchronisation der Systemuhrzeit
  • Automatisierter Upload der IP-Adresse auf die Homepage
  • Einem LCD-Display welches den letzten eingehenden Anruf anzeigt

 

Verwendete Hardware
Pentium II PC mit 200 MHz, 256 MB RAM, 40 GB (32 GB) Festplatte, zwei PCI-Netzwerkkarten mit Realtek-Chipsatz und einer AVM-Fritzkarte

 

Installation und Konfiguration von fli4l

Zur verwendeten fli4l-Version:
Version 2.1.3 wurde hier verwendet.

BEACHTEN SIE BITTE: Ich bin mit den Entwicklern weder befreundet noch verschwägert, werde weder gesponsort noch habe ich irgendein finanzielles Interesse. Verstehen Sie bitte, daß hier keinerlei Garantie übernommen werden kann. Zur Erinnerung hier auch noch mal der Haftungsausschluß.


Download der fli4l-Software

Im Browser

http://www.fli4l.de/german/download213.htm

eingeben. Ich habe folgende Pakete downgeloadet in ein Verzeichnis namens fli4l-Quellarchive 2.1.3:

fli4l-2.1.3-doc.tar.gz
fli4l-2.1.3.tar.gz
dsl.tar.gz
isdn.tar.gz
hd.tar.gz
httpd.tar.gz
lcd.tar.gz
proxy.tar.gz
sshd.tar.gz
time.tar.gz
tools.tar.gz
usb.tar.gz
hd.tar.gz

archiv.JPG (57043 Byte)

Hinzu kommen noch die Pakete

on_offline.zip
1543-opt_showtelname1.0a.zip
1070-samba_lpd.zip

Diese kann man im Menü unter fli4l OPT-Pakete oder unter Hilfe HowTos finden.

 

Archive entpacken

Am besten verwendest du Winzip und beachtest bitte folgendes: Unter "Optionen" "Konfiguration" "Verschiedenes" die "Umwandlung LF zu CR/LF bei TAR-Archiv" abgeschalten, da sonst die TAR-Archive nicht korrekt entpackt werden. Und beim Entpacken des Archivs muß die Option "Pfadangaben verwenden" aktiviert sein.

Basispaket zuerst entpacken
Beim Entpacken: Wickle zunächst das Archiv fli4l-2.1.3.tar.gz am besten gegen die Laufwerkswurzel (z.B. C:\) aus. Es wird ein Verzeichnis C:\fli4l-2.1.3 angelegt.

Weitere Pakete entpacken
Alle weiteren Pakete werden gegen das Verzeichnis C:\fli4l-2.1.3 entpackt.

Es entsteht ein ganzer Verzeichnisbaum. Hier sollte zunächst einmal das Verzeichnis C:\fli4l-2.1.3}config gesichert werden. Ich habe es "config_Originaldateien" genannt. Im Verzeichnis "config" werden jetzt alle Konfigurationsdateien, die vorerst noch nicht benötigt werden, gelöscht. Es sollten übrig bleiben:
base.txt
dsl.txt
hd.txt
sshd.txt
Nach Anpassung der Dateien kann man diese auch wieder separat sichern (hier: config_small).
fli4lbaum.JPG (24107 Byte)

Basiskonfiguration erstellen

Es wird im ersten Schritt nur eine minimale Konfiguration erstellt, mit der es möglich ist, den Router mittels Diskette funktionstüchtig ins Netz zu bringen. Der Router wird heirbei mit SSH (secure-Shell) ausgestattet. Über dieses Programm ist es möglich optionale Pakete (die nicht alle auf die Diskette passen) nachträglich auf den Router zu bringen. Nachfolgend sind die zu konfigurierenden Abschnitte aufgeführt. Der Dateiname ist blau, die zu ändernden Parameter sind rot, Erklärungen sind grün.

base.txt
#------------------------------------------------------------------------------
# General settings:
#------------------------------------------------------------------------------
HOSTNAME='fli4l'
#Wird dann später in der Windows-Welt als Arbeitsstatios-Name auch so verwendet wie hier festgelegt.
PASSWORD='xxxx'
#Sollte gesetzt werden wenn später per SSH auch vom Internet auf den Fli4l zugegriffen werden soll.
MOUNT_BOOT='rw'
#Für den Upload optionaler Pakete Schreibberechtigung nötig.
#------------------------------------------------------------------------------
ETH_DRV_N='1' # number of ethernet drivers to load, usually 1
ETH_DRV_1='8139too' # 2nd driver: name (e.g. NE2000 ISA clone)
#Ich verwende zwei Karten gleichen Typs. Hier wird nur ein mal der Treiber geladen.
#------------------------------------------------------------------------------
# Ether networks used with IP protocol:
#------------------------------------------------------------------------------
IP_ETH_N='1' # number of ip ethernet networks, usually 1
IP_ETH_1_IPADDR='192.168.6.254' # IP address of your n'th ethernet card
#Hier die IP-Adresse festlegen, unter der der Rechner als Gateway für die Windows-Mühlen erreichbar sein soll..
#------------------------------------------------------------------------------
# Masquerading:
#------------------------------------------------------------------------------
MASQ_NETWORK='192.168.6.0/24' # networks to masquerade (e.g. our LAN)
MASQ_MODULE_N='1' # load n masq modules (default: only ftp)
MASQ_MODULE_1='ftp' # ftp
MASQ_MODULE_1_OPTION='' # options, see documentation
MASQ_MODULE_2='irc' # irc
MASQ_MODULE_2_OPTION='' # options, see documentation
#------------------------------------------------------------------------------
# Optional package: PORTFW
#------------------------------------------------------------------------------
OPT_PORTFW='yes' # install port forwarding tools/modules
PORTFW_N='1' # how many portforwardings to set up
PORTFW_1_SOURCE='5900' # sample 1: forward ext. port 8080
PORTFW_1_TARGET='192.168.6.1:5900' # ...to int. host 192.168.6.15 port 80
#Um mit tightvnc zu arbeiten (Fernsteuerung einer Workstation aus dem Internet heraus) Forwarding auf Port 5900
#------------------------------------------------------------------------------
# Filter: accept connections from outside to several ports (served ports)
#------------------------------------------------------------------------------
INPUT_POLICY='REJECT' # policy for input chain: reject or drop
INPUT_ACCEPT_PORT_N='1' # no. of ports to accept from outside
INPUT_ACCEPT_PORT_1='22 TCP' # e.g. allow connection to ssh service
#Um einen Zugriff auf die Secure-Shell aus dem Internet heraus zu realisieren
#------------------------------------------------------------------------------
# Domain configuration:
#------------------------------------------------------------------------------
START_DNS='no' # start dns server: yes or no
#Fli4l bietet hiermit keine DNS-Dienste an
DNS_FORWARDERS='194.25.2.129' # DNS servers of your provider, e.g. MSN
#Fli4l nutzt den T-Online DNS-Server zur Namensauflösung
HOSTS_N='4' # number of hosts in your domain
HOST_1_NAME='fli4l' # 1st host: ip and name
#Hier der Name des Rechners im Netz
HOST_1_IP='192.168.6.254'
#und seine IP
HOST_1_ALIAS_1='fli4l.privat.net'
#Und hier der Full-Qualified Hostname um die Windows-Arbeitsgruppenbezeichnung erweitert.
HOST_2_NAME='pc1'
HOST_2_IP='192.168.6.1'
HOST_3_NAME='pc2' # 3st host: ip and name
HOST_3_IP='192.168.6.2'
HOST_4_NAME='pc3' # 4st host: ip and name
HOST_4_IP='192.168.6.3'
#------------------------------------------------------------------------------
# imond configuration:
#------------------------------------------------------------------------------
START_IMOND='yes' # start imond: yes or no
IMOND_PORT='5000' # TCP-Port, see also FIREWALL_DENY_PORT_x!
IMOND_PASS='' # imond-password, may be empty
IMOND_ADMIN_PASS='' # imond-admin-password, may be empty
IMOND_LED='com2' # tty for led: com1 - com4 or empty
IMOND_BEEP='yes' # beep if connection going up/down
IMOND_LOG='no' # 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
#------------------------------------------------------------------------------
# Generic circuit configuration:
#------------------------------------------------------------------------------
IP_DYN_ADDR='yes' # use dyn. ip addresses (most providers do)
DIALMODE='auto' # standard dialmode: auto, manual, or off
#------------------------------------------------------------------------------
# optional package: syslogd
#------------------------------------------------------------------------------
OPT_SYSLOGD='yes' # start syslogd: yes or no
SYSLOGD_DEST_N='1' # number of destinations
SYSLOGD_DEST_1='*.* /dev/console' # n'th prio & destination of syslog msgs
SYSLOGD_DEST_2='*.* @192.168.6.2' # example: loghost 192.168.6.2
SYSLOGD_DEST_3='kern.info /var/log/dial.log' # example: log infos
#------------------------------------------------------------------------------
# optional package: klogd
#------------------------------------------------------------------------------
OPT_KLOGD='yes' # start klogd: yes or no
#------------------------------------------------------------------------------
# Optional package: PNP
#------------------------------------------------------------------------------
OPT_PNP='no' # install isapnp tools: yes or no
#------------------------------------------------------------------------------
# Optional package: inittab
#------------------------------------------------------------------------------
OPT_INITTAB='yes'
INITTAB_N='1'
INITTAB_1='tty2 askfirst /usr/local/bin/mini-login'
dsl.txt
#------------------------------------------------------------------------------
# Optional package: PPPoE
#------------------------------------------------------------------------------
OPT_PPPOE='yes' # use ppp over ethernet: yes or no
PPPOE_NAME='DSL' # circuit name, don't write spaces
PPPOE_USEPEERDNS='no' # use dns server of your provider: yes or no
PPPOE_ETH='eth1' # eth card connected to ADSL modem, e.g. 2nd
PPPOE_TYPE='async' # async, sync or in_kernel
PPPOE_DEBUG='no' # enable pppd debugging, 'yes' or 'no'
PPPOE_USER='Kennung@online.de' # username
PPPOE_PASS='******' # password
hd.txt
OPT_HDDRV='yes' # install drivers for harddisk: yes or no
HDDRV_N='1' # number of HD drivers to load, usually 1
HDDRV_1='ide-hd' # 1st driver: name (e.g. ide-hd)
HDDRV_1_OPTION='' # 1st driver: additional option
#------------------------------------------------------------------------------
# Optional package: HDINSTALL
#------------------------------------------------------------------------------
OPT_HDINSTALL='yes' # install on harddisk: yes or no
HDINSTALL_ROOTFSSIZE='2000' # size of new rootfs on harddisk
HDINSTALL_RECOVERYTIME='60' # timeout fpr recovery-installation in seconds
#------------------------------------------------------------------------------
# Optional: mount additional devices
#------------------------------------------------------------------------------
OPT_MOUNT='yes' # mount disks or cdroms: yes or no
MOUNT_SWAP='auto' # auto select swap-partition or 'hda3' for ex.
MOUNT_DATA='auto' # auto select data-partition or 'hda4' for ex.
MOUNT_CHECK='yes' # check the data-partition
MOUNT_PATH='/usr/local/data' # mountpoint of data-partition
MOUNT_N='1' # number of mounts not created by opt_hdinstall
MOUNT_1_DEV='hda4' # example: 4th partition of first ide-hard disk
MOUNT_1_FS='minix' # filesystem type: vfat, ext2, minix, iso9660 or swap
MOUNT_1_POINT='/usr/local/data' # mount point, here: /usr/local/data
#Wird später das Samba-Datenverzeichnis
MOUNT_1_CHECK='yes' # check/repair filesystem if corrupted: yes, no
MOUNT_1_OPTION='rw' # additional options, see documentation!
#------------------------------------------------------------------------------
# Optional package: Modes for IDE Harddisk
#------------------------------------------------------------------------------
OPT_HDTUNE='yes' # power down HD after some time
HDTUNE_N='1' # number of drives to change modes
HDTUNE_1_DEVICE='hda' # drive to handle
HDTUNE_1_PERFORMANCE='yes'
HDTUNE_1_SLEEPTIME='5'
#------------------------------------------------------------------------------
# Optional package: FDISK
#------------------------------------------------------------------------------
OPT_FDISK='yes' # create partitions manually
#Ohne dies steht fdisk nicht zur Verfügung
sshd.txt
#------------------------------------------------------------------------------
# Optional package: SSHD (secure shell)
#------------------------------------------------------------------------------
OPT_SSHD='yes' # install sshd: yes or no
SSHD_PORT='22' # ssh port, see also FIREWALL_DENY_PORT_x
SSHD_PUBLIC_KEYS_N='0'      
SSHD_PUBLIC_KEY_1=''
#------------------------------------------------------------------------------
# Optional package: SCP (secure copy)
#------------------------------------------------------------------------------
OPT_SCP='yes'           
#Ohne dies kann mit WinSCP nix auf den Fli4l kopiert werden.

Startdiskette erstellen

Dos-formatierte 1,44 MB Diskette in Laufwerk A: einlegen und anschlie0end im Stammverzeichnis des Fli4l-Programmpakets (hier C:\Fli4l-2.1.3) die Datei mkfloppy.bat ausführen. Es wird eine Startbare Fli4l-Diskette erstellt.

Router einrichten

Mit der Diskette den Router starten und erst mal die Grundlegenden Funktionen überprüfen (klappt die Einwahl usw.) Dann mit <ALT>+<F2> auf Konsole2 wechseln und setup durchführen. Partitionieren der Festplatte (ca. 2 GB) in Variante B. Hier wird eine DOS-Partition für die grundlegenden Daten und für den Start von Fli4l erstellt, eine weitere für /opt, eine SWAP-Partition und eine Datenpartition.
spätere Mountpoints:
/dev/hda1 on /boot  (vfat)
/dev/hda2 on /opt (minix)
/dev/hda3 on /usr/local/data (minix, 2 GB)

Danach folgt das Kopieren der Daten in die boot-Partition. Anschließend den Rechner von der Festplatte starten und wiederum ein kurzer Check, ob alles läuft.

Programme für SSH und SCP auf einem Windows-Client einrichten

Die Programme aus dem Internet downloaden: http://www.uni-giessen.de/hrz/software/putty/
Den Link "putty sofort starten" anwählen. Hier wird die Datei putty.exe auch zum Download angeboten.

Dann auf http://winscp.net/eng/docs/lang:de WinSCP downloaden und installieren.
Die Fehlermeldung, die beim starten aufpoppt,
winscp-fehler.JPG (16538 Byte)
kann ignoriert werden.

winscp-root.JPG (55440 Byte)

Hier ein Bildausschnitt aus WinSCP. Für den späteren Upload von opt-Paketen ist das Verzeichnis boot relevant.

Anruferdaten im Display anzeigen:
Die Anruferdaten, die im Display gezeigt werden sollen, werden hierin abgelegt:    F:\fli4l-2.1.3--I\opt\etc\phonebook

IP-Adresse ermitteln, Zeit synchronisieren und auf die Homepage bringen:
Das Auslesen der IP-Adresse mittels skript ip-up.user hat weder mit der Variablen $IP noch mit $S4 funktioniert. Lösung:
In der Datei F:\fli4l-2.1.3--I\opt\etc\ppp\ip-up eine neue Variable ip festlegen und mit dem Wert von local füllen.
#!/bin/sh
real_interface=$1
interface=$1
tty=$2
speed=$3
local=$4

export ip=$4
remote=$5
Im selben Verzeichnis F:\fli4l-2.1.3--I\opt\etc\ppp die Datei ip-up.user mit folgendem Inhalt generieren (bzw. um eigene Einträge erweitern):
#!/bin/sh
# --- DO NOT MODIFY ---
if [ "$is_default_route" = "yes" ] # is a default-route-interface going up?
then
# erst mal die richtige Zeit setzen
echo Uhrzeit synchronisieren
timecl -f ptbtime1.ptb.de
# hier wird die IP aus einer Variablen ausgelesen und auf die Homepage upgeloadet
echo Transfer der IP-Adresse auf die Homepage
echo "machine www.furzundfeuerstein.de login 4711-210 password 123456" > /.netrc
chmod 600 /.netrc
sed 's/_ip_/'$ip'/g' /usr/local/bin/vorlage.txt > /tmp/datei.txt
date >> /tmp/datei.txt
echo "+1 Stunde nach MEZ" >> /tmp/datei.txt
(echo "passive"; echo "cd dynip"; echo "send /tmp/datei.txt index.htm"; echo "bye" ) |
ftp www.lowpriceproject.de
rm /tmp/datei.txt

# --- DO NOT MODIFY ---
fi

Fehlerbehebung:

Fli4l führt Skript (Quelle: F:\fli4l-2.1.3--I\opt\files\usr\bin\nummer.sh) nicht aus.
Fehlermeldung: Datei nicht gefunden.

Lösung: Das Skript beinhaltet unsichtbare Zeichen hinter jeder Zeichenkette (DOS-Datei) und muß nach Linux umgewandelt werden. Hierzu diente ds Tool e3 (opt-Paket tools). Hinweis zu e3: ^K Z ist Ende; ^K S ist Speichern

 

 

Konfiguration des Windows Clients (Windows 2000)

Ausgangslage/Voraussetzung:
Das Windows Betriebssystem ist installiert. Die grundsätzliche Vorgehensweise beim Installieren von Gerätetreibern ist bekannt. Es soll eine Netzwerkkarte eingebaut und konfiguriert werden. Der Schwerpunkt dieses Beitrags liegt in der Konfiguration des Protokolls TCP/IP.

Kurzübersicht zur Installation der Karte und Konfiguration des Netzwerkkartentreibers
Die Netzwerkkarte in den Rechner einbauen. Wenn die Karte nicht allzu neu und nicht allzu alt ist, sollte sie von Windows direkt erkannt werden. Ist sie zu neu, dann halten sie die Diskette mit dem passenden Treiber des Herstellers bereit. Eine Karte, die "Plug and Play" nicht unterstützt, kann man mit einem NE2000 kompatiblen Treiber (Hersteller: Novell/Anthem!!) zum laufen bringen, aber das ist nicht Gegenstand dieser Doku. Bei den Hardware-Preisen ist es sinnvoller eine neue PCI-Karte zu kaufen.

Rechner einschalten, danach sollte Windows 2000 die Netzwerkkarte selbst erkennen und konfigurieren. Falls Windows die Karte nciht unterstützt, dann den Treiber des Herstellers von der Diskette laden. Unter Start - Einstellungen - Systemsteuerung - System - Hardware - Geräte Manager kontrollieren ob die Karte "zu sehen" ist und keine Probleme macht (kein Ausrufezeichen davor).

Nachdem Windows die Netzwerkkarte eingerichtet hat, erscheint auf dem Desktop das Symbol “Netzwerkumgebung” . Über das Kontextmenü (Aufruf mit rechter Maustaste) “Eigenschaften” auswählen.Windows hat eine neue “LAN-Verbindung” angelegt. Im Kontextmenü “Eigenschaften” auswählen

0netzwerkeigenschaften.gif (6235 Byte)           1lanverbindung.gif (13695 Byte)

 

Für ein Heimnetzwerk mit Internetzugang wird das Transportprotokoll TCP/IP benötigt. aus. Der "Client für Microsoft-Netzwerke" und die “Datei und Druckerfreigabe” werden in diesem Beitrag nicht behandelt (und im Grunde auch nicht benötigt). Für die Aktivitäten im Internet ist es nicht von Bedeutung ob Zugriff auf Ordner und Drucker unter Windows möglich sind oder nicht, da diese Zugriffe durch die Firewall auf dem fli4l-Router (weil unerwünscht) geblockt werden (es soll ja kein Fremder in Ihren persönlichen Dateien herumstöbern können),. Nun wählen wir “Eigenschaften” für TCP/IP.

2dateidruckeigen.gif (17396 Byte)      3tcpip.gif (18874 Byte)

Tragen Sie hier ein:
IP-Adresse:   192.168.6.1
Subnetzmaske:   255.255.255.0
Standardgateway 192.168.6.254
DNS-Server  194.25.2.129

Unter Start - Einstellungen - Systemsteuerung - Netzwerkidentifikation geben Sie dem Rechner den Namen "win" und Tragen die Arbeitsgruppe "privat.net" ein.

4name2k.gif (11321 Byte)

Überprüfen Sie die Netzwerkfunktionalität (wie wir es am Router auch gemacht hatten) mit jeweils einem ping auf folgende Adressen:
Testen der Erreichbarkeit der eingebauten Karte:   ping 192.168.6.1
Testen der Erreichbarkeit des Routers:  ping 192.168.6.254
Testen der Erreichbarkeit des Servers bei T-Online:  ping 194.25.2.129 (hier müßte der Router rauswählen)
Testen auf Erreichbarkeit von Webservern (durch Namensauflösung): ping  www.lowpriceproject.de