Marco Burmeister

  private Homepage



Einrichtung eines Dial-out-Servers mit pppd (mit ISDN) unter SuSE Linux 9.0

(Dokument befindet sich stets im Beta-Stadium.)

Seite ist auf Bewährung:
Diese Seite ist schon länger nicht mehr inhaltlich aktualisiert worden.
Der Inhalt scheint mir inzwischen größtenteils nicht mehr benötigt zu werden.

Ein Linux System kann auch als Router für Internet-Zugänge aus dem eigenen Netz dienen. Wenn dies mittels Einwahlverbindung geschieht, die bei jedem Zugriff ggfs. neu aufgebaut wird, so spricht man von Dial-on-Demand. Dieses Dokument beschreibt eine mögliche Konfiguration eines solchen Routers unter SuSE Linux 9.0 unter Verwendung von pppd (ohne diald) unter Nutzung von ISDN.

Die Seite ist in die folgenden Bereich eingeteilt:

Hinweis:
Die Nutzung der hier geschilderten Anleitung geschieht auf eigene Gefahr!




top Erklärung

Schematische Darstellung Der folgende Text erläutert die Installation eines Dial-on-Demand bzw. Dial-out - Servers auf Basis einer ISDN Karte. Als Provider für die Einwahl dient in diesem Beispiel T-Online.

Jede Anfrage von Rechnern aus dem Netz, die nicht in das eigene Netz gehören, wird durch diesen Dial-out-Server nach der Einwahl beim Provider in das Internet geleitet.

Die folgende schematische Darstellung verdeutlicht das Prinzip.

top Technischer Ablauf (stark verkürzte Darstellung)

Eine Anfrage, die den Linux-Dial-Out-Server (Linux-Router) erreicht (vom LAN oder local vom Server), die eine IP-Adresse anfordert, die nicht zum eigenen LAN gehört, wird an das Dummy-Device ippp0 (ISDN-Device) weitergeleitet. Daraufhin wird der PPP-Daemon aktiviert, welcher sich beim Provider einwählt und eine vom Provider eine dynamische IP-Adresse erhät. Nach dem erfolgreichen Verbindungsaufbau wird die Anfrage an das Internet weitergeleitet.

Der Einsatz vom Masquerading ermöglicht es zum Beispiel einem Unternehmen, daß alle Benutzer nach außen mit einer IP-Adresse im Internet Surfen. Der außenstehende kann also nicht wissen, wieviele oder welcher Rechner aus dem Netzwerk die Daten aus dem Internet abfragen. Intern wird durch das Masquerading jedem Rechner das Daten-Paket zugeschickt, daß er auch angefordert hatte.

top Voraussetzungen

Ich gehe davon aus, daß ein lauffähiges SuSE Linux 9.0 inklusive erfolgreich konfigurierter Netzwerkanbindung vorliegt!

Das Masquerading (NAT = network address translation) und die Installation und Konfiguration sind jetzt Bestandteil dieses Dokumentes und am Ende zu finden.

Des weiteren gehe ich davon aus, daß grundlegende Linux-Kenntnisse vorhanden sind.

Programmversionen:



top Einstellungen im Kernel

Die folgenden Einstellungen im Kernel sollten aktiviert und anschließend das Kernel neu übersetzt werden. Bei den Netzwerkkarten ist entsprechend der eingebauten Netzwerkkarte die richtige Einstellung zu treffen.

Bei Nutzung eines Standard-Kernels sind keine Änderungen notwendig, da alle notwendigen Einstellungen vorgenommen worden sind.

top Einstellungen im SuSE Linux 9.0

Nach der Installation der PPP- und der ISDN-Pakete kann die Konfiguration via YaST2 durchgeführt werden.

Die Ergebnisse der Konfiguration können in dem Verzeichnis /etc/ppp nachvollzogen und ggfs. überschrieben werden.

Die folgenden Punkte müssen zur Konfiguration eines Dial-on-Demand mit ISDN abgearbeitet werden (Provider ist T-Online):

  1. Aufruf von YaST2 und Auswahl des Punktes Netzwerkgeräte - ISDN.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  2. Die ISDN Karte wird vom System automatisch erkannt und befindet sich bei fehlender Konfiguration im oberen Bereich dieses Fensters. Da diese Dokumentation nachträglich geschrieben worden ist, ist die ISDN Karte in den unteren Bereich verschoben worden.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  3. In diesem Fenster kann nun die Karte selbst oder ein Provider konfiguriert werden.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  4. Folgende Einstellungen für die Karte durchführen.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  5. Im Anschluß kann die Schnittstelle oder der Provider konfiguriert werden.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  6. Konfiguration der Schnittstelle (1).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  7. Konfiguration der Schnittstelle (2).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  8. Konfiguration der Schnittstelle (3).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  9. Jetzt den Provider konfigurieren (1).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  10. Jetzt den Provider konfigurieren (2).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  11. Jetzt den Provider konfigurieren (3).
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy
  12. Die Einstellungen werden gespeichert.
    Dial-on-Demand - Konfiguration - Bildschirmhardcopy

Darüber hinaus sollte der Nameserver (IP-Adresse: 194.25.2.129 und 217.237.150.225) von T-Online im Linux-System definiert werden. Diese sollten logisch hinter dem eigenen DNS-Server abgefragt werden, um ungewollte Verbindungsaufnahmen ins Internet zu vermeiden. Das sollte am besten mit dem Tool yast geschehen.
Bei "CCM" ist eine Liste weiterer DNS Server zu finden.

top Installation und Konfiguration der Firewall und des Masquerading

Die folgenden Pakete sollten installiert sein:

Im Verzeichnis /etc/sysconfig befindet sich nun eine Konfigurationsdatei namens SuSEfirewall2. Diese Datei ist eigentlich selbsterklärend. Nach der erfolgreichen Konfiguration kann der Rechner neu gestartet werden und die Firewall ist einsatzbereit. Gleichzeitig ist damit das Masquerading ebenfalls eingerichtet.
Beispielkonfigurationen und weitere Anleitungen sind im Verzeichnis /usr/share/doc/packages/SuSEfirewall2 zu finden.

top Protokollieren der Verbindungsaufnahme zum Provider

Protokollieren der Verbindungsaufnahme zum Provider Im Verzeichnis /etc/ppp/ sind in den Verzeichnissen ip-up.d und ip-down.d Scripte, die den Start und den Stop der Verbindung kennzeichnen, abzulegen:

Der Quelltext der o.g. Scripte findet sich in der folgenden Tabelle:

Datei Beschreibung
diallog_begin.sh Das Script enthält den folgenden Inhalt (Verzeichnis /etc/ppp/ownscripts muß von Hand angelegt werden):

#!/bin/sh
#
# Skript loggt die Telefonwahl aus meinem System
# Ziel: Kontrolle, wann rausgewaehlt wurde und wann
#       Telefon wieder aufgelegt wird.
#
# (c) Marco Burmeister
#

/etc/ppp/ownscripts/diallog.sh WAHL

diallog_end.sh Das Script enthält den folgenden Inhalt (Verzeichnis /etc/ppp/ownscripts muß von Hand angelegt werden):

#!/bin/sh
#
# Skript loggt die Telefonwahl aus meinem System
# Ziel: Kontrolle, wann rausgewaehlt wurde und wann
#       Telefon wieder aufgelegt wird.
#
# (c) Marco Burmeister
#

/etc/ppp/ownscripts/diallog.sh AUFL

diallog.sh Das u.a. Skript schreibt in die Datei /var/log/diallogging.log die Informationen, wann der Dial-On-Demand - Mechanismus einen Verbindungsaufbau zum Provider durchgeführt hat. Dafür muß dem Skript für den Benutzer und die Gruppe root bzw. dialout die Ausführungsberechtigung gegeben werden.

Protokolliert wird nur der Zeitpunkt (Uhrzeit und Datum) an dem eine Verbindung zum Provider etabliert wurde und wann diese wieder getrennt wurde.

#!/bin/sh
#
# Skript loggt die Telefonwahl aus meinem System
# Ziel: Kontrolle, wann rausgewaehlt wurde und wann
#       Telefon wieder aufgelegt wird.
#
# (c) Marco Burmeister
#

PARAMETER=$1
FILEDIALLOG=/var/log/diallogging.log

case "$PARAMETER" in

WAHL)
        anzzeil=`cat $FILEDIALLOG | wc -l`
        if (( $anzzeil > 1000 ))
        then
                mv $FILEDIALLOG $FILEDIALLOG.old
        fi
        echo . >> $FILEDIALLOG
        echo "Rechner:" $HOSTNAME "waehlt am:" `date` >> $FILEDIALLOG
        ;;
AUFL)
        echo "Rechner:" $HOSTNAME "legt auf:" `date` >> $FILEDIALLOG
        echo . >> $FILEDIALLOG
        ;;
esac
exit 0

top Dateirechte

Die folgende Liste zeigt, welche Rechte die Dateien haben sollten, damit ein problemloser Betrieb gewährleistet werden kann:


/etc/ppp          (nur die wichtigste Datei - beinhaltet Login-Information)
-rw-------    1 root     root         1381 Jan  3 18:27 pap-secrets

/etc/ppp/ip-up.d
-rwxr-x---    1 root     root          217 Jun 15  2003 diallog_begin.sh
-rwxr-x---    1 root     root          215 Jun 16  2003 zeitserver.sh

/etc/ppp/ip-down.d
-rwxr-x---    1 root     root          217 Jun 15  2003 diallog_end.sh

/etc/ppp/ownscripts
-rwxr-x---    1 root     root          607 Mar 14  2004 diallog.sh

/etc/sysconfig		(nur Firewall-Konfiguration)
-rw-r--r--    1 root     root        26937 Aug  7 15:00 SuSEfirewall2

top Einstellungen beim Client im eigenen Netz (LAN)

Der Linux-Dial-Out-Server muß als Default-Gateway mit seiner IP-Adresse eingetragen sein.

top Zeitserver für das interne Netz

Um den Router auch als Zeitserver (NTP-Server) für das interne Netzwerk zu nutzen, müssen nur die u.a. Zeilen in die Datei zeitserver.sh im Verzeichnis /etc/ppp/ip-up.d eingetragen werden (siehe oben). Außerdem muss der xntp-Daemon installiert sein (Standard-Konfiguration nach Installation ist ausreichend). Auch die Dienste time und daytime sollten für die Zeitserver Funktionalität aktiv sein (kann via YaST erledigt werden). Bei hoffentlich konfigurierter Firewall müssen eventuell noch Ports freigegeben werden!


    # Zeit sychronisieren
    /etc/ppp/ip-up.d/zeitserver

Skript zeitserver.sh

    # Zeit sychronisieren
    sleep 10
    # Zeitserver stoppen
    /etc/init.d/xntpd stop
    # Uhrzeit setzen 
    /usr/sbin/ntpdate -vu ptbtime2.ptb.de
    /sbin/clock -w
    # Zeitserver starten
    /etc/init.d/xntpd start

Skript zeitserver.sh - Variante 2

    # Uhrzeit setzen
    /usr/sbin/ntpdate -bsvu ptbtime2.ptb.de
    /sbin/hwclock --systohc    

Dann wird der Einwahlrouter bei jeder Einwahl die eigene Rechner-Uhrzeit mit der Atomuhr der Physikalisch-Technischen Bundesanstalt abgleichen. Es ist anzuraten einen Zeitserver in der näheren eigenen Umgebung zu suchen, da dann auch die Uhrzeit schneller abgeglichen werden kann.

Update vom 06.10.2007 / 17.10.2007:
In der Zeitschrift c't aus dem Heise Verlag wurde in Ausgabe 20/2007 (erschienen am 17.09.2007) auf Seite 158 im Hotline Artikel "Öffentliche Zeitquellen" sowie in Ausgabe 22/2007 (erschienen am 15.10.2007) auf Seite 202 im Hotline Artikel "Genaue Zeit für alle" , berichtet daß die Physikalisch-Technischen Bundesanstalt zwar noch jedermann den Zugriff auf ihre NTP-Server geben möchte, dieses aber via email Benachrichtigung bei Aufnahme des Betriebs anzuzeigen sei.
Informationen und Verweise zu öffentlichen NTP-Servern sowie Hintergrundinformationen sind im Artikel "Zeit-Abgleich" bei heise Netze zu finden. Frei zugängliche NTP-Server sind auch beim NTP-Projekt selbst unter dem Stichwort Pool-Server erfaßt.


Damit hat zwar der Router die aktuelle Uhrzeit, aber noch nicht der Client. Unter Windows 2000 muß dafür eine Batch-Datei erstellt mit folgendem Inhalt erstellt werden:

    @echo off
    net time [Name Einwahlrouter] /set /yes

Der String [Einwahlrouter] ist durch den Rechnernamen in der Form \\einwahlroutername zu ersetzen. Diese Batch-Datei kann in der Autostart bei jedem Rechnerstart aufgerufen werden und gleicht dann die Uhrzeit des Client mit der des Einwahlrouters ab.

top Links zum Thema Dial-on-Demand

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!