# starting multi-client PPTP tunnels by Jerry Vonau # Thank to Tom Eastep for the single client version # Perhaps separate files for each tunnel would be better? #!/bin/sh # # /etc/rc.d/init.d/pptp # # chkconfig: 5 60 85 # description: PPTP Link Control # # Each USER must have a matching chap-secret entry # PPPOPT is to set run time options, I use a very # empty /etc/ppp/options file. # # name1 name2 have to be setup in /etc/ppp/ip-up.local # ie: # case $6 in # name1) # echo $1 > /var/run/${6}.ppp # ... # ;; # name2) # echo $1 > /var/run/${6}.ppp # ... # ;; # esac DEBUG= NAME="name1" ADDRESS=xxx.xxx.xxx.xxx USER=DOMAIN\\user PPPOPT="+chapms-v2 mppe-128 mppe-stateless" NAME2="name2" ADDRESS2=xxx.xxx.xxx.xxx USER2=user PPPOPT2="+chap" start_pptp1() { /usr/sbin/pptp $ADDRESS user $USER noauth $DEBUG $PPPOPT ipparam $NAME; then echo "PPTP Connection to $NAME Started" } start_pptp2() { /usr/sbin/pptp $ADDRESS2 user $USER2 noauth $DEBUG $PPPOPT2 ipparam $NAME2; then echo "PPTP Connection to $NAME2 Started" } stop_pptp1() { ppp=`cat /var/run/${NAME}.ppp` kill -HUP `cat /var/run/${ppp}.pid rm -f /var/run/pptp/$ADDRESS rm -f /var/run/${NAME}.ppp echo "Stopping pppd$ADDRESS" stop_pptp2() { ppp=`cat /var/run/${NAME2}.ppp` kill -HUP `cat /var/run/${ppp}.pid rm -f /var/run/pptp/$ADDRESS2 rm -f /var/run/${NAME2}.ppp echo "Stopping pptp $ADDRESS2" case "$1" in start) echo "Starting PPTP Connection to ${NAME}..." start_pptp1 echo "Starting PPTP Connection to ${NAME2}..." start_pptp2 ;; start1) echo "Starting PPTP Connection to ${NAME}..." start_pptp1 ;; start2) echo "Starting PPTP Connection to ${NAME2}..." start_pptp2 ;; stop) echo "Stopping $NAME PPTP Connection..." stop_pptp1 echo "Stopping $NAME2 PPTP Connection..." stop_pptp2 ;; stop1) echo "Stopping $NAME PPTP Connection..." stop_pptp1 ;; stop2) echo "Stopping $NAME2 PPTP Connection..." stop_pptp2 ;; restart1) echo "Restarting $NAME PPTP Connection..." stop_pptp1 sleep 5 start_pptp1 ;; restart2) echo "Restarting $NAME2 PPTP Connection..." stop_pptp2 sleep 5 start_pptp2 ;; status) /sbin/ifconfig ;; *) echo "Usage: $0 {start|start1|start2|stop|stop1|stop2|restart1|restart2|status}" ;; esac ------------------------------------------- # /etc/ppp/ip-up.local # name1 name2 need to match the tunnel name # that was given in the RC file # Setting up routing to remote LANs #!/bin/sh case $6 in name1) /sbin/route add -net 10.0.0.0 netmask 255.255.255.0 $1 /sbin/route add -net 10.2.0.0 netmask 255.255.255.0 $1 echo $1 > /var/run/${6}.ppp ... ;; name2) /sbin/route add -net 10.1.0.0 netmask 255.255.255.0 $1 echo $1 > /var/run/${6}.ppp ... ;; esac ---------------------------------------------