Konfiguration eines Dial-In-Servers für Handys
Dieser Artikel beschreibt, wie ein Linux-Rechner mit ISDN-Karte als Dial-In-Server für Handys verwendet werden kann.
Vorwort
Um den Dial-In-Server aufzusetzen, werden die ISDN-Tools und der PPP-Daemon (Point to Point Protocol Daemon) benötigt.
Folgende Schritte sind notwendig:
- Konfiguration von ISDN
- Konfiguration von PPP
- Konfiguration des Handys
- Konfiguration des Clients mit Handy als Modem
Konfiguration von ISDN
Zur Konfiguration von ISDN wird das Tool isdnctrl verwendet. Zunächst muss damit ein neues Interface hinzugefügt und konfiguriert werden. Das folgende Skript konfiguriert das ISDN-Interface ippp0 und fügt ippp0 als Netzwerk-Device hinzu.
INTERFACE=ippp0 # Interface MSN=16 # eigene Nummer LOCAL=192.168.99.1 # eigene IP REMOTE=192.168.99.2 # IP der Gegenstelle isdnctrl addif $INTERFACE isdnctrl ihup $INTERFACE off isdnctrl eaz $INTERFACE $MSN isdnctrl l2_prot $INTERFACE hdlc isdnctrl pppbind $INTERFACE 0 isdnctrl encap $INTERFACE syncppp isdnctrl huptimeout $INTERFACE 300 ifconfig $INTERFACE $LOCAL up ifconfig $INTERFACE dstaddr $REMOTE
Die Konfiguration kann mit isdnctrl list ippp0
und ifconfig ippp0
überprüft werden.
informatix:~ # isdnctrl list ippp0 Current setup of interface 'ippp0': EAZ/MSN: 16 Phone number(s): Outgoing: Incoming: Dial mode: manual Secure: off Callback: off Reject before Callback: on Callback-delay: 5 Dialmax: 1 Hangup-Timeout: 300 Incoming-Hangup: off ChargeHangup: off Charge-Units: 0 Charge-Interval: 0 Layer-2-Protocol: hdlc Layer-3-Protocol: trans Encapsulation: syncppp Slave Interface: None Slave delay: 10 Master Interface: None Pre-Bound to: Nothing PPP-Bound to: 0 informatix:~ # ifconfig ippp0 ippp0 Link encap:Point-to-Point Protocol inet addr:192.168.99.1 P-t-P:192.168.99.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:30 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Konfiguration von PPP
Der PPP-Daemon muss so konfiguriert werden, dass er eine Verbindung von einem entfernten Partner akzeptiert. Dazu müssen die Dateien /etc/ppp/options.ttyI0
und /etc/ppp/pap-secrets
angepasst werden.
Datei /etc/ppp/options.ttyI0:
# pppd soll ein lock file für das serielle device erzeugen lock # Chat-Skript zur Initialisierung des Modems connect '/usr/sbin/chat -v -t 1 "" "AT&F" "OK" "AT&E16&B1024&R9600S19=197S0=1" "OK"' # Verbindung wird nach 300 Sekunden ohne Aktivität beendet idle 300 # Wenn eine Verbindung beendet wurde, wird versucht, eine neue zu öffnen persist # ppp daemon versucht eine Verbindung zu öffnen, wenn das nicht klappt, # wartet ppp daemon auf eine eingehende Verbindung passive # Hardware-Flusskontrolle crtscts # Modem Kontroll-Leitungen verwenden modem # Eigene und entfernte IP 192.168.1.1:192.168.1.2 # Route wird nicht geändert nodefaultroute # Durch diese Funktion erscheint der Anrufer so den anderen Teilnehmern # im lokalen Netz so, als wäre er selbst im lokalen Netz proxyarp # Kompression deaktivieren noccp noipx # Client muss sich mit dem Password Authentication Protocol authentifizieren auth require-pap # Setzt den Namen des Clients auf dialin_server_user remotename dialin_server_user
Die IPs sollten sich von denen der ISDN-Karte unterscheiden, denn ansonsten gibt es zwei gleiche Routen, einmal über ippp0 und einmal über ppp0 und das kann zu Problemen führen, z.B. ist dann der Client nicht erreichbar.
In der Datei /etc/ppp/pap-secrets muss ein Eintrag mit einem Benutzernamen und Paßwort hinzugefügt werden.
Datei /etc/ppp/pap-secrets:
# <name_des_clients> <name_des_servers> <passwort> <ip> "dialin_server_user" * "password" 192.168.1.2
Die IP in dieser Zeile gibt an, welche IP der Client benutzen darf. Soll das System-Passwort des Benutzers verwendet werden, dann muss in /etc/ppp/options.ttyI0 die Option login definiert werden, und als Passwort in /etc/ppp/pap-secrets muss ein leerer String benutzt werden ("dialin_server_user" * "" 192.168.1.2).
Nach der Konfiguration muss noch der PPP-Daemon gestartet werden.
Wichtig: Kein IPPP-Daemon darf für das ISDN-Interface ippp0 aktiv sein. Ist ein IPPP-Daemon auf einem anderen ISDN-Interface aktiv, so darf das andere Interface nicht die gleiche MSN wie ippp0 erhalten. Der PPP-Daemon kann mit folgendem Kommando gestartet werden:
informatix:~ # /usr/sbin/pppd /dev/ttyI0 nodetach -d Perms of /dev/ttyI0 are ok, no 'mesg n' neccesary. Serial connection established. using channel 22 Using interface ppp0 Connect: ppp0 <--> /dev/ttyI0 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth pap> <magic 0x4600cf0> <pcomp> <accomp>] ...
Jetzt ist das ISDN-Interface konfiguriert und der PPP-Daemon läuft. Bei einem Anruf wird das ISDN-Interface den Anruf an den PPP-Daemon weiterleiten, dieser überprüft dann den Benutzernamen und das Passwort und stellt eine Verbindung zum Client her.