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.0
Copyright 2002 by Frank
Gehde
Eine Anleitung für TDSL mit SuSE
6.4 sowie Hinweise zu weiteren Versionen finden Sie hier.
Diese Anleitung beschreibt im wesentlichen
wie man mit Bordmitteln von SuSE 8.0, also auch YaST2, den Zugang zu T-DSL
konfiguriert und den Rechner dann als Router für ein Netzwerk konfiguriert.
Wer lieber wissen möchte, wie man den T-DSL Zugang händisch konfiguriert
findet zum Beispiel beiadsl4linux
eine Anleitung.
Die Anleitung gliedert sich in mehrere Schritte:
1. Installation
Diese Anleitung bezieht sich auf ein SuSE 8.0 Professional aus der Box. Weil
ich genug Platz auf der Platte habe, und ich ja nie weiß was ich noch
auf diesem Rechner laufen lassen möchte, habe ich praktisch alle Pakete
installiert. Für den gewünschten Einsatzzweck wären jedenfalls
die Pakete 'ppp', 'iptables' und 'YaST2' erforderlich.
Als Kernel wurde der SuSE 2.4.18-4GB Standardkernel installiert. Sollten
Sie einen eigenen Kernel kompilieren, so denken Sie bitte daran Unterstützung
für die von Ihnen verwendeten Netzwerkkarten einzukompilieren, sowie
die entsprechende Unterstützung für ip, ppp und iptables.
2. Netzwerkkarten
Wer es nicht bei der Installation bereits erledigt hat (ähnlich wie
hier beschrieben), der sollte jetzt die Netzwerkkarten konfigurieren. Ich
habe zwei Netzwerkkarten und habe mich entschieden, daß eth0für
das interne Netzwerk zuständig ist und die DSL Anbindung über
eth1 stattfinden soll. Zu Konfiguration wird das YaST2
ControlCenter aufgerufen und dort unter 'Netzwerk/Basis' das Modul
'Konfiguration der Netzwerkkarte' gestartet. Im oberen Fenster erscheinen
dort erkannte aber nicht konfigurierte Karten. Davon klickt man eine
an und klickt dann auf den Button konfigurieren. Beiden Netzwerkkarten weist
man statische IP-Adressen aus dem privaten Bereich zu.
Ich habe hier zum Beispiel die 192.168.111.200 für
eth0(also internes Netzwerk) vergeben und 192.168.0.99
für eth1(also die DSL-Karte). Wer sich mit IP-Adressen auskennt
wird feststellen, daß beide Adressen aus verschiedenen Subnetzen stammen.
Das ist auch richtig so und bleibt so.
Die IP-Adresse für eth1 wird sowieso nur provisorisch
eingetragen, damit die Netzwerkkarte beim Boot korrekt initialisiert werden
kann. Bei der Verbindungsaufnahme über DSL wird ihr dann sowieso die
IP-Adresse von T-Online dynamisch zugewiesen. Es reicht bei einer der Netzwerkkarten
einen Rechnernamen und die Nameserver einzutragen. Wenn alles geklappt hat
können die Netzwerkkarten nun genutzt werden. Ein pingauf einen
anderen lokalen Rechner sollte zeigen, ob eth0 korrekt funktioniert,
zB:
>ping 192.168.111.10
Antwortet der angepingte Rechner, und gab es keine Paketverluste
(0% loss) dann funktioniert eth0 für das interne Netzwerk.
3. DSL-Konfiguration mit YaST2
Die DSL Konfiguration mit YaST2 funktioniert fast gut. Sie findet sich ebenfalls
im Bereich 'Netzwerk/Basis' vom YaST2 Control Center. Dort sind zunächst
vor allem die Zugangsdaten anzugeben. Anschlusskennung und T-Online-ID sind
in der Regel 12-stellig. Die Anschlusskennung beginnt immer mit drei Nullen.
Hat die T-Online Nummer weniger als 12 Stellen so muss dies eigentlich durch
ein abschließendes Doppelkreuz ('#') signalisiert werden. Zum Glück
ist YaST2 hier so intelligent, daß es das selbst erledigt. Der Benutzerzusatz
(benutzername im Dialog) für den Hauptnutzer ist eigentlich immer 0001.
Das Passwort müssen Sie schon selbst wissen. Diese Daten werden im übrigen
im Klartext in der Datei'/etc/sysconfig/network/providers/dsl-provider0'
abgelegt. Der Nutzername hat dort dann die erforderliche Form von
[ANSCHLUSSKENNUNG][ANSCHLUSS-NR]#0001@t-online.de
Das Verzeichnis kann nur von root betreten
werden.
Als Netzwerkkarte, die direkt an das T-DSL Modem angeschlossen ist habe ich
bei mir natürlich eth1 angegeben. Die idle-Time habe ich auf
900 Sekunden hochgesetzt, was etwa 15 Minuten entspricht. Dial-On-Demand
habe ich aktiviert, weil ich eine Flatrate habe und jederzeit von jedem Client
ohne weiteres Gefummel ins Internet will. Das fühlt sich im praktischen
Betrieb an, als wäre das Internet immer da, auch wenn im Hintergrund
die Verbindung bei Inaktivität mal ruhen mag.
Achtung: Wenn Sie keine Flatrate haben, seien Sie vorsichtig
mit Dial-On-Demand. Befinden sich Windows Rechner in Ihrem internen
Netzwerk, dann produzieren diese unaufgefordert oft Nameserver Anfragen etc.
welche die Verbindung aufrecht erhalten können. Und bei fehlender Flatrate
kann das am Ende des Monats teuer werden.
Die Firewall habe ich nicht aktiviert, weil ich das gerne selbst machen möchte.
Dieses Häkchen würde laut SuSE Hilfstext bewirken, daß von
außen keine Verbindungen zu dem Router bzw. dem internen Netz möglich
wären. Dies erledigen wir aber wie weiter unten gezeigt selbst mit iptables.
(Das mit den Nameservern kann problematisch sein. Grundsätzlich
verwendet T-Online ein Einwahlverfahren, bei dem dem Client (bzw. Router)
bei der Einwahl/Anmeldung ein Nameserver automatisch zugewiesen wird. Das
ist für Klick-Klack Clients auch ganz toll, weil sie sich dann nicht
um die Einstellungen kümmern müssen. Aber es ist eben auch weniger
transparent. Wer, wie ich, einen Nameserver fest eintragen will, brauch die
entsprechende IP-Adresse. Und die ist bei T-Online gar nicht so leicht in
Erfahrung zu bringen. Ab und an stehen einige bei den Installationstipps von
T-Online im Servicebereich des Webangebotes. Zeitweise aber auch nicht. Ggf.
kann man es ja mal mit der Hotline versuchen. Oder ein bekannter mit funktionierendem
DSL-Zugang in der Nähe kann über Netstat mal die IP eines gültigen
Nameservers abfragen).
Die vorgeschlagenen Nameserver 217.5.115.7 und 194.25.2.129 funktionieren
zur Zeit bei mir, aber ich habe auch schon von Nutzern gehört bei denen
sie nicht funktionieren.
Nun kann man die Konfiguration beenden. Theoretisch müsste DSL nun funktionieren.
Funktionierte bei mir aber nach dem folgenden Reboot nicht. Und zwar sollte
DSL von den init Scripten beim Booten vor den Ethernet-Karten initialisiert
werden was doof war. Ich habe den Ort dieser Aufrufe momentan leider
nicht gefunden um diese manuell umzustellen. SuSE hat das Problem aber erkannt
und bietet in der Support-Datenbank
ein rpm Paket an, welches die Reihenfolge entsprechend umstellt. Dies können
Sie hier
herunterladen. Kopieren Sie das rpm auf den entsprechenden Rechner (ja, vermutlich
brauchen Sie eine Floppy, da Sie ja noch keinen funktionierenden Netzwerkzugang
haben) und geben Sie als root folgenden Befehl ein:
>rpm -Fhv sysconfig.rpm
Nun rebooten Sie den Rechner und DSL sollte danach funktionieren
(bei mir taucht tatsächlich beim Booten immer noch die Fehlermeldung
'modprobe: Can't locate module dsl0' auf. Dies scheint sich jedoch
im laufenden Betrieb nicht auszuwirken. Die eigentliche Schnittstelle heisst
nachher auch ppp0 und nicht dsl0. Wer dazu Hinweise hat,
kann mir diese mailen). Versuchen
Sie nun Verbindungen ins Internet aufzubauen. Dies sollte klappen.
4. Online-Update
Da nun der Zugriff auf das Internet möglich ist, bietet es sich an über
YaST2 ein Online-Update durchzuführen. Dabei werden unter anderem wichtige
bekannte Sicherheitslöcher geschlossen, die in einer SuSE 8.0 Standard
Installation noch vorhanden sind. Das Online-Update können Sie auch
über das YaST2 Control Center durchführen. Sie finden es unter
'Software->Online-Update'.
5. Sicherheit Schritt 1
Normalerweise würde ich nun an dieser Stelle zwei Dateien bearbeiten,
um die nach einer Standardinstallation aktiven Serverdienste zu deaktivieren,
da diese immer auch ein Sicherheitsrisiko sind. Dies wären die Dateien
/etc/inetd.conf und /etc/rc.config. Da ab SuSE
8.0 dierc.config so nicht mehr als zentrale Konfigurationsdatei
existiert, muß ich auf diese zunächst verzichten, da ich noch
nicht alle neuen Orte für die entsprechenden Einstellungen gefunden
habe. Das löse ich aber nachher anders.
Also geht es erstmal frisch an die Datei /etc/inetd.conf, die Sie
zum Beispiel mit dem Editor Joe ändern können:
>joe /etc/inetd.config
Hier sollten Sie alle Zeilen mit Diensten auskommentieren,
die Sie nicht brauchen (einfach ein '#' am Anfang der Zeile einfügen).
Das werden zunächst im Zweifel alle sein. Später kann man sie ja
wieder anschalten wenn man Sie braucht. Mit dem Befehl
>ps -aux | grep inetd
können Sie die Prozess-ID des inetd in Erfahrung
bringen. Mit dem Befehl
>kill -HUP [Prozess-ID]
veranlassen Sie das der inetd die Konfigurationsdatei
neu einliest (sollte der Prozess inetd gar nicht laufen, können
Sie diesen über Yast2 Control Center 'System->Runlevel-Editor'
starten und für die Runlevel 3 und 5 aktivieren). Jetzt sind nur noch
wenige sicherheitskritische Dienste aktiviert und die entsprechenden Ports
offen. Dies können Sie mit dem Kommando
>nmap localhost
ausprobieren.
6. Masquerading - Router Funktionalität herstellen
Zunächst gilt es zwei Kernelparameter einzustellen. Den ersten kann
man auch für den reinen Zugang schon gebrauchen. Es handelt sich um
den DYN_IP_PATCH. Um diesen bei jedem Boot zu aktivieren
verwendet man wieder das YaST2 Control Center. Unter System startet
man dort das Modul Sysconfig-Editor. Unter 'Network->Base->IP'
kann man dann den DYN_IP_PATCH auf Yes setzen. Damit umgeht
man Probleme bei der ersten Einwahl mit der Namensauflösung, die durch
die dynamische IP-Vergabe von T-Online zustande kommen. In dem gleichen Dialog
kann man auch gleich das IP_FORWARDING einschalten; eine Grundvoraussetzung
für den Betrieb als Router. Diese Einstellungen werden übrigens
unter '/etc/sysconfig/sysctl' abgelegt. Dort sollte auch ECN
diasabled sein, weil es auch hier Probleme mit T-DSL geben kann.
Bisher haben wir Konfigurationsdateien verändert etc.
Alle bisherigen Einstellungen sind fest und werden bei jedem Systemneustart
automatisch ausgeführt. DSL für unseren Rechner sollte jetzt schon
prima funktionieren. 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. 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.
7. Sicherheit Schritt 2
Wie unter 5. bereits gesagt, sind noch einige Ports auf dem Rechner offen.
Wir lassen diese zunächst auch offen. Um sie jedoch 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.
8. 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 :)
9.
Links
|
- 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. |
10. 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.
- 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:
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 |