Linuxrouter für ISDN, mit Dial-on-Demand und Masquerading
Autor: Karsten Kruse
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).
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.
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:
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 :).
Nachdem das Grundsystem läuft, machen wir uns an die Konfiguration. Melde dich sich als Benutzer root an. Folgende Punkte sind zu erledigen:
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 :).
init 1
in den Runlevel 1.init 3
wieder in den Runlevel 2.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.
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.
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.
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.
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
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.
init 3
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
neu. Ruf am Clientrechner über die Netzwerkumgebung die Dienste ab.
init 3
Hier noch ein paar Links die helfen verschiedene Vorgänge besser zu verstehen.
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.
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/.
Win9x/Me und NT4/5 sollen auf der Festplatte bleiben.
dd if=/dev/fd0 count=1
of=/bootsec.lin
ein.C:\bootsec.lin="Linux
Starten"
.Die Textausgabe an der Konsole ist sehr gross. Es passt nicht alles drauf
Ich will den Router in die Besenkammer stellen. Aber wie kann ich dran Arbeiten?
su
zu root
wird. Für Windows gibt es den ausgezeichneten Clienten Putty.exe.Ich will einen Virenscanner!
Ich will lange Passwörter. Es sind aber nur 8 Zeichen möglich.
Um Passwörter mit einer Länge von mehr als 8 Zeichen zu benutzen, braucht man nur im YaST unter "Administration des Systems - Einstellungen Systemsicherheit - Konfiguration /etc/login.defs" den Wert "Maximale Länge des Passwortes" ändern.
Das wars. Wie immer gilt: Kommentare, Wünsche und Anträge an Karsten Kruse tecneeq(at)tecneeq(dot)de.