Inhalt

9. Dial-On-Demand kontrollieren

Während der Konfiguration sollte man unebingt das System überwachen und feststellen, wann und warum eine Verbindung aufgebaut wird. Ansonsten kann es schnell zu unerwünschten Telefonrechnungen kommen.

Man kann sich aber sicher sein, daß niemals grundlos eine Verbindung aufgebaut oder offengehalten wird. Die geschieht immer nur dann, wenn auch tatsächlich Pakete über die Leitung verschickt werden.

Es gilt also inbesondere die beteiligten Serverdienste auf dem Rechner zu überprüfen, ob Sie richtig konfiguriert wurden und ggf. die Ursachen der Verbindung aufzuspüren.

9.1 Verbindungen überwachen

Es gibt eine Vielzahl von ISDN-Statusmonitoren, der wichtigste ist imon; dieses Konsolenprogramm läßt sich in jeder Umgebung einsetzen, reagiert prompt und verschlingt keine Systemressourcen.

Weitere Programme sind: xisdnload (zeigt auch den Durchsatz), isdnmon und isdnmonp. Alle Monitore zeigen die Telefonnummer und die Art der Verbindung (ein- oder ausgehende an).

9.2 Grund der Verbindung feststellen

9.3 Verbindungen auswerten

Das Programm isdnlog läuft im Hintergrund und horcht ständig auf dem D-Kanal mit, alle Aktivitäten werden zum einen in /var/log/messages geloggt, zum anderen in die Log-Datei /var/log/isdn.log protokolliert.

Mit dem Tool isdnrep kann man diese Datei wiederum zu einem späteren Zeitpunkt aufrufen. Es gibt eine Vielzahl von Parametern, hier dir wichtigsten:

Mehr Infos in
/usr/doc/packages/i4l/isdnlog/README
bzw. im Quellpaket.

9.4 Dial-On-Demand an- und ausstellen

Das i4l-Subsystem ist (wenn es denn einmal gestartet wurde) nicht dafür vorgesehen, daß Verbindungen nur manuell gestartet werden. Man könnte das Konzept bei i4l also auch so formulieren: wenn es gestartet ist, besteht ständig eine Verbindung, die aber automatisch gekappt wird, wenn nichts passiert.

Wer es dennoch machen will, der entferne einfach die Default-Route. In diesen Fall wird nur noch dann eine Verbindung aufgegebaut, wenn ein IP-Paket an die direkte Gegenstelle geschickt wird, was i.A. nicht vorkommt, da diese Gegenstelle keine Internetdienste anbietet und daher von keinem Client angesprochen wird.

Als endgültigen Schritt, kann man auch das komplette Interface (ippp0) herunterfahren, dann können grundsätzlich keine Verbindungen aufgebaut werden.

9.5 Tips im S.u.S.E. System

Man kann die Runlevel-Scripts natürlich auch manuell benutzen:

/sbin/init.d/i4l stop
            
fährt alle ISDN-Netzdevices runter,
/sbin/init.d/i4l start
/sbin/init.d/route
            
legt sie wieder an und setzt die Routen.

Wer bei einer syncPPP-Verbindung die Verbindung nur manuell starten möchte, kann eine Eigenschaft des Scriptes /etc/ppp/ip-up ab S.u.S.E. 5.2 ausnutzen (Siehe FixMe). Dieses legt beim Verbindungsaufbau eine Defaultroute auf die neu erkannte PtP-Adresse. Beim Verbindungsabbau wird das Device neu angelegt und die Defaultroute gelöscht. Schließlich wird die Datei /etc/route.conf durchsucht und die Defaultroute wenn definiert neu angelegt. Definiert man dort keine Defaultroute, so hat man nach Verbindungsabbau eben keine.

Gestartet werden kann dann nur mit dem Kommando:

isdnctrl dial ippp0
            
und wer manuell Auflegen will:
isdnctrl hangup ippp0
            

9.6 Wie erlaube ich normalen Benutzern Dial-In-Demand zu aktivieren?

Am besten garnicht, denn das ist Aufgabe des Administrators. Es ist nur diesem vorbehalten, Netzdevices und Routen zu konfigurieren.

Versuche nicht, den notwendigen Programmen suid-Attribute zu geben! Erstens ist die Aufgabe sehr schwer, und zweitens handelt man sich damit ein riesiges Sicherheitsloch ein, denn wenn diese Programme erstmal offen sind, lassen sich auch andere unerwünschte Dinge damit tun.

Einem einzelnen Script suid-Attribute zu geben, ist unter Linux ebenfalls verboten.

Wer es dennoch unbedingt machen will, der benutze ein Paket wie z.B. sudo. Damit lassen sich für einzelne Benutzer bestimmte Kommandos definieren, die diese dann als Benutzer root ausführen dürfen.

Hier ein einfaches Beispiel:

  1. Paket sudo installieren.
  2. Mit visudo die Konfigurationsdatei editieren, z.B. soll der Benutzer kfr das Programm /usr/local/bin/dial ausführen dürfen:
    # User privilege specification
    kfr     ALL=/usr/local/bin/dial
                    
    
    Hinweis: benutze nur das Kommando visudo, um dieKonfigurationsdatei (/etc/sudoers) zu verändern.
  3. Das Script dial könnte z.B. so sein:
    #!/bin/sh
    
    DEVICE=ippp0
    
    if test $UID -ne 0; then
        exec sudo $0 $*
    fi
    
    case "$1" in
    
    stop) 
        echo stop
        isdnctrl hangup $DEVICE
        ;;
    *)
        echo dial
        isdnctrl dial $DEVICE
        ;;
    
    esac
                    
    
    Wird es nicht als User root aufgerufen, startet es sich selbst mit sudo neu. Mit dial wird gewählt, mit dial stop wird aufgelegt.
  4. sudo fragt beim ersten Start und danach von Zeit zu Zeit das Passwort des aufrufenden Benutzers ab.
  5. Um die Passwortabfrage zu verhindern, das Schlüsselwort NOPASSWD mit angeben, z.B.
    kfr     ALL=NOPASSWD:/usr/local/bin/dial
                    
    


Inhalt