View difference between Paste ID: CxaH6z49 and PuUS6tqS
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
REMOTE_HOST=1.2.3.4
3
REMOTE_COMMAND="ifconfig tun0 10.1.0.1 pointopoint 10.1.0.2 netmask 255.255.255.0; iptables -t nat -F POSTROUTING; iptables -t nat -A POSTROUTING -j MASQUERADE"
4
5
LOGGER=$(which logger)
6
if [ ! -x $LOGGER ]; then
7
        echo "logger not installed"
8
        exit 1
9
fi
10
do_msg() {
11
        echo "${0}: ${1}"
12
        $LOGGER "${0}: ${1}" > /dev/null 2>&1
13
}
14
do_abort() {
15
        do_msg $1
16
        exit 1
17
}
18
case "${1}" in
19
        start)
20
                ssh -vv \
21
                        -o PermitLocalCommand=yes \
22
                        -o LocalCommand="${0} dolocal" \
23
                        -o ServerAliveInterval=60 \
24
                        -w 0:0 root@$REMOTE_HOST \
25
                          '$REMOTE_COMMAND'
26
                ;;
27
        dolocal)
28-
                OLD_DEFAULT_GW=$(ip route| egrep default | egrep -o "([12345678900]{1,3}\.*){4}")
28+
                OLD_DEFAULT_GW=$(ip route| sed -rn 's/default via ([^ ]+).*/\1/p'")
29
                ifconfig tun0 10.1.0.2 pointopoint 10.1.0.1 netmask 255.255.255.0
30
                route add -host $REMOTE_HOST gw ${OLD_DEFAULT_GW} dev wlan0
31
                route add default gw 10.1.0.1 dev tun0
32
                route del default gw ${OLD_DEFAULT_GW} wlan0
33
                /etc/firewall/firewall.sh start
34
                ;;
35
        stop)
36
		# call script to restart inet facing interfaces to reset default routes etc
37
                ;;
38
esac
39
exit 0