PPTP-VPN Server mit statischen Client-IPs

von Stefan Dambeck

 

Vorraussetzungen:

Dieses Paket dient dazu, um für PPTP Clients eine Einwahlmöglichkeit ins Firmen- oder Heimnetz zu bieten.
In der Standardkonfiguration des OPT_VPND ist es nicht möglich, den VPN-Clients anhand des Logins
eine bestimmte IP zuzuweisen. Die im folgenden aufgezeigt Modifikation ermöglicht dies.
Die Verwendung von statischen Client-IPs ist besonders dann sinnvoll, wenn der Fli4l-Router in Kombination
mit einer bestehenden Firewall-Lösung als VPN-Server eingesetzt wird und den Clients mit Hilfe der IP
bestimmte Zugriffsrechte erteilt werden sollen.

Die zu verwendenden IPs werden in der Datei /etc/ppp/chap-secrets hinterlegt. Da diese Datei erst zur Lauf-
zeit erzeugt wird, sind einige Änderungen erforderlich. Der Trick besteht eigentlich nur darin, dass eine weitere
Variable verwendet wird, die den Logins zugeordnet wird. Die folgende Zeile muss in die Datei

/check/vpnd.txt


angefügt werden:

VPND_USER_%_IP OPT_VPND VPND_USER_N NOTEMPTY

Jetzt kann die

/config/vpnd.txt

angepasst werden. Mein Beispiel verwendet 3 Benutzer mit entsprechenden IPs.
Setzt man die Anzahl der User höher und werden die VPND_USER_x Parameter entsprechend ergänzt, so
lassen sich natürlich auch wesentlich mehr Benutzer anlegen.

VPND_USER_N='3'
VPND_USER_1_USER='stefan'
VPND_USER_1_PASS='nafets'
VPND_USER_1_IP='192.168.0.50'
VPND_USER_2_USER='franz'
VPND_USER_2_PASS='znarf'
VPND_USER_2_IP='192.168.0.60'
VPND_USER_3_USER='sepp'
VPND_USER_3_PASS='ppes'
VPND_USER_3_IP='192.168.0.70'

#Anzahl der User
#username for the PPTP Connection
#password for the PPTP Connection
#IP for User1
#username for the PPTP Connection
#password for the PPTP Connection
#IP for User2
#username for the PPTP Connection
#password for the PPTP Connection
#IP for User3


Nun muss noch die Datei

\opt\etc\rc.d\rc.pptpd

bearbeitet werden. Es muss folgender Bereich

...schnipp...
do
eval vpnuser='$VPND_USER_'$ivpn'_USER'
eval vpnpass='$VPND_USER_'$ivpn'_PASS'
echo '"'"$vpnuser"'" "'"$HOSTNAME"'" "'"$vpnpass"'" *' >> /etc/ppp/chap-secrets
ivpn=`/usr/bin/expr $ivpn + 1`
done

...schnapp...

durch diesen ersetzt werden:

do
eval vpnuser='$VPND_USER_'$ivpn'_USER'
eval vpnpass='$VPND_USER_'$ivpn'_PASS'
eval vpnip='$VPND_USER_'$ivpn'_IP'
echo '"'"$vpnuser"'" "'"$HOSTNAME"'" "'"$vpnpass"'" "'"$vpnip"'"' >> /etc/ppp/chap-secrets
ivpn=`/usr/bin/expr $ivpn + 1`
done


Jetzt die Disk erzeugen und die VPN-Einwahl testen. Mit dem Befehl

cat /etc/ppp/chap-secrets

kann man überprüfen, ob alle User vorhanden sind und ob auch die richtigen IPs eingetragen sind.

Klicken Sie hier, um die Seite auszudrucken.