www.Newbie-Net.de

Newbierouter

Linuxrouter für ISDN, mit Dial-on-Demand und Masquerading

Autor: Karsten Kruse

Inhalt

Vorwort

Diese Anleitung beschreibt die Installation und Konfiguration eines Linuxrouters mit ISDN und Dial-on-Demand auf der Basis der SuSE-Linux Distribution. Auf dieser Basis werden dann noch ein paar weitere Möglichkeiten besprochen die so ein Linuxrouter bietet. Sie ist vor allem für Privatleute gedacht, kann natürlich auch auf kleinere Firmen, Vereine usw. angewandt werden. Ich möchte mich bei all denen Bedanken die mich Unterstützen und mir ihre Meinung zu dieser Seite an tecneeq(at)gmx(dot)net mailen. Es macht Spaß zu sehen das viele Linuxeinsteiger meine Anleitung mit Erfolg benutzen. Also, weiter so Jungs und Mädels ;).

Dank an:

Das Urheberrecht liegt bei Karsten Kruse (tecneeq(at)gmx(dot)net).

Warum Linux?

Linux ist möglicherweise nicht das Perfekte Betriebssystem (noch nicht?), doch es ist die für mich beste Variante alles das zu machen was ich machen möchte. Es gibt sicher tausend Gründe die für Linux sprechen, ich habe mal ein paar Punkte notiert.

Ich bevorzuge eine Distribution, die auf CDs daherkommt, eine ordentliche Installations- und Konfigurationshilfe besitzt und eine Service-Hotline und ein Handbuch bietet. Meine Empfehlung ist das Paket der SuSE GmbH - eine sehr üppig ausgestattete Distribution, mit dem sich alles, was hier beschrieben ist, realisieren lässt. Die Distribution SuSE 7.3 wird mit insgesamt sieben CDs, einer DVD, Bootdisketten und mehreren guten Handbüchern ausgeliefert (die Bootdisketten braucht man nur, falls man nicht von CD booten kann). Alles in allem ein gutes Angebot wie ich finde. Es muss aber nicht unbedingt die aktuellste Version sein, ältere Versionen sind oftmals günstig zu erstehen und leisten als Server das gleiche. Für eine Workstation dagegen bevorzuge ich die neuesten Versionen.

Leider gibt es von der SuSE Linux Distribution keine ISO-Images für i386er Architektur zum Downloaden, man kann aber von FTP installieren wenn man die kosten für die CD's nicht zahlen kann oder will. Eine Anleitung dazu findet sich auf http//www.suse.de/ in der Supportdatenbank.

Bei den Clients ist es ziemlich egal, unter welchen Betriebssystem sie laufen. Das kann Windows 3.11/95/98/Me sein oder Windows NT4/2000/XP, aber auch genauso gut Linux, OS/2, MacOS oder BeOS. Wichtig ist nur, dass man irgendwie TCP/IP-Funktionalität hin bekommt.

Hardware

Ein normaler 100 MHz PC lässt sich ohne Probleme in einen reibungslos funktionierenden Internet-Router verwandeln, lass dir nichts anderes erzählen. 32 MB RAM sollte man ihm aber spendieren, eine Festplatte von 1 GB kann später Proxydateien zwischenspeichern. Wenn kein Proxy installiert werden soll, reichen auch schon 300 MB aus. Ich habe auch schon einen 486 DX2 mit 500 MB Festplatte und 8 MB RAM als Router eingesetzt, allerdings ohne Proxy. Für die Verbindung zum Internet sollte es schon eine ISDN-Karte sein. Ohne Probleme habe ich eine USR Sportster Internal Isa oder AvmFritz PCI zum Laufen gebracht. Auch die meissten anderen ISDN-Karten sind Problemlos zu konfigurieren. Problematisch sind die AvmFritz PCI v2, vermeide diese Karte besser. Notfalls lässt sie sich diese Karte aber auch mit Capi benutzen, auf der Herstellerseite gibt es dazu Details. Als Netzwerkkarte tut es eine ganz normale 10 MBit Karte, da der Flaschenhals die Verbindung zum Provider ist. Soll der Rechner später als Fileserver dienen ist eine 100 MBit Karte sicher angemessen. Ein CD-Rom ist zur Installation sinnvoll. Eine Maus wird nicht benötigt. Als Monitor tut es bei mir ein altes 11 Zoll schwarzweiß-Gerät. Er wird so gut wie nie eingeschaltet denn der Rechner wird mittels SSH über das Netzwerk gesteuert. Die Grafikkarte sollte VGA beherrschen.

Alles in allem also weitaus weniger als ein handelsüblicher PC. Manch einer hat solche Hardware noch im Keller stehen. Eine Rundfrage bei Freunden kann auch sinnvoll sein ;-). Generell kann man sagen das Linux wesentlich genügsamer ist als z.b. Windows. Das ist wohl auf die Tatsache zurückzuführen das die grafische Benutzeroberfläche nicht in das System integriert ist. Linux braucht keine superschnellen Prozessoren aber für mehr Arbeitsspeicher belohnt es mit zügigerer Arbeitsweise. Ich sage es nochmal, beim Arbeitsspeicher gilt: VIEL HILFT VIEL.

 

Als Anfang

ernster Betrieb

High-End

Prozessor

100 MHz

300 MHz

Das Schnellste

Arbeitsspeicher

32-128 MB

128-256 MB

256-? MB

Festplatte

500 MB

nach Bedarf

nach Bedarf

DFÜ

Modem/ISDN

ISDN

Standleitung

Netzwerkkarte

10-100 MBit

100 MBit

100-? MBit

Meine eigene Hardware sieht zum Zeitpunkt wo ich diese Anleitung schreibe so aus:

Serverinstallation

OK, Du hast einen PC mit ISDN- und Netzwerkkarte vor dir und ein Päckchen mit der Aufschrift "SuSE Linux", jetzt kann es losgehen.

Wenn sich noch eine Windows-Installation auf der Platte befindet, solltest Du die Gelegenheit nutzen und im Gerätemanager nach den IRQ- und Adressbereichen der ISDN-Karte schauen, und die Werte auf einen Zettel schreiben. Das erspart hinterher ein bisschen Ausprobiererei. Ob die Festplatte nun leer ist oder nicht, in jedem Fall legst Du die zweite Linux-CD (Ja, die zweite. Auf der ersten befindet sich seit Version 6.3 ein grafisches Installationsprogramm, das zwar nicht unbedingt schlecht ist, aber wir brauchen eine möglichst einfache Installation. Wenn Du eine ältere Version als 6.3 einsetzt, boote von der ersten CD.) ins Laufwerk (oder die Diskette, falls Du nicht von CD booten kannst) und startest den Computer neu bzw. drückst auf Reset.

Als nächstes bootet Linux. Zuerst wirst Du einen bunten Textbildschirm mit der Adresse der Firma SuSE sehen, dazu steht in der untersten Zeile LILO boot:. Warte ein paar Sekunden ab, dann erscheinen die Meldungen Loading initdisk.gz und Loading Linux. Etwas später rollen Systemmeldungen über den Bildschirm. Wenn der Rechner sich wieder beruhigt hat, werden dir nacheinander Menüs präsentiert, in denen Du Sprache, Farbeinstellung und Tastaturbelegung auswählen kannst.

Danach landest Du im Hauptmenü. Wähle hier Installation/System starten, dann Installation starten und schliesslich als Installationsquelle CD-ROM. Daraufhin werden einige MB an Daten von der Installations-CD in eine RAM-Disk geschaufelt. Das nächste Fenster ist mit Typ der Installation betitelt. Hier solltest Du Linux neu installieren auswählen. Im darauffolgenden Menü Partitionieren wirst Du gefragt, ob Du den gesamten freien Platz auf deiner Festplatte für Linux nutzen möchtest. Es spricht nichts dagegen (Ausser es liegen noch weitere Daten oder Betriebssysteme auf der Festplatte). Die anschliessende Partitionierung nimmt Linux vollautomatisch vor.

Jetzt siehs Du das Hauptmenü von YaST. YaST ist das Akronym für "Yet another Setup Tool". Hier wählen wir auf Konfiguration laden aus. Du siehst nun einige Installationsprofile, die SuSE zusammengestellt hat. Voreingestellt ist Standard, ein gutes Profil für den Heimanwender. Da wir jedoch ein möglichst schlankes (und somit auch sichereres, denn je weniger Programme laufen, desto weniger potentielle Angriffsziele hat ein vermeintlicher Cracker) System haben wollen, bietet sich der Punkt Minimal an. Du musst außerdem das Paket "ipchains" aus der Serie "sec" und "i4l" (ISDN for Linux) aus der Serie "N" anwählen (Ich installiere noch gerne zusätzlich das Paket "mc", ein recht einfach zu bedienender Dateimanager mit Editor im NortonCommander Stil). Ist die Distribution neuer als 7.1 sollte statt "ipchains" das neue "iptables" ausgewählt werden. Später kannst Du immer noch Pakete installieren bzw. restlos entfernen.

Wähle nun Installation starten. Jetzt musst Du dich ein wenig gedulden (und ab und zu eine andere CD einlegen), denn der Rechner schaufelt jetzt die ausgewählten Programme auf deine Festplatte. Zum Schluss wählst Du den Punkt Hauptmenü und müsst wieder CD 1 einlegen. Du stehst jetzt vor der Wahl, welchen Kernel Du installieren willst. Der Kernel entspricht sozusagen der internen Linux-Version. Nimm den von SuSE empfohlenen Kernel und wähle danach Standard (E)IDE-Kernel oder, falls Du ein SCSI-System hast, den für deinen Controller passenden Kernel. Die Frage, ob eine Bootdisk angelegt werden soll, kannst Du verneinen, denn Du kannst später jederzeit, falls es erforderlich sein sollte, das auf der Festplatte installiertes System mit der beiliegenden Bootdisk oder der CD hochfahren.

Jetzt wirst Du gefragt, ob Du LILO konfigurieren möchtest. Dies solltest Du auf alle Fälle tun, da du sonst immer eine Boot-Disk (oder Boot-CD) brauchst, wenn du dein System hochfahren willst. Wähle also Ja. Im Konfigurationsscreen schreibst du in die oberste Zeile Linux (Der Profil-Name), in der zweiten Zeile wählst du den Eintrag Linux booten. Bestätige die restlichen Felder, bis du die Erfolgsmeldung Added Linux* erhältst. Ab sofort wird bei jedem Neustart des Systems der LILO (LInux LOader) gestartet, der dich fragt, welches Profil du booten möchtest. Durch Eingabe von Linux (oder Drücken von ENTER, denn Linux ist hier das einzige Profil) fährt dein System hoch.

Nun wählst du die Zeitzone (Europa/Berlin) aus, in der du dich befindest und stellst ein, ob auf deinem Rechner die Ortszeit oder GMT eingestellt ist. Meistens ist Ortszeit die richtige Wahl.

Als nächstes will Linux den Rechner- und Domainnamen deines Computers wissen. Als Rechnernamen kannst du router einsetzen, als Domainnamen z.B. local.

Linux fragt dich jetzt, ob du ein echtes Netzwerk haben willst oder ob TCP/IP nur für das Loopback Device eingerichtet werden soll. Auch wenn du eine Netzwerkkarte installiert hast, die den Linux-Rechner mit dem Rest deines Netzwerks verbindet, solltest du hier nur Loopback wählen. Das macht die anschließende Konfiguration ein gutes Stück leichter. Die Netzwerkkarte werden wir später einrichten.

Jetzt startet das Programm SuSEConfig und richtet dein System entsprechend den eben gemachten Angaben ein. Wenn SuSEConfig fertig ist, bestätige mit der Enter-Taste. Du landest wieder im Hauptmenü, wo du jetzt nur noch den Start des frisch installierten Systems befehlen kannst.

Das System fährt jetzt hoch, und nach einer gewissen Zeit wirst du aufgefordert, ein Passwort für den Benutzer root einzugeben. Root ist der Superuser auf dem Linux-System. Er darf alles. Er darf auch alles kaputtmachen. Es ist möglich, sich als root über ein Netzwerk anzumelden. Es ist auch möglich, sich als root über das Internet anzumelden. Entsprechend sorgfältig sollte das Passwort ausgesucht werden. Linux warnt dich, wenn du ein offensichtlich zu einfaches Passwort eingeben.

Schlechte Passwörter sind z.B.:

Gute Passwörter sind z.B. Kunstwörter die aus den Anfangsbuchstaben der Wörter eines Satzes gebildet werden, z.B. Li1gu2B (Linux ist ein 1. gutes und 2. billiges Betriebssystem) - klingelt's? Genau, ich habe einfach nur die ersten Buchstaben genommen und die aneinandergereiht. So kann man sich das Passwort merken, aber es ist fast unmöglich zu erraten.

Hast du dich für ein Passwort entschieden, startet wieder YaST, um einige letzte Dinge abzufragen. Als erstes solltest du die Frage, ob ein Beispielbenutzer angelegt werden soll, bejahen und die darauf folgende Maske ausfüllen. Dieser Benutzer ist ein normaler User, der ein Heimatverzeichnis hat, in dem er sich austoben kann. Er kann aber sonst kaum etwas am System verändern und somit auch nichts kaputtmachen.

Wenn du ein Modem hast, kannst du es als nächstes einrichten. Da eine ISDN-Karte für den Betrieb als Router aber ohnehin sinnvoller ist, überspringe ich die Einrichtung an dieser Stelle (Abgesehen davon habe ich noch nie ein Modem eingerichtet ;) ). Deine Maus könntest du einrichten, musst es aber nicht. Du wirst auch kaum Gelegenheit haben die Maus zu benutzen, denn der Router wird ausschließlich über die Tastatur oder das Netzwerk bedient.

Schliesslich und endlich beendet sich YaST und das System teilt dir mit, dass noch einige Scripte laufen müssen. Dieser Vorgang ist in drei bis vier Minuten abgeschlossen. Du kannst aber während dieser Zeit schon ganz normal mit dem System arbeiten.

Herzlichen Glückwunsch. Du hast soeben Linux installiert :).

Serverkonfiguration

Nachdem das Grundsystem läuft, machen wir uns an die Konfiguration. Melde dich sich als Benutzer root an. Folgende Punkte sind zu erledigen:

  1. Linux muss mit der ISDN-Karte bekanntgemacht werden.
  2. Diese muss dann als Netzwerk-Device eingerichtet und für die Anwahl des Providers bereitgemacht werden.
  3. Dann wird die normale Netzwerkkarte konfiguriert
  4. Schliesslich wird Linux so konfiguriert, dass Anfragen, die an der Netzwerkkarte eintreffen, ins Internet weitergereicht werden.

Das Einrichten der ISDN-Karte ist kein grosses Problem. SuSE Linux bringt von Haus aus jede Menge Treiber für ISDN-Karten verschiedener Hersteller mit. Starte also YaST und wähle den Punkt "Administration des Systems" - "Hardware ins System integrieren" - "ISDN-Karte" an.

Um die ISDN-Hardware bequem in Linux einzubinden, nehmen wir wieder YaST. Es ist sinnvoll, vor dem eigentlichen einbinden das System vom Standard-Runlevel 3 auf Runlevel 1 zu bringen. Konkret heisst das: Wir sagen dem System, es soll erst mal alles, was mit Netzwerken zu tun hat, deaktivieren (Unter SuSE Linux gibt es sieben Runlevel, die folgende Bedeutung haben: 0=System steht, 1=Betrieb ohne Netzwerk, 2=Nicht belegt, 3=Betrieb mit Netzwerk, 4 und 5=Betrieb mit Netzwerk und grafischer Oberfläche, 6=Neustart. Ein Runlevel ist sozusagen der Zustand, in dem sich das System befindet). Ruf also von der Kommandozeile den Befehl init 1 auf.

Nachdem einige Systemmeldungen über beendete Netzwerkdienste über den Bildschirm geflimmert sind, wirst du die Meldung "Runlevel 1 has been reached" sehen. Drücke ENTER. Ruf jetzt YaST durch Eingabe von yast auf.

Gehe auf "Administration des Systems" -> "Hardware ins System integrieren" -> "ISDN-Hardware konfigurieren".

Das Kästchen "I4L starten" musst du ankreuzen. Es ist sozusagen der Hauptschalter für alle ISDN-Dienste. Unter ISDN-Protokoll musst du höchstwahrscheinlich "Euro-ISDN" einstellen, es sei denn, du benutzt noch das uralte nationale ISDN (1TR6). "Typ der ISDN-Karte" dürfte selbsterklärend sein. In unserem Beispiel ist das die Fritz!Classic. (Wunder dich nicht wenn du das nächste mal in diese Maske gehst und statt Fritz!Classic die Karte AVM A1 eingetragen ist. Diese beiden Karten sind baugleich.) "Kennung der Karte" kannst du auf "HiSax" stehenlassen.

Je nach Karte werden jetzt ein paar IRQs und Adressen abgefragt. Bei der Fritz!Classic ist das genau ein IRQ und eine IO-Adresse. Die Adresse kannst du an dem Jumper auf der Karte ablesen. Beim IRQ wird es schwieriger. Wenn die Karte vorher in einem Windows-Rechner ihren Dienst verrichtet hat, stellst Du den Wert ein, den der Windows-Treiber der Karte verpasst hat. Kennen du den Wert nicht (oder war die Karte noch nie in einem Windows-Rechner eingebaut), dann musst du raten. Probiere die IRQs 10, 11 und 5 durch, einer von denen passt meistens. Unter "Optionen zum Laden des ISDN-Moduls" wird nichts eingetragen. Teste jetzt Ihre Konfiguration, indem Du auf "Starten" drückst. Ein Fenster erscheint, in dem die Statusmeldungen des Systems ausgegeben werden. Falls am Ende die Meldung "Der Start von I4L scheint erfolgreich verlaufen zu sein"erscheint, ist alles in Butter und du kannst mit "Speichern" deine Konfiguration dauerhaft festhalten. Andernfalls musst du evtl. noch etwas mit dem IRQ rumspielen, bis es klappt.

Jetzt geht es zu Punkt 2, die ISDN-Karte für die Einwahl beim Provider fit machen.

Da wir die ISDN-Hardware jetzt korrekt eingebunden haben, ist das weitere Vorgehen unabhängig von der verwendeten Karte. Ruf (immer noch im Runlevel 1) unter YaST den Punkt "Administration des Systems" -> "Netzwerk konfigurieren" -> "Netzwerk Grundkonfiguration" auf. Der erste Eintrag in der Liste sollte blau hinterlegt sein. Drück F5 und wähle "ISDN SyncPP" aus. Drück dann F6, um die IP-Adressen für die Einwahl bei deinem Provider einzustellen. Falls dein Provider dir feste IPs zugewiesen hat, trag diese hier ein. Falls (und das ist wahrscheinlicher) dein Provider mit dynamischer Adressvergabe arbeitet, dann trag in das Feld "IP-Adresse Ihres Rechners" die 192.168.0.99 ein, unter "Adresse des default-Gateway" 192.168.0.1 und als "IP-Adresse des PointToPoint-Partners" ebenfalls 192.168.0.1 . Verlasse die Maske mit Weiter. Aktiviere das Device mit F4.

Drück jetzt F8. In dieser Maske musst du zunächst deine eigene MSN (d.h. die Nummer deines ISDN-Anschlusses) eingeben. Die Vorwahl wird dabei weggelassen. In das Feld "Anzurufende Nummern" kommt die Telefonnummer deines Providers (bei T-Online ist das z.B. die 0191011). Das Feld "Anzurufende Nummern" kannst du leer lassen, das Kreuz bei "Nur angegebene Nummern erlaubt" kann ebenfalls so bleiben, wie es ist. Diese beiden Angaben sind nur wichtig, wenn du anderen Leuten erlauben willst, sich in deinen Linux-Rechner per ISDN einzuwählen. "Wählmodus" "Idle-Time" und "Maximale Wählversuche" lassen wir erst mal stehen, wie sie sind. (Du kannst später den Wert für Idle-Time erhöhen. Dadurch bekommst du weniger einzelne Verbindungen, diese dauern dafür aber länger. "Name des PPP-Logins" und "Passwort des PPP-Logins" sind Benutzername und Passwort, die dir dein Provider zugewiesen hat. Falls du T-Online benutzt, setzt sich der Name folgendermaßen zusammen: Zuerst kommt deine Anschlusskennung, danach (ohne Leerzeichen o.ä. dazwischen) deine T-Online-Nummer, dann das Zeichen # und anschließend deine Mitbenutzernummer. Der Name hat somit das Format AAAAAAAAAAAATTTTTTTT#MMMM, also z.B. 00011122233306912345#0001, wenn deine Anschlusskennung 000111222333 ist, deine T-Online-Nummer 06912345 und deine Mitbenutzernummer 0001, was der Standard ist, wenn du keine weiteren Mitbenutzer eingerichtet hast. Hast du diese Werte alle eingegeben, bestätige mit "Speichern".

Verlass jetzt die Maske "Auswahl des Netzwerks" mit F10, worauf YaST einige Einstellungen vornimmt. Wenn du danach ENTER drückst, landest du wieder im YaSt-Anfangsbildschirm. Zu guter Letzt gehst du auf "Konfiguration Nameserver", bestätigst die Frage ob du auf einen Nameserver zugreifen wollen mit Ja und gibst dann in der oberen Zeile die IP-Adressen des Nameservers und unten die Default Domain(s) deines Providers ein. (Bei T-Online ist der Nameserver 194.25.2.129 und die Default-Domains btx.dtag.de und t-online.de.) Bestätige mit Weiter. Drück so oft Escape, bis du wieder auf der Kommandozeile landest. Gib hier "init 3" ein. Damit starten du die Netzwerkdiesnte wieder.

Jetzt kommt der Praxis-Test: Gib isdnctrl dial ippp0 ein. Es sollte die Meldung Dialing of ippp0 triggered erscheinen. Wenn du jetzt ping 194.25.2.129 (Nameserver der Telekom) eingibst, sollte ungefähr einmal pro Sekunde ein Meldung der Art 64 Bytes from... ausgegeben werden. Abbrechen kannst du diesen Vorgang mit Strg-C.

Wenn das klappt ist die Verbindung hergestellt.

Mit isdnctrl hangup ippp0 trennst du die Verbindung zu deinem Provider. Sie wird auch automatisch getrennt, wenn 60 Sekunden lang (der Wert "Idle-Time") keine Daten übertragen werden.

Punkt 3 und 4 können wir gleichzeitig erledigen. Schalte zunächst wieder mit init 1 in den Runlevel 1.

Starte wieder YaST und geh auf "Administration des Systems" -> "Hardware ins System integrieren" -> "Netzwerkkarte konfigurieren". Den Typ des Netzwerks kannst du mit F3 verstellen, in den meisten Fällen dürfte aber eth0 (Ethernet) richtig sein. Unter "Art der Netzwerkkarte" wählst du deine Karte aus. Falls deine Karte nicht in der Liste erscheint, solltest du es mit NE 2000 (PCI) bzw. NE 2000 / NE 1000 (ISA) versuchen. Meistens erkennt Linux die Karte dann korrekt. Normalerweise musst du auch keine weiteren Optionen eingeben, du kannst die letzte Zeile also leer lassen. Bestätige mit Weiter.

Zurück zu YaST und dann zu "Administration des Systems" -> "Netzwerk konfigurieren" -> "Netzwerk Grundkonfiguration". Hier gehst du in die zweite Zeile und drückst F5. Aus der Liste wählst du (in unserem Beispiel) Ethernet. Auch hier musst du das Gerät wieder mit F4 aktivieren. Mit F6 vergibst du dann die IP-Adressen. Hier muss unter IP-Adresse deines Rechners eine IP stehen, die sich im selben Subnet befindet wie der Rest deiner Rechner. In der Regel bedeutet das, dass die ersten drei Zahlen der Adresse auf allen Rechnern jeweils übereinstimmem müssen. Du solltest allerdings NICHT das selbe Netzwerk verwenden, in dem sich schon deine ISDN-Karte befindet. Beispiel: Die ISDN-Karte hat die IP-Adresse 192.168.0.99 mit Subnet 255.255.255.0. Dann solltest du der Netzwerkkarte eine IP geben, bei der die ersten drei Zahlen NICHT identisch sind, also z.B. 192.168.1.1. Als Netmask gibst du 255.255.255.0 ein und als Adresse des Default-Gateway die 192.168.0.1.

Verlasse jetzt die beiden Eingabemasken mit Weiter bzw. Speichern, bis du wieder in YaST das Menü "Administration des Systems" vor dir hast.

Ab dieser Stelle weicht die Vorgehensweise bis Version 6.0 von denen ab Version 6.1 und ab 7.1 ab wegen der Kernelversionen voneinander ab, lies nur den Teil der deiner Distributionsversion entspricht.

Version 6.0

Geh auf "Konfigurationsdatei verändern" und durchsuche die Liste nach den folgenden Variablen und stell sie auf die angegebenen Werte:

Damit weist du Linux an, die Adressen aus deinem lokalen Netz, die ja im Internet nicht erlaubt sind, in die eine IP umzuwandeln, die dein Provider dir beim Verbindungsaufbau zugewiesen hat.

ab Version 6.1

Ab Version 6.1 kümmert sich das Programm Ipchains um alles, was mit Routing und Firewalls zu tun hat. Es gibt eine SuSE-Firewall, leider hat das Script so seine Macken, ich konnte es bei mir nicht zum Laufen bringen.

Deshalb gehen wir manuell vor. Zunächst gehen wir in "Konfigurationsdatei verändern". Die Variable "IP_FORWARD" muss auf "yes" gesetzt werden, damit Linux überhaupt daran denkt, irgendwelche Anfragen weiterzuleiten. Der Befehl, den wir jetzt noch brauchen, lautet:

 modprobe ip_masq_ftp  # fuer aktives FTP
 ipchains -I forward -s 192.168.1.0/24 -d 0/0 -i ippp0 -j MASQ --no-warnings

Erklärung: -s 192.168.1.0/24 besagt, dass Anfragen weitergeleitet werden, die von einem Rechner kommen, dessen IP-Adresse mit 192.168.1 anfängt. -d 0/0 heißt lediglich, dass der Ziel-Rechner jeder Rechner im Internet sein darf. Mit --no-warnings vermeiden wir eine unnötige Warnung beim booten, wer Warnungen mag lässt sie weg. -i ippp0 bedeutet, dass die Anfrage über das Device ippp0 (die ISDN-Karte) nach außen weitergereicht wird. -j MASQ schließlich besagt, dass die Anfragen "maskiert" werden, d.h. es scheint so, als sei der Router der Rechner, der die Anfrage macht. Schließlich sind die IP-Adressen der Rechner im Netz (192.168.1.x) im Internet nicht erlaubt.

Diese Befehle werden am besten in die Datei /etc/init.d/boot.local eingetragen, damit sie bei jedem Neustart gleich aktiviert werden. Also:

cd /etc/init.d
mcedit boot.local

Ans Ende der Datei die oben genannten Zeilen schreiben und den Editor verlassen (F2 zum Speichern und F10 zum Verlassen).

ab Version 7.1

Ab Version 7.1 kümmert sich das Programm Iptables um alles, was mit Routing und Firewalls zu tun hat. Es gibt eine SuSE-Firewall, leider hat das Script so seine Macken, ich konnte es bei mir nicht zum Laufen bringen.

Deshalb gehen wir manuell vor. Zunächst gehen wir in "Konfigurationsdatei verändern". Die Variable "IP_FORWARD" muss auf "yes" gesetzt werden, damit Linux überhaupt daran denkt, irgendwelche Anfragen weiterzuleiten. Der Befehl, den wir jetzt noch brauchen, lautet:

 modprobe ip_tables           # einige module laden
 modprobe iptable_nat
 modprobe ip_conntrack_ftp    # fuer aktives FTP
 modprobe ip_nat_ftp
 iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE

Erklärung: -t nat gibt die Tabelle an in der die Regel eingefügt wird. -A POSTROUTING fügt unsere Regel an die Regeln im POSTROUTING-Ziel. -o ippp0 sagt Welches Netzwerkinterface gemeint ist. -j MASQUERADE gibt an was mit dem betreffenden Paket geschehen soll, in unserem Fall ist das eben Maskieren. Die modprobe-aufrufe laden die benötigten Kernelmodule.

Diese Befehle werden am besten auch in die Datei /etc/init.d/boot.local eingetragen, damit sie bei jedem Neustart gleich aktiviert werden. Also cd /etc/init.d und mcedit boot.local, dann an das Ende der Datei die oben genannte Zeile schreiben und den Editor verlassen (F2 zum Speichern und F10 zum Verlassen).

Was haben wir jetzt eigentlich gemacht?

Wir haben die Netzwerkkarte in Linux eingebunden, Ihr eine passende IP-Adresse vergeben und außerdem festgelegt, dass alle Anfragen, die nicht ins lokale Netz gehen, auf die Adresse 192.168.0.1 zu Routen sind. 192.168.0.1 ist jedoch die IP, die auf den Provider zeigt. Also wird versucht, die Anfrage über die ISDN-Karte (192.168.0.99) abzusetzen, da diese sich im gleichen Subnet befindet. Da auch deren Default Gateway auf 192.168.0.1 zeigt, wird eine Einwahl ausgelöst, an deren Ende die Verbindung mit dem Provider und die Weitergabe der Anfrage an dessen Rechner steht. Der Rest kümmert uns nicht, dafür ist der Provider zuständig. Der Provider wird die Anfrage beantworten und die Daten nehmen den gleichen Weg zurück zum anfragenden Rechner.

Einen Nachteil hat diese Methode noch: Da der Provider die IP-Adressen dynamisch vergibt, kann der Rechner, wenn er eine Anfrage empfängt, noch nicht wissen, welche Adresse er später haben wird. Das erste Paket wird deshalb "seinen Rückweg" nicht mehr finden. Doch auch dafür gibt es eine Lösung. Geh in YaST zu "Administration des Systems" -> "Konfigurationsdatei verändern". In dieser (zugegebenermaßen ziemlich umfangreichen) Liste steht irgendwo der Eintrag "IP_DYNIP". Mit F3 kannst du diesen Wert verändern. Setz ihn auf "yes". Fertig.

Verlass die Maske mit F10 und beende anschliessend YaST, indem du so oft auf Escape drückst, bis du dich wieder auf der Kommandozeile wiederfindest. Wechsel mit init 3 in den Runlevel 2.

Gib zum Testen einfach mal ping 194.25.2.129 ein. Das ist die Adresse des Nameservers von T-Online. Nach einer kurzen Verzögerung (Linux muss sich erst beim Provider einwählen) sollten eifrig Datenpakete ausgetauscht werden. Falls das klappt, ist alles in Ordnung. Klopf dir jetzt zwei Mal auf die Schulter, es ist vollbracht :).

Clientkonfiguration

Client Windows

Client Linux

Das war's! Ab sofort kann jedes Programm über den Router auf das Internet zugreifen. An den Programmen selber ist keine weitere Einstellung mehr nötig, denn die Weiterleitung läuft auf Protokoll- und nicht auf Anwendungsebene ab.

Client OS2

Das war's! Ab sofort kann jedes Programm über den Router auf das Internet zugreifen. An den Programmen selber ist keine weitere Einstellung mehr nötig, denn die Weiterleitung läuft auf Protokoll- und nicht auf Anwendungsebene ab.

Client BeOS

Das war's! Ab sofort kann jedes Programm über den Router auf das Internet zugreifen. An den Programmen selber ist keine weitere Einstellung mehr nötig, denn die Weiterleitung läuft auf Protokoll- und nicht auf Anwendungsebene ab.

Weitere Dienst auf dem Server

Firewall / Paketfilter

Sie verhindert, dass Wildfremde sich in das eigene Netzwerk (genauer: in den eigenen Linux-Rechner, denn nur der ist ja direkt mit dem Internet verbunden, aber von ihm aus erreicht man natürlich auch das Hausnetz) einklinken und dort irgendwelchen Unfug treiben. Bei SuSE Linux 6.0 werden Firewalls durch den Befehl ipfwadm gesteuert. Ab Version 6.1 ist hierfür ipchains zuständig und ab 7.1 iptables. Eine Firewall ist dringend zu empfehlen. Üblicherweise ist sie so eingerichtet, dass von den Rechnern im lokalen Netz Dienste wie WWW, E-Mail, FTP und News genutzt werden können, andererseits aber Verbindungsversuche aus dem Internet zum eigenen Netz abgeblockt werden.

Wie setze ich eine Firewall ein und was ist das eigentlich?
Eine Firewall zu erklären übersteigt meine Lust am schreiben. Deswegen verweise ich auf einige gute Seiten zum Thema.

Proxy-Server

Ebenfalls eine Überlegung wert ist ein Proxy-Server. Er nimmt die Anfragen der Clients entgegen, holt sich die Seite aus dem Internet und schickt sie an den Client zurück. Gleichzeitig wird aber auch eine Kopie der empfangenen Daten auf der Festplatte abgelegt, so dass der nächste Rechner, der dasselbe Dokument anfordert, die Daten gleich von der Festplatte geliefert bekommt. Das geht zum einen schneller, und zum anderen spart man sich dadurch so manchen Verbindungsaufbau.

Hier ist eine Quick'n'dirty Anleitung, wie man einen Proxy einrichtet:

Installiere von den SuSE-Linux CDs das Paket squid2 aus der Serie n. Starte die Netzwerkdienste mit init 1
init 3
neu. Evtl. musst du beim ersten Starten von squid eine Weile warten, bis das Programm seine Verzeichnisstruktur angelegt hat. Konfiguriere dann die Clients für die Benutzung eines HTTP-Proxys. Die Adresse ist die IP des Rechners, auf dem squid läuft. Der Port ist standardmässig 3128.

File-Server Samba

In einem Windowsnetzwerk ist das eine nützliche Funktion um Dateien zentral auf dem Server abzulegen. Das Programmpaket Samba aus der Serie n bietet diesen Dienst für alle Windows und OS2 Rechner.

Hier ist eine Quick'n'dirty Anleitung, wie man Samba einrichtet:

Installiere von den SuSE-Linux CDs das Paket samba aus der Serie n. Gib an der Kommandozeile mcedit /etc/smb.conf ein um die Konfigurationsdatei anzupassen.

Hier eine Minimalkonfiguration:

 [global]
   workgroup = Workgroup
   guest account = nobody
   keep alive = 30
   os level = 2
   security = share
   map to guest = Bad User
   interfaces = 192.168.1.1/255.255.255.0
   wins support = no
 [public]
   comment = Dateien auf Linuxrouter
   path = /opt/samba
   read only = no
   public = yes
   locking = no
 [tmp]
   comment = Temporaerer Speicher
   path = /tmp
   read only = No
   guest ok = Yes

Starte die Netzwerkdienste mit init 1
init 3
neu. Ruf am Clientrechner über die Netzwerkumgebung die Dienste ab.

Tipps und Kniffe

Dokumentation

Hier noch ein paar Links die helfen verschiedene Vorgänge besser zu verstehen.

Ungewollte Einwahlen

Ungewollte Einwahlen zu verhindern ist nicht immer ganz einfach und artet oft in Detektivarbeit aus. Das wichtigste ist wohl herauszufinden warum und wann sich der Rechner einwählt. Ich werde hier ein paar Tipps geben wie man vorgehen könnte um diese Probleme zu lösen.

Leg dir auf dem Linuxrechner eine Datei /etc/ppp/ip-up.local an und trage folgendes ein:

 echo -e "\a" >/dev/tty8
 sleep 1
 echo -e "\a" >/dev/tty8

Damit wird der Linuxrechner sich melden wenn die Einwahl erfolgt :).

Generell sollte man auf allen Rechnern im lokalen Netz die Datei hosts ausfüllen. Einige einwahlen lassen sich damit schon zuverlässig verhindern. Unter Linux findet man diese Datei unter /etc/hosts. Unter Windows existiert die Datei C:\windows\hosts.sam, diese muss ausgefüllt als C:\windows\system\hosts abgespeichert werden. Bitte beachte das Windows-Editoren dazu neigen der Datei das Kürzel .txt anzuhängen, das muss vermieden werden. Hier eine Beispieldatei die auf allen Rechnern im Netz gleich sein sollte:

 # hosts         This file describes a number of hostname-to-address
 #               mappings for the TCP/IP subsystem.  It is mostly
 #               used at boot time, when no name servers are running.
 #               On small systems, this file can be used instead of a
 #               "named" name server.
 # Syntax:
 # IP-Address   Full-Qualified-Hostname  Short-Hostname

 127.0.0.1      localhost
 192.168.1.10   macintosh.home           macintosh
 192.168.1.20   winkiste.home            winkiste
 192.168.1.99   server.home              server

Weitere einwahlen lassen sich durch das abstellen von ICQ, AIM und ähnlichen Messengerdiensten verhindern. Es gibt auch Werbefinanzierte Software wie z.b. Opera oder Downloadmanager die Verursacher sein können.

Kanalbündelung

Konfiguration:
Du hast bereits wie in den vorherigen Kapiteln beschrieben eine laufende ISDN-Verbindung eingerichtet. Diese läuft in diesem Beispiel auf dem Device ippp0, und soll bei Bedarf um einen zusätzlichen Kanal erweitert werden können. Zuersteinmal gehst du wieder mit init 1 in den Runlevel 1. In der Datei /etc/rc.config suchst du nach der Konfiguration für ippp0 (z. B.: NETDEV_1="ippp0", hier kommt es bei NETDEV auf die Erweiterung "_1" an). In der Datei /etc/rc.config.d/i4l_sp_option.rc.config (ab SuSE Linux 6.4: /etc/rc.config.d/i4l.rc.config) änderst du den Wert für I4L_SLAVE_1: I4L_SLAVE_1="ippp1". Nun muss noch in der Datei /etc/ppp/options.ippp0 folgendes erweitert werden:

 # The device(s)
 # for more than one device try:
 # /dev/ippp0 /dev/ippp1 ...
 /dev/ippp0

wird zu:

 # The device(s)
 # for more than one device try:
 # /dev/ippp0 /dev/ippp1 ...
 /dev/ippp0 /dev/ippp1
 +mp

Jetzt gehst du wieder mit init 3 in Runlevel 3. Was haben wir gemacht? Wir haben ein Pseudo-Device angelegt (ippp1), welches nun dem Subsystem isdn4linux bekannt ist. Die notwendigen isdnctrl-Befehle werden durch das Script i4l automatisch angelegt, wenn die Variable I4L_SLAVE wie oben gesetzt wird.

Benutzung
Als erstes muss das neue Slave-Device ebenfalls in den dialmode auto gebracht werden. Das geschieht mit dem Befehl isdnctrl dialmode ippp1 auto auomatisch beim hochfahren der i4l-Scripte . Nun kann der zweite Kanal je nach Wunsch dazu- oder wieder abgeschaltet werden. Um den zweiten Kanal zu aktivieren gibst du den Befehl isdnctrl addlink ippp0 ein. Zum Deaktivieren des zweiten Kanals lautet der Befehl isdnctrl removelink ippp0. Es gibt auch Tools, die den zweiten Kanal bei Last automatisch dazuschalten und auch wieder wegnehmen: http://www.datenwelt.net/oss/ibod/.

Dualboot Windows und Linux

Win9x/Me und NT4/5 sollen auf der Festplatte bleiben.

Konsolentipps

Die Textausgabe an der Konsole ist sehr gross. Es passt nicht alles drauf

Fernadministration

Ich will den Router in die Besenkammer stellen. Aber wie kann ich dran Arbeiten?

Viren

Ich will einen Virenscanner!

Passwörter

Ich will lange Passwörter. Es sind aber nur 8 Zeichen möglich.

Nachwort

Das wars. Wie immer gilt: Kommentare, Wünsche und Anträge an Karsten Kruse tecneeq(at)tecneeq(dot)de.