AG-Intra.net Arbeitsgemeinschaft
Intranet

Home
Was ist ein Intranet
Grundlagen
Netzwerke
Linux
Windows
Java
Sicherheit
Datenbanken
Projekte
Links
Impressum
Mitmachen ?
Diskussionsforum
Start:
06.06.2003
Letztes Update:

06.06.2002
Liebe Besucher, ein aktueller Hinweis in eigener Sache:
Es ist beabsichtigt, diese Seiten und die Domain im Januar/Februar 2004 auf einen anderen Server umzuziehen. Es ist leider nicht auszuschließen, daß es während des Umzugs zu technischen Problemen mit diesen Seiten kommen wird. Insbesondere im eMail-Bereich wird es vermutlich Probleme geben. Wenn Sie fragen haben oder mich sonstwie erreichen wollen empfehle ich an rebel@snafu.de zu posten.
Nachdem der Umzug abgeschlossen ist, wird es allerdings auch inhaltliche Änderungen während des ersten Halbjahrs 2004 geben. Keine Angst. Es werden keine Inhalte verlorengehen, aber die Struktur der Seiten wird komplett geändert. Diese Seite hat eben eine andere Entwicklung genommen seit 2000, als das Projekt gestartet wurde ;-) Ich werde mich bemühen, daß bei ihnen vorhandene alte Bookmarks wenigstens zu einem Verweis auf die Neustruktur führen, und die gesuchten Inhalte für sie trotzdem leicht und schnell auffindbar sein werden.
Die eigentlich zu dieser Seite gehörenden Domains ag-intra.com, ag-intra.org und ag-intra.de werden von mir geschlossen bzw. gelöscht und unregistriert.

Anleitung - T-DSL Zugang und Router mit SuSE 8.2 
Copyright 2003 by Frank Gehde
Das Ende einer Ära
Ich habe gerade meinen SuSE 8.0 Router durch einen SuSE 8.2 Router ersetzt. Also gerade eben :) Und aus diesem Grund ist das die letzte T-DSL mit SuSE X Anleitung die Sie bei ag-intra.net finden werden. Bis auf ein ganz, ganz, ganz kleines Miniproblem gab es überhaupt keine Probleme mit einem aktuellen SuSE 8.2 sowohl einen T-DSL Zugang herzustellen, als auch, das ganze Routing-Fähig zu machen. Die Zeiten, in denen die PPPoE Integration mit massenhaft Kinderkrankheiten behaftet waren sind vorbei. Es scheint sich endlich eine stabile Lösung gefunden haben, und die Art und Weise, wie SuSE bei der Konfiguration unterstützt, scheint auch endlich vernünftig zu funktionieren. Wenn ich da noch an die Zeiten von SuSE 6.4 zurückdenke, wo man sich noch fragte ob der PPPoED oder der Roaring Penguin das Rennen machen würde ... vorbei die Zeiten :))))))
Abgesehen von der Zeit der Paketauswahl, und der reinen Installationszeit, hatte ich meinen Router unter SuSE 8.2 nach einer Stunde wieder Online. Funktionierender DSL-Zugang, funktionierendes Routing UND ein funktionierender Nameserver wie zuvor. Damit funktioniert mein Netz wieder (nagut, die virtuellen Apaches auf den diversen dnydns Adressen laufen noch nicht, aber ich bin zuversichtlich :)))
Damit ist jedenfalls die Ära von Anleitungen hier, die bei der Einrichtung von DSL und Routern unter SuSE helfen sollten, definitiv beendet.

SuSE 8.2 DSL-Router
In der Vergangenheit habe ich immer wieder sehr ausführlich die Installation, Netzwerkkartenkonfiguration und verschiedene Probleme betrachten müssen. Das mache ich hier nicht mehr. Ich schimpfe zwar gegen YaST 2, und das tu ich immer noch, aber mit Hilfe von YaST 2 war es ein Kinderspiel den Router ans Rennen zu bekommen.
Das beginnt bei der Installation. Abgesehen vom Roaring Penguin, der immer noch existiert, habe ich bei der Paketauswahl kein PPPoED Paket gesehen. Ich habe lediglich das PPPD Paket angewählt. Ich nehme an, alles erforderliche ist darin enthalten.
Der T-DSL Zugang wird nun direkt während der Installation konfiguriert !!! Und das ganze ohne technische Tricks sondern einfach nur ganz einfach. Damit war der Rechner schon mal locker im Internet. Den einzigen Fehler, den man bei einem Router machen kann, ist die Verwechselung der beiden Netzwerkkarten. Wenn es nicht gleich funktioniert, einfach mal die andere Netzwerkkarte für den Zugang testen. Wer mehr zur Konfiguration des Heimnetzwerkes wissen will, kann ruhig nochmal in meiner SuSE 8.0 Anleitung nachlesen. Was da steht, stimmt immer noch.
Im YaST Kontrollzentrum findet man bei System den Editor für die Sysconfig-Dateien. Nach dem Start wählt man Network/General/und setzt dort einfach alles auf YES (bei IPv6 ist das vielleicht heute noch nicht erforderlich ;-)
Was ich noch in der 8.0er Fassung zur Sicherheit des InetD gesagt habe .. naja .. es war dort auch kaum erforderlich, da ja die Iptables Regeln auch die dort bereitgestellten Dienste nach aussen sperren. Also lassen wir das einfach mal weg.
Im Grunde ließ sich mit YaST alles machen. Und es funktionierte einfach so. Das Routing selbst habe ich dann genauso wie in der 8.0er Fassung mit Iptables gemacht, wie auch das Runtersetzen der MTU. Und das Absperren des Rechners :) Deswegen werde ich das gleich noch einmal hier wiederholen (um genauer zu sein, per Copy-Paste einfügen:)

Auf mein kleines Problem möchte ich noch einmal zurückkommen. Der Router lief nicht gleich. Der Nameserver war schon fertig und der Nameserver lieferte auch schon IP's zu den Namen zurück. Aber weder eMail-Programme noch Browser aus dem internen Netz bekamen Antworten. Dazu muß ich sagen, daß ich den Rechner bis jetzt nicht neu booten musste oder wollte. Folgendes half:

>echo "1" > /proc/sys/net/ipv4/ip_forward

Tja, ein alt bekanntes Kommando aus SuSE 6.4 Tagen. Obwohl im Sysconfig-Editor der Wert ja entsprechend besetzt wurde, scheint dieser im laufenden Betrieb nicht gesetzt zu werden. Ich hab es zwar noch nicht ausprobiert, aber ich nehme fast an, rebooten hätte den Router auch funktionsfähig gemacht :)) Also diese Zeile braucht man auf jeden Fall, wenn man noch nicht rebootet hat oder nicht rebooten will. Sollte jemand feststellen, daß sie auch nach einem Reboot benötigt wird, dann einfach ins untenstehende Script mit reinhauen :)

Bevor ich jetzt also noch mal die Sache mit den erforderlichen Iptables-Anweisungen wiederhole und wie man das Bootfähig macht, verabschied ich mich hiermit. Und bei der Gelegenheit merk ich mal an, daß es vielleicht nicht die letzte T-DSL Seite hier war :) Nur die mit SuSE :)). Vielleicht liest man hier demnächst mal, wie das mit Linux From Scratch geht, oder mit Debian :)
Viel Spaß noch,
- Frankie


1. Masquerading - Router Funktionalität herstellen
Jetzt schlägt die Stunde für das Einschalten der Masquerading Funktionalität, die Modifikation der MTU und einer ersten einfachen Sicherheitsschranke. Dies wird alles mit iptables, der Firewalling Funktionalität des Kernels erledigt.
Zunächst muss das Masquerading eingeschaltet werden. Dies geschieht mit den beiden folgenden Kommandos:

>modprobe iptable_nat
>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Nun funktioniert tatsächlich das Routing bereits und unser Rechner kann unser Netzwerk komplett ins Internet bringen. Leider funktionieren noch nicht alle Dinge. Ich habe zB. Probleme mit dem IRC, mit meinen Webseiten zum Onlinebanking und dem Download von JDK's bei sun.com. Hier gibt es Probleme mit der MTU. SuSE rät dazu entsprechend die Dateien unter '/etc/sysconfig/network/ifcfg-*' zu modifizieren (Version 8.0, Anmerkung des  Autors *g*). Da aber keine derartige Konfigurationsdatei für die Schnittstelle ppp0vorhanden ist, über die ja unsere Verbindung läuft, bringt das keinen Erfolg. Aber wiederum bietet uns iptables hier die Möglichkeit das gewünschte Ziel zu erreichen. Um die MTU (die standardmässig auf 1500 oder 1492) eingestellt ist, auf den für das Routing erforderlichen Wert von 1452 zu bringen (durch Routing Informationen und PPPoE Protokollinformationen entsteht ein entsprechender Overhead an Daten, der so kompensiert werden muß), wird folgendes Kommando verwendet:

>iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Nun funktioniert der Rechner zu hundert Prozent als Router. Die gezeigten Zeilen packen wir im nächsten Abschnitt in ein kleines Script.

2. Sicherheit
Es sind eine Menge Ports auf so einem frisch installierten Rechner offen. Um sie von außen nicht angreifbar zu machen, werden wir zwei kleine Firewallregeln aufstellen, die Verbindungen, die aus dem Internet kommen abblocken. Dies tun wir mit den folgenden Zeilen:

>iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
>iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP

Damit ist ein einfacher Linuxrouter nun erfolgreich eingerichtet. Da diese Anweisungen nach jedem Reboot neu eingegeben werden müssen machen wir uns ein kleines DSL-Script zB. bei mir im Verzeichnis '/root/skripte' namens dslan:

#!/bin/sh
# Das Modul für Network Adresstranslation (NAT) bzw. Masquerading laden und die
# Masquerading Funktionalität einschalten.
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Die MTU entsprechend auf 1452 einstellen (pmtu)
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Einfache Firewallregeln zur Blockade eingehender Verbindungen
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP

Mit diesem Script kann DSL nach jedem Reboot gleich "Router-Fähig" gemacht werden. Mit 

>chmod u+x dslan 

können Sie das Script startfähig machen, wenn Sie es alsroot verfasst haben, und gerade in dem Verzeichnis stehen.

3. Bootfähig machen
Es wäre jetzt natürlich schön, wenn dieses Script nach jedem Reboot automatisch aufgerufen werden würde. Da DSL vom pppd (PPP-Daemon) über den smpppd (SuSE Meta PPP Daemon) gestartet wird, habe ich mir gedacht, daß ich das Script einfach in dem init-Script für den SMPPPD mitaufrufe. So muss ich nicht selbst ein derartiges init-Script schreiben. Das init-Script findet sich unter '/etc/init.d/smpppd'. Mit einem Editor wiejoe kann man es ändern. Man findet dort deutlich sichtbar einenstart) Abschnitt. Dort trägt man den Aufruf ein, so daß der Startabschnitt schließlich so ähnlich aussieht:

 start)
        echo -n "Starting SMPPPD"
        ## Start daemon with startproc(8). If this fails
        ## the echo return value is set appropriate.

        # NOTE: startproc return 0, even if service is
        # already running to match LSB spec.
        startproc $SMPPPD_BIN

        # Remember status and be verbose
        rc_status -v

        # MTU ändern, Masquerading einschalten und einfache Firewallregel aufsetzen:
        /root/skripte/dslan
        ;;

So, die Probe auf Exempel zeigt, daß die komplette Funktionalität nun nach jedem Reboot zur Verfügung steht. Dabei spielt es auch keine Rolle ob man in den Runlevel 3 oder 5 bootet :)

4. Links (für SuSE 8.0)
 

- ADSL4linux Hier wird beschrieben, wie man DSL unter SuSE 8.0 manuell (zB unter Verwendung von ifconfig etc.) aufsetzt. Ausserdem finden sich Installationshinweise und Anleitungen zu allen SuSE Versionen sowie anderen Distributionen.

- SuSE SDB Hier findet sich der Patch, um einen Fehler in der Netzwerkdevice Initialisierung zu korrigieren.

- SuSE SDB 2 
  und SDB 3
Hier finden sich Hinweise und Erklärungen zur MTU und zu ECN Fehlern mit TDSL

- IP Tables Hier finden Sie die Grundlagen zu Masquerading mit IP Tables auf deutsch.

- IP Tables 2 Hier finden Sie Hinweise wie Sie die Firewall weiter ausbauen können (deutsch).

- IP Tables 3 Homepage von IP Tables. Für alle weiteren Fragen zu Firewalls starten Sie hier.

5. Hinweise
Sollte etwas bei Ihnen nicht funktionieren, so finden Sie hier noch einige Informationen zu Randbedingungen die Ihnen vielleicht helfen evtl. auftretende Probleme zu lösen.
- Verwendete Hardware:
Ich habe einen neuen Router. Es handelt sich um ein Shuttle Spacewalker SV 24 Barebonesystem (das ist einfach ein sehr kleiner PC). Für diesen habe ich eine VIA C3 533 Mhz CPU beschafft, die ich demnächst noch passiv kühlen möchte. Im einzigen PCI Slot hängt eine Realtek 8029 Netzwerkkarte. Ansonsten verwende ich nur die Onboardkomponenten und eine 20 GB HD sowie 128 MB SD RAM. Es funktionierte auf Anhieb perfekt, so wie hier beschrieben.(Mit SuSE 8.2 habe ich jetzt eine 120GB Platte, deswegen musste ich ja neu installieren :)
- Fehlersuche:
Sollte irgendetwas nicht gewünscht funktionieren, lohnt sich immer ein Blick in /var/log/messages. Vielleicht können Sie anhand der dort auftauchenden Fehlermeldungen schon feststellen ob vielleicht nur ein Paket fehlt welches installiert werden sollte etc. Im übrigen schadet es auch nicht, während des ganzen Konfigurationsvorganges eine Konsole aufzuhaben in der sie mit tail -f /var/log/messagesdiese Datei die ganze Zeit über im Auge behalten.
- Vorbehalte (8.0):
Ich stehe nicht wirklich auf YaST2 und diese nicht-transparenten Konfigurationswerkzeuge. Aber YaST 1 steht unter SuSE 8.0 nun nicht mehr zur Verfügung, die Konfigurationsdateien haben sich ziemlich verändert und daher war die Verwendung von YaST2 zunächst kaum zu umgehen. Es gibt natürlich den o.g. Weg alles komplett händisch aufzusetzen. Das ist aber zunächst einmal mehr Arbeit, und ausserdem vertraue ich den SuSE Systemen auch nicht ganz, ob selbst gezogene und kompilierte _Systemprogramme_ sofort unproblematisch laufen, oder ob es unerwünschte Seiteneffekte gibt. Die hier gezeigte Lösung funktionierte jedenfalls relativ unproblematisch (bis auf das Problem der vertauschten Schnittstelleninitialisierungen eth0/1und dsl0) und vor allem schnell.


zurück zur Linux Übersicht

Copyright 2002 by Frank Gehde