Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Dial-In (ISDN)

Dial-In (Modem) ] [ Dial-In (ISDN) ] CAPI ] Dial-Out/In (CAPI) ] CapiSuite ] Fax (Modem) HylaFAX ] Fax (ISDN) HylaFAX ]


Wie bei der vorangegangenen Seite: 'Dial-In (Modem)', wird im Folgenden anhand eines Beispieles ein 'Dial-In'-Server mit einen ISDN-Adapter vorgestellt. Mittels eines entfernten Rechners, der ebenfalls mit einen ISDN-Adapter ausgestattet ist, kann so eine Remote-Zugang geschaffen werden. Das folgende Bild zeigt schematisch die Datenstrecke:

Auf der rechten Seite befindet sich der 'Dial-In'-Server, ausgestattet z.B. mit einer internen ISDN-Karte, in diesem Bsp. 'ippp2'. Weiterhin verfügt der Server über eine Netzwerkverbindung 'eth0', mit der der Server mit einem nachfolgenden lokalen Netzwerk verbunden ist. Sofern 'forwarding' auf dem Server aktiviert ist, können Clients des 'Dial-In'-Servers auf das nachfolgende Netzwerk zugreifen.
Auf der linken Seite ist der 'Dial-In'-Client dargestellt, der ebenfalls mit einer internen ISDN-Karte ausgestattet ist und sich via ISDN auf den 'Dial-In'-Server einwählen kann. Der 'Dial-In'-Client kann z.B. ein Windows-System sein.
Damit die folgende Konfiguration besser nachvollzogen werden kann, sind die IP-Adressen jedes Interfaces, bezogen auf das folgende Beispiel, mit angegeben.

Dial-In mit ISDN4Linux

Soll ein 'Dial-In'-Server mit ISDN4Linux (i4l) realisiert werden, so bedingt dieses, dass bereits hardware- und softwaretechnisch ein funktionierender ISDN-Adapter vorhanden ist. D.h. die Module 'isdn' und 'hisax' sollten korrekt geladen werden (vgl. hierzu  Kapitel 'Internet-Zugang / ISDN'). Weiterhin müssen die Debian-Pakete 'isdnutils' und 'ipppd' installiert werden. Bei der Installation sollten alle Abhängigkeiten der Pakete automatisch aufgelöst werden; während der Installation sind folgende Fragen zu beantworten:

  • Muss eine Firmware geladen werden? <keine>
    Bei passiven ISDN-Karten ist es nicht notwendig eine Firmware zu laden.
  • What is your ISP's telephone number? <manual>
    Kann auf Default-Wert belassen werden.
  • Entering isdnlog configuration: <Ok>
  • In welchem Land steht dieser Rechner? <DE>
    Für Deutschland ist 'DE' auszuwählen.
  • Wie ist die Ortsvorwahl, wenn verfügbar? <5251>
    Hier ist die Ortsvorwahl, ohne führende Null einzusetzen.
  • What number should vbox answer: <quit>
    Default-Wert kann so belassen werden.

Wie auch beim Zugang zum Internet-Provider, empfiehlt es sich zunächst auf der Kommandozeile 'isdnconfig' aufzurufen, um die notwendigen Skelett-Dateien für die weitere Konfiguration der Netzwerkgeräte zu erzeugen. Hierzu ein Beispiel:

Isdnutils configuration
=======================

1 network devices
2 synchronous ppp daemon
3 modem emulation
4 voice box configuration

Q Quit

Your choice : 1

Zur Konfiguration eines Internet-Zugangs brauchen nur die ersten beiden Punkte des Hauptmenüs durchlaufen werden, dazu ist zunächst im Punkt '1' ein Netzwerk-Device zu erstellen:

Isdnutils configuration network interfaces
======================= ------------------

Searching for existing configuration files...
Found : NONE


Devices should be named :
- rawip interface isdn0 isdn1 ...
- synchronous ppp interface ippp0 ippp1 ...

Name for new interface : ippp2
Installed new config file /etc/isdn/device.ippp2 .
This file is only an example.
You have to edit this file for it to work.
Press [Enter]

Bei der Erstellung des Devices ist zunächst ein Name anzugeben, in diesem Beispiel 'ippp2' für das ISDN-Gerät. Für weitere Devices sollte die Nummer entsprechend verändert werden ('ippp3', 'ippp4', usw.). Durch ein abschließendes 'Enter' gelangt man wieder zurück in das Hauptmenü.

Es kann nun Punkt '2', zur Erstellung des 'synchronous ppp daemon' aufgerufen werden:

Isdnutils configuration synchronous ppp daemon
======================= ----------------------

Searching for existing configuration files...
Found : NONE


Normal setup : one ipppd for all devices: /dev/ippp0 /dev/ippp1 ...
All ippp* network interfaces are handled by a single ipppd
process using a single config file.

Special setup : one ipppd for each device: /dev/ippp0 /dev/ippp1 ...
Each ippp* network interface is handled by its own ipppd
process, using a specific config file for each.
You need to use pppbind on each network interface to select
which /dev/ippp* device will be used.

Usually only a single ippp interface is used (for connecting to an ISP), so
the above isn't really relevant to most users.

Name for new configuration (ippp0 ippp1 ...) : ippp2
Installed new config file /etc/isdn/ipppd.ippp2 .
Installed new config file /etc/ppp/auth-up .
Installed new config file /etc/ppp/auth-down .
These files are only an example.
You have to edit these files for them to work.
Press [Enter]

Hier ist wieder der Name der Konfigurationsdatei einzugeben ('ippp2') und mit 'Enter' zu bestätigen.

Wieder zurück im Hauptmenü, kann dieses mit 'q' verlassen werden. Nach dem Beenden, sollten sich die jetzt erzeugten Skelett-Dateien, in diesem Fall die Dateien: 'ippd.ippp2' und 'device.ippp2', im Verzeichnis '/etc/isdn' befinden. In beiden Dateien ist die Konfiguration weiter fortzusetzen.

In der Datei 'ippd.ippp2' ist zunächst die Kommentarzeilen (gelbe Markierung) zu löschen. Dabei sollten die Zeilen auch wirklich gelöscht werden, ein Auskommentieren reicht nicht aus.

Auszug aus: /etc/isdn/ipppd.ippp2 (ca. Zeile: 6)

# Options file for ipppd.
# ipppd will not read /etc/ppp/options or /etc/ppp/ioptions or any other
# config file. Everything has to be in here.

# REMOVE the next line once configuration is complete #########################
# Warning! not configured yet!
# REMOVE the above line once configuration is complete ########################

...
...

# OPTIONS

debug                   # enable debugging
+mp                     # enable multi line ppp
lcp-restart 1           # Set timeout for LCP
require-pap             # allow only pap authentication (dialin only)
noccp                   # compression negotation on/off
nolzs                   # LZS compression off (not yet supported fully)
useifip                 # (do) use ip addresses from interface
netmask 255.255.255.255 # do set netmask, 255.255.255.255 for pointopoint
proxyarp                # (do not) set an proxy arp entry
mru 1524                # do set maximum size of receive units to X
mtu 1500                # do set max size of transmit units (1500 is OK)
ms-dns 192.168.10.10    # (do not) set dns addr for the peers use (dialin only)
ms-dns 192.168.10.20    # second dns
ms-wins 192.168.10.10   # (do not) wins address for the peers use (dialin only)
ipcp-accept-local       # Accept peer's address for us
ipcp-accept-remote      # Accept peer's address for it

...

Weiterhin sind die relevanten Optionen für den 'Dial-In'-Zugang anzupassen. Der obige Ausschnitt aus der 'ipppd.ippp2' zeigt eine Zusammenfassung der Optionen, dabei wurden nur die gelb markierten Zeilen angepasst, die anderen stammen aus den default-Optionen der Skelett-Datei.

Auch in der Datei 'device.ippp2' ist zunächst die grün markierten Zeilen zu entfernen, weiterhin sind die gelb markierten Zeilen anzupassen:

Auszug aus: /etc/isdn/device.ippp2 (ca. Zeile: 3, 50, 155)

#!/bin/sh

# REMOVE the next line once configuration is complete #########################
echo "Warning! $0 not configured yet! Aborting..."; exit 1
# REMOVE the above line once configuration is complete ########################

...
...

# The (dummy) IP addresses
#
# Use 169.255.255.169 for LOCALIP and 10.0.0.2 for REMOTEIP if you have
# dynamic IP addresses; with static address fill in the real values!

LOCALIP=192.168.10.104  # XXX_
REMOTEIP=192.168.10.103 # XXX_

# Phone numbers (without the leading zero)
#
# REMOTEMSN may be a list of numbers to dial, separated by a space.
# If you do that, DO put quotes around the whole value! Like:
# REMOTEMSN='221345788 221345789'
#
# The REMOTEMSN must be the areacode (without the leading zero) + phonenumber!
#
#      Example: areacode: 0221 phonenumber: 345789
#               => REMOTEMSN='221345789'
#
# EXPLANATION:
# A zero is added below when it is used as the outgoing number;
# when it it used as the incoming number, it must be without a leading zero
# (which is why you must leave that leading zero out below).
# The local number must also be given without the leading zero!
#
# EXCEPTION:
# In countries where there are NO areacodes, this leading zero must NOT be
# added. In that case, change the value of LEADINGZERO below to ''
# LEADINGZERO could conceivably need to be something else in certian
# situations, so it is configurable.

LOCALMSN=123456        # XXX_
REMOTEMSN=              # XXX_
LEADINGZERO=0           # XXX_ use LEADINGZERO='' if you have no areacodes.

...
...

    #   secure name on|off
    # Turns on or off the security feature for interface "name". If set to
    # on, incoming calls will only be accepted if the calling number has
    # been added to the access list with isdnctrl addphone name in.
    isdnctrl secure ${device} off

...

Mit dem Parametern 'LOCALIP' und 'REMOTEIP' werden die IP-Adressen der beiden Endpunkte festgelegt.
Unter 'LOCALMSN' ist die MSN des 'Dial-In'-Servers einzutragen(in diesem Fall die MSN '123456'). 'REMOTEMSN' sollte frei bleiben und 'LEADINGZERO' ist gleich '0' zu setzen.
Weiterhin sollte 'isdnctrl secure ${device}' auf 'off' gesetzt werden, damit werden alle rufenden MSNs akzeptiert werden.

Der 'ipppd' verhält sich bei der Authentifizierung der Benutzer genauso wie der 'pppd'. Damit eine PAP-Authentifizierung stattfinden kann, müssen die Login-Namen und Passwörter in der Datei '/etc/ppp/pap-secrets' eingetragen sein (vgl. Seite: Dial-In (modem)):

Auszug aus: /etc/ppp/pap-secrets (ca. Zeile 22)

...
# INBOUND connections

# Every regular user can use PPP and has to use passwords from /etc/passwd
# *     hostname    ""      *
dialin  *           secret  *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest   hostname    "*"     -
master  hostname    "*"     -
root    hostname    "*"     -
support hostname    "*"     -
stats   hostname    "*"     -
...

In diesem Beispiel wird der 'dialin' mit dem Kennwort: 'secret' bei der PAP-Authentifizierung berücksichtigt. Es ist darauf zu achten, dass die 'Dial-In'-Benutzer, auf dem System als normale Benutzer vorhanden sind.

Anmerkungen

Ein Beispiel, wie 'Windows XP' als Client für den 'Dial-In'-Server zu konfigurieren ist, ist unten unter 'Weitere Infos' zu finden.

Aus Sicherheitstechnischen Aspekte sei noch zu erwähnen, das dass Passwort für den PAP-Authentifizierung in Klarschrift in der Konfigurationsdatei steht und auch in Klarschrift bei der Authentifizierung übertragen wird.
Mehr Sicherheit kann bei der Authentifizierung z.B. mit Rückrufmechanismen erreicht werden, entsprechende Anleitungen lassen sich im Internet nachlesen.

Weitere Infos

Homepage: ISDN4Linux http://www.isdn4linux.de/
ISDN4LINUX - FAQ (deutsche Version) http://www.isdn4linux.de/faq/
Manualseiten zu: hisax man hisax
Manualseiten zu: isdnctrl man isdnctrl
Manualseiten zu: ipppd man ipppd
System-Dokumentation: isdnutils /usr/share/doc/isdnutils
Manualseiten zu: pppd man pppd
System-Dokumentation: ppp /usr/share/doc/ppp
RFC: 1661 - The Point-to-Point Protocol (PPP) http://www.faqs.org/rfcs/rfc1548.html
RFC: 1661 - The Point-to-Point Protocol (PPP) http://www.faqs.org/rfcs/rfc1661.html
Beispiele von Log-Dateien beim Auf-/Aufbau der Verbindung. LOG-Files
Beispiel: Konfiguration 'Dial-In'-Zugang unter 'Windows XP' als Client 'Dial-In'-Zugang unter 'Windows XP' als Client

Home ] Nach oben ] Dial-In (Modem) ] [ Dial-In (ISDN) ] CAPI ] Dial-Out/In (CAPI) ] CapiSuite ] Fax (Modem) HylaFAX ] Fax (ISDN) HylaFAX ]

letzte Änderung: 12. November 2006

 

Copyright © 2004 Norbert Eusterholz