Kompakte Pinguine: fli4l und eisfair
Transcription
Kompakte Pinguine: fli4l und eisfair
Kompakte Pinguine: fli4l und eisfair Teil I fli4l - the on(e)-disk-router Dr. Axel Wachtler Linux-Info-Tag Dresden, 18.10.2003 2 Einleitung Einleitung – Was ist fli4l ? Installation – Geschichte Konfiguration – Verbreitung Anwendung – fli4l-Router vs. Hardwarerouter – Online Ressourcen Home 3 Einleitung Was ist fli4l ? – Linux-basierender ISDN-, DSL- und Ethernet-Router – Minimalversion ist lauffähig auf einer Diskette Erstellung unter Unix, Linux oder Windows – geringe Hardware-Anforderungen: 486er mit 12 MB RAM – gesamte Konfiguration erfolgt mit Textfiles ⇒ keine speziellen Linuxkenntnisse erforderlich – modulares Konzept - Anpassung an viele Einsatzgebiete – Lizenz: GPL – Abkürzung: “floppy isdn for linux”, mittlerweile aber nicht mehr ganz zutreffend, da auch DSL, Ethernet und Modems unterstützt werden. Home 4 Einleitung Geschichte – erste urkundliche Erwähnung: 5. April 2000 – Initiator und Hauptentwickler: Frank Meyer1 – seither kontinuierliche Entwicklung (ca. 20 Releases) – aktuelle Versionen (Stand 4.10.2003): – Benutzer-Version: 2.0.8, Kernel 2.2.22 – Entwickler-Version: 2.1.4, Kernel 2.4.22 1 “Routing für alle”, Frank Meyer, Linux-User, Heft 3/2002, http://www.linux-user.de/ausgabe/2002/03/035-fli4l/fli4l-4.html Home 5 Einleitung Verbreitung – Zur Zeit gibt es ca. 9186 registrierte fli4l-Installationen∗ (Stand 5.10.2003) – Die geschätzte Dunkelziffer beläuft sich anhand des Downloadaufkommens lt. Frank Meyer auf 150.000,. . . , 200.000 in Deutschland und ca. 100.000 Installationen im Ausland. ∗ siehe http://www.fli4l.de/routerkarte/fli4l.routerkarte.inc.php Home 6 Einleitung fli4l vs. Hardwarerouter Pro’s – Verwendung vorhandener gebrauchter Hardware – die Leistung des Routers ist durch Austausch von CPU, Mainboard, Speicher oder HDD einfach skalierbar – durch einfache Software-Updates können Sicherheitslücken geschlossen werden Con’s – Stromverbrauch ist, je nach eingesetzter Hardware, u.U. höher als bei einem HW-Router – durch fehlerhafte SW-Konfiguration können Sicherheitslücken entstehen 2 2 Grund hierbei ist das hohe Maß an Konfigurierbarkeit. Die Default-Einstellungen in den Konfigurationsfiles sind konservativ. Durch OPT-Pakete mit Serverdiensten können weitere Schwachstellen entstehen. Home 7 Einleitung Online Ressourcen – Homepage: http://www.fli4l.de/ – Download: Benutzer-Version: http://www.fli4l.de/german/download.php Entwickler-Version: http://www.fli4l.de/german/download214.htm – FAQ: http://www.fli4l.de/faqengine/faq.php – Howto’s: http://www.fli4l.de/german/howtos.htm Home 8 Installation – Voraussetzungen Einleitung Installation Konfiguration Anwendung – Einrichten der Build-Maschine – Erster Testlauf – Planung der Konfiguration – Anpassung der Konfigurationsdateien – Beispiel: Floppy-Router mit 2 NW-Interfaces Home 9 Installation Voraussetzungen - Hardware – Folgende PC-Hardware wird empfohlen: Zweck Minimum Besser ISDN 386er CPU ab 25 MHz 486er ab 33 MHz DSL 486er CPU ab DX2/66 486er DX4/100, Pentium ab 75 MHz Speicher 12 MB 16 MB – Zubehör: – Floppy-Drive, 1 Diskette – Ethernet-Karte – ISDN-, DSL-, WLAN-Karte, weitere Ethernet-Karte(n) – optionales Zubehör: – HDD, CF-Adapter + CF-Karte, LCD, . . . Home 10 Installation / Voraussetzungen Client #2 172.16.1.x Client #1 172.16.1.3 Systemübersicht LAN Internet Server (eisfair) 172.16.1.123 sek. Interface 172.16.1.122 Ethernet, WLAN fli4l − Router prim. Interface dyn. od. statische IP Ethernet, DSL, ISDN, Modem Mit dem fli4l-Router wird die Anbindung des lokalen Netzes an das Internet realisiert. Home 11 Download der Pakete Installation / Voraussetzungen – Quelle: http://www.fli4l.de/german/download.php – Es gibt Basis- und OPT-Pakete – Die Pakete sind von der fli4l-Version abhängig (Kernelmodule, libc) – Erstellen des Arbeits- und eines Archivverzeichnisses mkdir -p my-fli4l/archiv – Speichern der wichtigsten benötigten Basispakete in my-fli4l/archiv Größe 4.124.672 311.296 2.351.104 151.552 Home Paket Beschreibung fli4l-2.0.8.tar.gz Basis Paket - Ethernet Router inet.tar.gz sshd, (telentd, ftpd) isdn.tar.gz Netzzugang per ISDN und / oder dsl.tar.gz Netzzugang per DSL 12 Installation Einrichten der Build-Maschine – Entpacken des Basispaketes tar xvzf archiv/fli4l-2.0.8.tgz – Inhalt des Verzeichnisses fli4l-2.0.8: mk(floppy|clean|tgz).(sh|bat) config/ doc/ img/ opt/ unix/ src/ windows/ check/ Home Skripte zur Erzeugen des Floppy-Images, . . . originale Konfigurationsdateien Dokumentation Ergebnisse des Buildprozesses (kernel, root-fs, opt.tgz) Zusatzdateien für OPT-Module Quellen zu imonc, mkfli4l, . . . mod. Kernel- und Modulquellen, Kernelkonfiguration Windows-Tools: (tar|gzip|imonc|mkfli4l).exe Wertebereichs- und Syntaxcheck der Konfigurations-Files 13 Erster Testlauf Installation cd my-fli4l/fli4l-2.0.8; ./mkfloppy.sh die Diskette enthält nun ein unkonfiguriertes Routerimage: ldlinux.sys syslinux.cfg kernel rootfs.gz opt.tgz Bootloader syslinux Konfigurationsdatei für syslinux Linux-Kernel Root-Filesystem Optionale Dateien: Treiber und Opt-Pakete An dieser Stelle ist die Arbeitsumgebung fertig eingerichtet und die eigentliche Konfiguration kann beginnen. Home 14 Installation Planung der Konfiguration – Hardwaredaten der Kommunikationsgeräte3: – Netzwerkkarten, ISDN-Karten, . . . – Namen von Kernelmodulen – Netzwerkdaten – IP-Addresse und Hostname des Routers, Netzmaske, Gateway – IP-Adressen von DNS-Servern und evtl. Zeit-Servern – Einwahldaten des/der Provider – Einwahlnummer, Username, Passwort, . . . – Zeitplan für Least Cost Routing 3 Knoppix oder µLinux hilft beim Ergründen von Hardwareparametern und Treibernamen. Home 15 Installation Anpassung der Konfigurationsdateien – Installation weiterer erforderlicher Pakete, z. B. isdn, dsl, inet, tools, dns, proxy cd fli4l-2.0.8; tar xvzf ../archiv/<PAKET>.tgz – Erzeugen einer Kopie des Konfigurationsverzeichnisses (empfohlen) cp -rfv config my-config – jedes Paket hat eine Konfigurationsdatei mit gleichlautendem Namen, nur die Pakete, deren Files in my-config enthalten sind, werden installiert. !!! Achtung: Die Konfigurationsdateien enthalten Klartextpaßwörter !!! Diese Dateien sind deshalb für Kinder und Personen, bei den Vertrauensgrundsatz aufgehoben ist, unzugänglich aufzubewahren ! Home 16 Installation Beispiel: Floppy-Router mit 2 NW-Interfaces – Anforderungen: – – – – Konfiguration mit 2 Netzwerkkarten, primäres Interface wird per DHCP konfiguriert, sekundäres Interface mit statischer IP Adresse, Features: DNS-Cache, Firewall, SSH-Login LAN Internet fli4l − Router eth0 IP statisch NW: 172.16.1.0/24 Home eth1 IP, NW: DHCP 17 Installation / Floppy-Router Konfiguration – Installation der Pakete: – fli4l-2.0.8.tar.gz – inet.tar.gz – 232-opt dhcp3-0.3.0.tgz – Anpassung der Konfigurationsdateien im Verzeichnis config-floppyrouter/ – base.txt: NW-Karten, Netzwerkdaten, Routing, DNS-Forward-Server, Firewall, Masquerading – inet.txt: SSHD – dhcp.txt: DHCP-Client – Erzeugen der Diskette ./mkfloppy.sh config-floppyrouter Home 18 Installation / Floppy-Router Inbetriebnahme und Test – Booten des Routers von Diskette – Login auf der Konsole – Test der Interfaces eth0, eth1: ifconfig, lsmod – Test des Routings: route, ping, traceroute – Test DNS: nslookup – Portscan von innen und außen: nmap – Test des Remote-Login: ssh, scp Home 19 Konfiguration und Ausbau des Routers – Merkmalsübersicht – Basispakete Einleitung Installation Konfiguration Anwendung – OPT-Pakete und Addons – Hardware – Betriebs- und Wählmodus – Routing, Paketfilter, Port-Forwarding, . . . – Wartung und Überwachung – Weitere (notwendige) Funktionen und Dienste Home 20 Merkmalsübersicht Konfiguration Sekundäres Interface Primäres Interface PC−Hardware LAN Internet fli4l − Router Dienste Wartung Überwachung Home Routing Masquerading Packet−Filter Betriebs− & Wählmodus ISP−Spezifika 21 Basispakete Konfiguration Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Home Paket fli4l-2.0.8 dsl isdn dhcp hd httpd inet ipx lcd lpdsrv pcmcia ppp proxy scsi serial time tools Inhalt BASIS, immer erforderlich! DSL-Router (PPPoE, PPTP) ISDN-Router DHCP-Server Installation auf Festplatte (+Patch!!) Mini-Webserver für Status-Ausgaben Telnet/FTP/SSH-Server IPX über ISDN LCD-Treiber-Software + Statusanzeige Druckerserver (ohne Spooling) Unterstützung von PCMCIA-Karten PPP-Anbindung über serielle Schnittstelle HTTP-Proxy SCSI-Treiber Tools für serielle Schnittstelle Time-Server/Client Diverse Linux-Programme als Tools Größe 4116541 145348 2345054 102045 181593 51231 306357 63633 66484 33157 164731 92860 51897 539581 19418 38002 165941 22 Konfiguration OPT-Pakete und Addons – derzeit gibt es 208 OPT-Pakete4 von OPT ACCOUNTING bis OPT ZEITSYNC – Kathegorien: Bridge, Tunnel, VPN, Statusinformation dns, dhcp Fax, Voice, Handy Sonstiges Firewall System-, Shell-Login http, wap, ftp Audio, Video, P2P Go Online/Offline Mail-, News File-, Printserver Hardware-Treiber – Addons5: Tools auf der Client-Seite, - diverse Clients für imond, telmond - Anrufüberwachung (CallChecker) - Tools zu Logfileauswertung - Syntax-Highlighting der Konfigurationsdateien für verschiedene Editoren 4 5 http://www.fli4l.de/german/extern/opt/search.pl http://www.fli4l.de/german/addons.htm Home 23 Konfiguration Hardware – Unterstützung von 40 Netzwerkkarten-Familien und 37 ISDN-Karten – Konfiguration von ISDN-PnP-Karten (ISA)6 ⇒base.txt:OPT PNP=’yes’ – CompactFlash-Karten und LS120-Laufwerke als Bootmedium – verschiedene OPT-Pakete zur Ansteuerung von LED’s an Tastatur, COM- und LPT-Port OPT (OLED|COMLED|LPTLED) – Steuerung des Routers mit einem Tastenpanel7 am COM-Port ⇒ OPT CPANEL – Ansteuerung von LCD’s am Parallelport (siehe Paket lcd.tar.gz) 6 siehe fli4l-2.0.8/doc/deutsch/opt/pnp.html 7 “Schnell geschaltet”, Mirko Dölle, Linux-Magazin, 9/2000 http://www.linux-magazin.de/Artikel/ausgabe/2000/09/Seriell/seriell.html Home 24 Konfiguration Betriebs- und Wählmodus – Dial-Modi: base.txt:DIALMODE=‘‘xxxx’’: – auto: Einwahl erfolgt bei Anforderung aus dem LAN ⇒ Kostenfalle8 !! – manual: Einwahl per Imon-Client (imonc) – off: Einwahl permanent unterdrückt, auch nicht per imonc – Auto-Hangup: Lösung für Probleme bei Beschuß durch E-Donkey & Co. – ISDN: Kanalbündelung (Grenzwerte zum Einschalten des 2. Kanals) – DSL per PPPoE (PPP over Ethernet), PPTP (Österreich) – Verwendung von Breitband-Kabelmodems an Ethernet-Karten mit DHCP-Client – USB-Geräte ab Version 2.2 (DSL, WLAN) 8 Durch Auto-Dial kann es zu sehr hohen Kosten bei Wählanschlüssen ohne Flatrate kommen, z.B. bauen WindowsClients ca. alle 5 Minuten einen Kontakt zum Nameserver auf, oder im Web-Browser wird eine Seite angezeigt, die periodisch aktualisiert wird (Client-Pull). Home 25 Konfiguration / DialUp Least Cost Routing (ISDN) – Konfiguration mehrerer Anbieter als sog. “Circuits” – Einstellung von Zeiten und Kosten für jeden Circuit isdn.txt:ISDN CIRC 1 NAME = ’Mein Anbieter’ isdn.txt:ISDN CIRC 1 TIMES=’Mo-Fr:09-18:0.049:N Mo-Fr:18-09:0.044:Y ...’9 – der fli4l-Router sollten daher eine gültige Uhrzeit haben: – a) Korrektur von Y2K-Problemen: base.txt:OPT Y2K=’yes’; Y2K DAYS=’x’ – b) Verwendung eines Netzwerkzeitservers (Paket time) – c) Anbindung einer DCF77-Uhr – Feiertage werden berücksichtigt – Aktualisierung des LCR-Planes im laufenden Betrieb möglich 9 Format ISDN CIRC 1 TIMES = ’A:B:C:D [A:B:C:D] ...’ ⇒ A: Wochentage, B: Zeitintervall, C: Kosten pro Minute, D: Y = Default Circuit, kein LCR, N = Circuit wird bei automatischen LCR verwendet Home 26 Konfiguration Routing, Paketfilter, Port-Forwarding, . . . – die Konfiguration dieser Funktionen erfolgt in der Datei base.txt – Routing: Regeln zur Paketweiterleitung IP DEFAULT GATEWAY=’eth1’, IP ROUTE x=’netzwerk netzmaske gateway’ – Paketfilter: Steuerung/Überwachung des Zugangs zum LAN von außen FIREWALL DENY PORT 1=’port|portbereich REJECT|DENY’ FIREWALL DENY ICMP=’yes|no’ Unterdrückung von ping, FIREWALL LOG=’yes|no’ – Port-Forwarding: sperren des Routings von Hosts und Ports im LAN FORWARD DENY HOST x =’ipadresse’, FORWARD DENY PORT 1 =’portbereich’ – IP-Masquerading: Rechner im lokalen Netz (172.x.x.x) sind von außen nicht erreichbar. Um einen Verbindungsaufbau von außen zu ermöglichen (z.B. FTP) werden Masquerading-Module verwendet, die Verbindungen durch den Austausch lokaler und externer IP-Adressen weiterleiten. MASQ NETWORK=’192.168.6.0/24’, MASQ MODULE x=’ftp|raudio|h323|...’ Home 27 Proxies einrichten Konfiguration – Junkbuster: proxy.txt; Paket proxy.tar.gz OPT PROXY=’yes|no’; PROXY ACCESS=’172.16.1.0/24’; PROXY PORT=’8000’ PROXY FORWARD=’3128’ # Forward Junkbuster to Squid-Port – Squid10 : squid.txt; OPT-Paket: 1076-opt squid 2.0.x 1.1.zip OPT SQUID=’yes|no’; SQUID ACCESS=’172.16.1.0/24’; SQUID BLOCK PORN=’yes’; SQUID BLOCK PORN EXCL IP=’’ # exclude ;-) Contentfilterlisten: opt/files/usr/local/squid/etc/blocklist/* router:8000 router:3128 10 Junkbuster Squid Internet Bei der Installation von Squid sollte keine CF-Karte als Disk verwendet werden, bzw. mit OPT-RAMDISK Platz für die variablen Daten geschaffen werden. Home 28 Konfiguration Module zur Überwachung des Routers – die Nutzung von imond und telmond erfordert isdn.tar.gz11, die Konfiguration erfolgt in isdn.txt. – ISDN Monitor: imond – – – – Dämon12 zur Steuerung des Routers (Port 5000) Steuerung des Least Cost Routing verschiedene Kommandos für User und Admins Zugriff nur durch Rechner aus maskierten Netzen siehe base.txt:MASQ NETWORK – Telefon Monitor: telmond – – – – 11 12 Anzeige der Daten aus /dev/isdnctrl0 auf Port 5001 Loggen von Telefonverbindungen in einer Datei Zuordnung von MSN und Client-IP bei Anzeige per imonc Programmausführung bei ankommenden Anrufen Soll imond ohne physisch vorhandene ISDN-Karte verwendet werden, muß eine Dummy-Karte konfiguriert werden. diverse Client-Software verfügbar, siehe Addons Home 29 Konfiguration Weitere (notwendige) Funktionen und Dienste Treiber: OPT SCSI SCSI-Treiber OPT SERIAL Konfiguration der seriellen Schnittstelle OPT PCMCIA PCMCIA-Treiber ... Server-Dienste: Home OPT DHCP OPT HTTPD OPT VBOX OPT LPDSRV ... Sonstiges: DHCP-Server Mini-Webserver als Statusmonitor Anrufbeantworter lpd Berkley Druckerserver OPT IPX OPT PPP ... IPX-Netzwerkkonfiguration PPP-Server/Router über serielle Schnittstelle 30 Anwendung Einleitung Installation Konfiguration Anwendung Home – Beispiel: Router auf HDD mit – DNS-Cache, Firewall, SSH-Login – serielle Konsole (Headless-Betrieb) – syslogd über das Netz zu einem Log-Host 31 Anwendung Beispiel: Router mit HDD (CF) – Anforderungen: – Konfiguration mit 2 Netzwerkarten, primäres Interface: DHCP, sekundäres Interface: statische IP – Features: DNS-Cache, Firewall, SSH-Login – serielle Konsole (Headless-Betrieb) – HDD-Installation mit fli4l-2.0.8 – Die Installation (Typ A13, eine FAT-Partition) erfolgt in folgenden Phasen – Phase 1: Erstellung einer Diskette mit dem Paket hd.tar.gz mit Patch – Phase 2: Installation von fli4l auf der Festplatte – Phase 3: Erstellung und Installation der Vollversion 13 Typ B Installation: je eine FAT- und eine ext2-Partition, beim Start des Routers wird das opt.tgz auf der ext2-Partition entpackt - für eine CF-Disk ist dieses häufige Wiederbeschreiben ungünstig. Home 32 Anwendung / HDD-Router Phase 1: Diskette erstellen – Konfigurationsverzeichnis config-hdd-1 anlegen. – Die Dateien aus config-floppyrouter können recycled werden (base.txt, isdn.txt, dsl.txt, imonc.txt), – Das Paket hd.tar.gz14, hd.txt muß neu eingespielt werden. – Anpassung von base.txt und hd.txt base.txt:MOUNT_BOOT=’rw’ base.txt:RAMSIZE=’2048’ hd.txt:OPT_HDINSTALL=’yes’ 14 Achtung in V. 2.0.8 den Patch hd-2.0.8-patch-1.tar.gz mit installieren. Home 33 Anwendung / HDD-Router Phase 2: HDD-Installation – Router mit der neuen Diskette booten – An der Konsole einloggen und den Befehl setup eingeben – dem Menü folgen: – – – – – Festplatte: hda Boot-Partition: max. 32 MB für /boot (FAT) SWAP: bei CompactFlash 0 wählen, keine Swap-Partition !! Datenpartition: bei CompactFlash ebenfalls 0 wählen. Notfalloption: b (nur opt.tgz) oder c (komplett) – den Router von Festplatte booten – Test des SSH-Zugangs: ssh root@fli4l Home 34 Anwendung / HDD-Router Phase 3: Vollversion installieren – Kopie der Konfigurationsdateien anlegen cp -rfv config-hdd-1 config-hdd-2 – Änderung von config-hdd-2/base.txt base.txt:OPT HDINSTALL=’no’ – weitere Pakete installieren und konfigurieren, Konfigurationsdateien von config/ nach config-hdd-2/ kopieren. – Das File opt.tgz und rc.cfg neu erstellen ./mktgz.sh config-hdd-2 – Files auf den Router kopieren scp img/opt.tgz img/rc.cfg root@fli4l:/boot – Router neu starten ssh root@fli4l reboot Home 35 Anwendung / HDD-Router Der Notfall-Modus – Die Notfalloption dient dazu, den Router nach dem Einspielen von falsch konfigurierten Dateien wieder mit einer funktionierenden Konfiguration zu starten. – Die Recovery-Version wird beim Setup angelegt. Funktion: Bei der Installation werden Kopien von Systemdateien in /boot angelegt, die als Recoveryfiles (file.x ⇒ file2.x) dienen. Beim Booten des Routers wird ein Timer gestartet (60s). Wenn innerhalb dieser Zeit ein Reset des Routers erfolgt, wird beim nächsten Reboot die Recovery-Version gestartet. Der Ablauf des Recovery-Timers wird durch drei Beeps signalisiert. – Notfalloptionen: a: keine Notfalloption b: opt2.tgz, rc2.cfg c: kernel2, rootfs2.gz, syslinux2.cfg, opt2.tgz, rc2.cfg Home 36 Anwendung / HDD-Router Logging im Headless-Betrieb – Serielle Schnittstelle als Konsole einrichten ⇒ syslinux.cfg SERIAL 0 38400 # syslinux15 per COM1 anzeigen TIMEOUT 0 DEFAULT kernel # Console im Kernel auf COM1 und tty0 umlegen APPEND load ramdisk=1 initrd=rootfs.gz root=/dev/ram0 boot=/dev/fd0h1440 \ console=tty0 console=ttyS0,38400n8 – bei Diskettenversion Änderung von img/syslinux(1440|1680).cfg – bei Festplatteninstallation Änderungen in fli4l-2.0.8/opt/files/usr/sbin/setup – Anleitung für die Verdrahtung des Kabels siehe “Serielle Console für fli4l” http://www.fli4l.de/german/howtos/howto-serial-console-2.htm 15 Bei Verwendung von SERIAL 0 [birate] kann zwar die Ausgabe von syslinux auf COM1 beobachtet werden, aber die Eingabe auf tty0 funktioniert nicht mehr. Wer beides braucht läßt die Zeile einfach weg. Home 37 Anwendung / HDD-Router Syslog über das Netzwerk umleiten – Syslog zu einem Log-Host (z. B. eisfair) – Einschalten des Syslod-Dämons auf dem Router (base.txt) OPT SYSLOGD=’yes|no’; SYSLOGD DEST 1=’*.* @172.16.1.123’ – Klogd muß konfiguriert sein, damit auch die Paketfilter-Meldungen im Syslog erscheinen: OPT KLOGD=’yes’; FIREWALL LOG=’yes’ – Auf dem Log-Host muß syslogd mit den Optionen16 ’-r -l routername’ gestartet werden. Achtung ! Die Partition, auf der syslogd die Daten speichert (Log-Host), muß ausreichend Kapazität haben. 16 bei SuSE rc.config:SYSLOGD PARAMS=’-r -l 172.16.1.122’ Home 38 Zusammenfassung – Mit fli4l kann rasch aus alter Hardware ein Router aufgebaut werden. – Die Konfiguration des Systems erfolgt einfach über Textdateien mit einheitlicher Syntax. – Aufgrund der vielen Erweiterungsmöglichkeiten ist das System flexibel an unterschiedliche Einsatzzwecke anzupassen. – Die vielen verfügbaren Pakete verleiten dazu, Server-Funktionalität in den Router zu verlagern. – Jeder sollte beim Einrichten eines solchen Systems kritisch die Grenze zwischen Komfort und Sicherheit für den jeweiligen Einsatzzweck festlegen. . . . Lieber ein lebendiger Feigling als ein toter Held. Home