# 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

---------------------------------------------

