Annotation of elwix/config/etc/default/racoon/roadwarrior/client/phase1-down.sh, revision 1.1.1.1
1.1 misho 1: #!/bin/sh
2:
3: #
4: # sa-down.sh local configuration for a new SA
5: #
6:
7: PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
8:
9: case `uname -s` in
10: NetBSD)
11: DEFAULT_GW=`netstat -rn | awk '($1 == "default"){print $2}'`
12: ;;
13: Linux)
14: DEFAULT_GW=`netstat -rn | awk '($1 == "0.0.0.0"){print $2}'`
15: ;;
16: esac
17:
18: echo $@
19: echo "LOCAL_ADDR = ${LOCAL_ADDR}"
20: echo "LOCAL_PORT = ${LOCAL_PORT}"
21: echo "REMOTE_ADDR = ${REMOTE_ADDR}"
22: echo "REMOTE_PORT = ${REMOTE_PORT}"
23: echo "DEFAULT_GW = ${DEFAULT_GW}"
24: echo "INTERNAL_ADDR4 = ${INTERNAL_ADDR4}"
25: echo "INTERNAL_DNS4 = ${INTERNAL_DNS4}"
26:
27: echo ${INTERNAL_ADDR4} | grep '[0-9]' > /dev/null || exit 0
28: echo ${DEFAULT_GW} | grep '[0-9]' > /dev/null || exit 0
29:
30: test -f /etc/resolv.conf.bak && cp /etc/resolv.conf.bak /etc/resolv.conf
31:
32: case `uname -s` in
33: NetBSD)
34: if=`netstat -rn|awk '($1 == "default"){print $7}'`
35: ifconfig ${if} delete ${INTERNAL_ADDR4}
36: route delete default
37: route delete ${REMOTE_ADDR}
38: route add default ${DEFAULT_GW} -ifa ${LOCAL_ADDR}
39: ;;
40: Linux)
41: if=`netstat -rn|awk '($1 == "0.0.0.0"){print $8}'`
42: route delete default
43: route delete ${REMOTE_ADDR}
44: ifconfig ${if}:1 del ${INTERNAL_ADDR4}
45: route add default gw ${DEFAULT_GW}
46:
47: #
48: # XXX This is a workaround because Linux seems to ignore
49: # the deleteall commands below. This is bad because it flushes
50: # any SAD instead of flushing what needs to be flushed.
51: # Someone using Linux please fix it
52: #
53: setkey -F
54: ;;
55: esac
56:
57: # Use this for a NAT-T setup
58: LOCAL="${LOCAL_ADDR}[${LOCAL_PORT}]"
59: REMOTE="${REMOTE_ADDR}[${REMOTE_PORT}]"
60:
61: # Use this for a non NAT-T setup
62: #LOCAL="${LOCAL_ADDR}"
63: #REMOTE="${REMOTE_ADDR}"
64:
65: echo "
66: deleteall ${REMOTE_ADDR} ${LOCAL_ADDR} esp;
67: deleteall ${LOCAL_ADDR} ${REMOTE_ADDR} esp;
68: spddelete ${INTERNAL_ADDR4}/32[any] 0.0.0.0/0[any] any
69: -P out ipsec esp/tunnel/${LOCAL}-${REMOTE}/require;
70: spddelete 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
71: -P in ipsec esp/tunnel/${REMOTE}-${LOCAL}/require;
72: " | setkey -c
73:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>