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