abef0593e15c46d1ca48ea80856d97bdd323b8c7
[grml-network.git] / sbin / grml-pptp-inode
1 #!/bin/sh
2 # Filename:      grml-pptp-inode
3 # Purpose:       connect via pptp to inode (www.inode.at)
4 # Authors:       grml-team (grml.org), (c) Andreas Gredler <jimmy@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 ################################################################################
8
9 ################################################################################
10 # Notes:
11 # This script is based on 'knoppix-pptp' (version 0.3.1)
12 # by Wolfgang Scheicher.
13 ################################################################################
14
15 export LANG=C
16
17 if [ $(id -ru) -ne 0 ] ; then
18   echo 1>&2 "Error: please run this script with uid 0 (root)." ; exit 1
19 fi
20
21 if [ -z "$FORCE_OLD" ] ; then
22   dialog --title "Inode XDSL Graz" --msgbox "Please notice that grml-pptp-inode is considered as deprecated. We recommend to use PPPOE for Inode XDSL.
23
24 So please configure your system running pppoeconf
25
26 If you really want to use the old grml-pptp-inode script execute
27
28   FORCE_OLD=1 grml-pptp-inode
29 " 0 0
30 else
31
32 runit(){
33 echo "name ${VPNUSERNAME}" > /etc/ppp/peers/inode
34 cat >> /etc/ppp/peers/inode << "EOF"
35 remotename XDSL
36 defaultroute
37 noipdefault
38 noauth
39 noproxyarp
40 persist
41 logfile /var/log/pptp.log
42
43 EOF
44
45 echo "${VPNUSERNAME} XDSL ${VPNPASSWORD} *" >> /etc/ppp/pap-secrets
46 chmod 0600 /etc/ppp/pap-secrets
47
48 printf "#!/bin/sh\nLANG=C\nVPNSERVER=\"${VPNSERVER}\"\n" > /etc/init.d/pptp
49
50 cat >> /etc/init.d/pptp << "EOF"
51
52 GATEWAY=`ifconfig | awk -v RS="" '/addr:172./{print substr($7,6,11)1}'`
53 PPTP="/usr/sbin/pptp $VPNSERVER call inode"
54
55 case "$1" in
56   start)
57       echo "Starting up XDSL: pptp"
58       /sbin/route del default &>/dev/null
59       /sbin/route add -host $VPNSERVER gw $GATEWAY &>/dev/null
60       start-stop-daemon --start --exec $PPTP
61     ;;
62   stop)
63       echo "Shutting down XDSL: pptp"
64       killall pppd &>/dev/null
65       if [ $? == 0 ]; then
66         /sbin/route del -host $VPNSERVER gw $GATEWAY &>/dev/null
67         /sbin/route add default gw $GATEWAY &>/dev/null
68         echo "."
69       fi
70     ;;
71   reconnect)
72     echo -n "Reconnecting XDSL: pptd"
73     start-stop-daemon --start --exec $PPTP
74     echo "."
75     ;;
76   *)
77       echo "Usage: /etc/init.d/pptp {start|stop|reconnect}"
78       exit 1
79     ;;
80 esac
81
82 exit 0
83 EOF
84
85 chmod +x /etc/init.d/pptp
86 touch /var/log/pptp.log
87 /etc/init.d/pptp start
88 dialog --title "PPTP Log" --no-cancel --tailbox /var/log/pptp.log 0 0
89 }
90
91 [ -n "${VPNSERVER}"   ] || VPNSERVER="10.0.0.138"
92 [ -n "${VPNUSERNAME}" ] || VPNUSERNAME=$(cat /etc/ppp/pap-secrets | grep XDSL | cut -d " " -f1)
93 [ -n "${VPNPASSWORD}" ] || VPNPASSWORD=$(cat /etc/ppp/pap-secrets | grep XDSL | cut -d " " -f3)
94
95 if [ -z "$VPNUSERNAME" ] || [ -z "$VPNPASSWORD" ] ; then
96   COMMAND1=$(dialog --stdout --title "Inode XDSL Graz" --inputbox \
97   "Account name(e.g. xdsl.<id>@home):" 0 0) || exit 0
98   COMMAND2=$(dialog --stdout --title "Inode XDSL Graz" --passwordbox "Account password (hidden typing)" 0 40) || exit 0
99
100   VPNUSERNAME=${COMMAND1%/*}
101   VPNPASSWORD=${COMMAND2#*/}
102   [ ! -z "$VPNUSERNAME" ] || exit 1
103   [ ! -z "$VPNPASSWORD" ] || exit 1
104   runit
105 else
106   dialog --title "Inode XDSL Graz" --msgbox "Found already configured
107   account.\nIf the settings are wrong, delete the entries in
108   /etc/ppp/pap-secrets" 10 45
109   runit
110 fi
111
112 fi # $FORCE_OLD
113
114 ## END OF FILE #################################################################