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>