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