Annotation of embedaddon/ipsec-tools/src/racoon/samples/roadwarrior/client/phase1-up.sh, revision 1.1
1.1 ! misho 1: #!/bin/sh
! 2:
! 3: #
! 4: # sa-up.sh local configuration for a new SA
! 5: #
! 6: PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
! 7:
! 8: case `uname -s` in
! 9: NetBSD)
! 10: DEFAULT_GW=`netstat -finet -rn | awk '($1 == "default"){print $2; exit}'`
! 11: ;;
! 12: Linux)
! 13: DEFAULT_GW=`netstat --inet -rn | awk '($1 == "0.0.0.0"){print $2; exit}'`
! 14: ;;
! 15: esac
! 16:
! 17: echo $@
! 18: echo "LOCAL_ADDR = ${LOCAL_ADDR}"
! 19: echo "LOCAL_PORT = ${LOCAL_PORT}"
! 20: echo "REMOTE_ADDR = ${REMOTE_ADDR}"
! 21: echo "REMOTE_PORT = ${REMOTE_PORT}"
! 22: echo "DEFAULT_GW = ${DEFAULT_GW}"
! 23: echo "INTERNAL_ADDR4 = ${INTERNAL_ADDR4}"
! 24: echo "INTERNAL_NETMASK4 = ${INTERNAL_NETMASK4}"
! 25: echo "INTERNAL_DNS4 = ${INTERNAL_DNS4}"
! 26:
! 27: echo ${INTERNAL_ADDR4} | grep '[0-9]' > /dev/null || exit 0
! 28: echo ${INTERNAL_NETMASK4} | grep '[0-9]' > /dev/null || exit 0
! 29: echo ${DEFAULT_GW} | grep '[0-9]' > /dev/null || exit 0
! 30:
! 31: mv /etc/resolv.conf /etc/resolv.conf.bak
! 32: ( umask 22; touch /etc/resolv.conf )
! 33: echo "# Generated by racoon on `date`" >> /etc/resolv.conf
! 34: echo "nameserver ${INTERNAL_DNS4}" >> /etc/resolv.conf
! 35:
! 36: case `uname -s` in
! 37: NetBSD)
! 38: if=`netstat -finet -rn|awk '($1 == "default"){print $7; exit}'`
! 39: ifconfig ${if} alias ${INTERNAL_ADDR4} netmask ${INTERNAL_NETMASK4}
! 40: route delete default
! 41: route add default ${DEFAULT_GW} -ifa ${INTERNAL_ADDR4}
! 42: route add ${REMOTE_ADDR} ${DEFAULT_GW}
! 43: ;;
! 44: Linux)
! 45: if=`netstat --inet -rn|awk '($1 == "0.0.0.0"){print $8; exit}'`
! 46: ifconfig ${if}:1 ${INTERNAL_ADDR4}
! 47: route delete default
! 48: route add ${REMOTE_ADDR} gw ${DEFAULT_GW} dev ${if}
! 49: route add default gw ${DEFAULT_GW} dev ${if}:1
! 50: ;;
! 51: esac
! 52:
! 53: LOCAL="${LOCAL_ADDR}"
! 54: REMOTE="${REMOTE_ADDR}"
! 55: if [ "x${LOCAL_PORT}" != "x500" ]; then
! 56: # NAT-T setup
! 57: LOCAL="${LOCAL}[${LOCAL_PORT}]"
! 58: REMOTE="${REMOTE}[${REMOTE_PORT}]"
! 59: fi
! 60:
! 61:
! 62: echo "
! 63: spdadd ${INTERNAL_ADDR4}/32[any] 0.0.0.0/0[any] any
! 64: -P out ipsec esp/tunnel/${LOCAL}-${REMOTE}/require;
! 65: spdadd 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
! 66: -P in ipsec esp/tunnel/${REMOTE}-${LOCAL}/require;
! 67: " | setkey -c
! 68:
! 69: #
! 70: # XXX This is a workaround for Linux forward policies problem.
! 71: # Someone familiar with forward policies please fix this properly.
! 72: #
! 73: case `uname -s` in
! 74: Linux)
! 75: echo "
! 76: spddelete 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
! 77: -P fwd ipsec esp/tunnel/${REMOTE}-${LOCAL}/require;
! 78: " | setkey -c
! 79: ;;
! 80: esac
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>