next up previous
Nächste Seite: Über dieses Dokument ... Aufwärts: pptp-server Vorherige Seite: pptp-server

Installation eines pptp-Servers

Hier wird beschrieben, wie ein Linux-Server (SuSE 6.4) für einen verschlüsselten ppp-Tunnel mit Windows-Clients eingerichtet werden kann. Verwendet wird dabei das pptp-Protokoll.

Der Server (test02) erhält die IP-Adresse 192.168.0.1, die Clients stammen aus dem Bereich 192.168.1.100-199.

Auf dem Linux-Server müssen die Pakete pppssl (Serie sec) und pptpd (Serie n) installiert sein.

Der pptpd-Dämon wird mittels /etc/pptpd.conf konfiguriert:


# Sample PoPToP configuration file
# for PoPToP version 1.0.0

speed 115200
option /etc/ppp/options.ppp0

debug

localip 192.168.0.1
remoteip 192.168.1.100-199

die entsprechenden Zeilen sind in der Datei zu ändern bzw. auszukommentieren.

Die Datei /etc/ppp/options.ppp0 sollte wie folgt aussehen:


lock
debug
auth
+chap
+chapms
+chapms-v2
mppe-40
mppe-128
mppe-stateless
name test02
proxyarp

Die Datei /etc/ppp/chap-secrets sollte folgende Zeilen enthalten:


# INBOUND CONNECTIONS
#client         hostname        <password>      192.168.1.1
pptptest100     test02          pptptest        192.168.1.0/24
pptptest101     test02          pptptest        192.168.1.0/24
pptptest102     test02          pptptest        192.168.1.0/24

Durch Erstellen eines rcpptpd-Scripts unter sbin/init.d und durch Anlegen von links S20rcpptpd/K20rcpptpd auf dieses in den Unterverzeichnissen rc2.d und rc3.d kann das Starten/Herunterfahren des pptpd automatisiert werden.

Ein rc-Script könnte so aussehen:


#! /bin/sh

. /etc/rc.config

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
    start)
        echo -n "Starting PPTP daemon:"
        startproc /usr/sbin/pptpd || return=$rc_failed
        echo -e "$return"
        ;;
    stop)
        echo -n "Shutting down PPTP daemon:"
        killproc -TERM /usr/sbin/pptpd || return=$rc_failed
        echo -e "$return"
        ;;
    restart)
        $0 stop  &&  $0 start  ||  return=$rc_failed
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0



Michael Sievers
2000-03-08