diff options
-rwxr-xr-x | etc/init.d/uanytun | 135 | ||||
-rw-r--r-- | etc/uanytun/autostart | 3 | ||||
-rw-r--r-- | etc/uanytun/client1/config | 80 | ||||
-rwxr-xr-x | etc/uanytun/client1/post-up.sh | 5 | ||||
-rw-r--r-- | etc/uanytun/client2/config | 80 | ||||
-rwxr-xr-x | etc/uanytun/client2/post-up.sh | 5 | ||||
-rw-r--r-- | etc/uanytun/client3/config | 80 | ||||
-rwxr-xr-x | etc/uanytun/client3/post-up.sh | 5 |
8 files changed, 393 insertions, 0 deletions
diff --git a/etc/init.d/uanytun b/etc/init.d/uanytun new file mode 100755 index 0000000..f31d62b --- /dev/null +++ b/etc/init.d/uanytun @@ -0,0 +1,135 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: uanytun +# Required-Start: $network $named $syslog +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start anycast tunneling daemon at boot time +# Description: Enables networking over vpn tunnel interfaces +### END INIT INFO +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/uanytun +CHROOTDIR='/var/run/uanytun' +# DAEMONOPTS="--username nobody --groupname nogroup --chroot $CHROOTDIR" +NAME=uanytun +DESC=uanytun +CONFIG_DIR=/etc/uanytun + +test -x $DAEMON || exit 0 + +# Include uanytun defaults if available +if [ -f /etc/default/uanytun ] ; then + . /etc/default/uanytun +fi + +start_vpn () { + STATUS="OK" + if [ -f $CONFIG_DIR/$NAME/config ] ; then + POSTUP='' + test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh" + DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/ --/' | sed 's/passphrase\s*\(.*\)/passphrase "\1"/' | xargs echo` + $DAEMON --write-pid /var/run/uanytun.$NAME.pid $POSTUP \ + $DAEMONOPTS $DAEMONARG || STATUS="FAILED" + else + STATUS="no config found" + fi + echo -n "($STATUS)" +} +stop_vpn () { + kill `cat $PIDFILE` || true + rm $PIDFILE +} + +set -e +case "$1" in + start) + echo -n "Starting $DESC:" + test -d $CHROOTDIR || mkdir -p $CHROOTDIR + if test -z "$2" ; then + if [ -f $CONFIG_DIR/autostart ] ; then + for NAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do + echo -n " $NAME" + start_vpn + done + else + echo " no config found" + exit 1; + fi + else + while shift ; do + [ -z "$1" ] && break + NAME=$1 + echo -n " $NAME" + start_vpn + done + fi + echo "." + ;; + stop) + echo -n "Stoping $DESC:" + if test -z "$2" ; then + for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + echo -n " $NAME" + stop_vpn + done + else + while shift ; do + [ -z "$1" ] && break + if test -e /var/run/uanytun.$1.pid ; then + PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null` + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + echo -n " $NAME" + stop_vpn + else + echo -n " (failure: No such tunnel is running: $1)" + fi + done + fi + echo "." + ;; + reload) + echo -n "Reloading $DESC:" + if test -z "$2" ; then + for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + echo -n " $NAME" + stop_vpn + start_vpn + done + else + while shift ; do + [ -z "$1" ] && break + if test -e /var/run/uanytun.$1.pid ; then + PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null` + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + echo -n " $NAME" + stop_vpn + start_vpn + else + echo -n " (failure: No such tunnel is running: $1)" + fi + done + fi + echo "." + ;; + restart) + SCRIPT=$0 + shift + $SCRIPT stop $* + sleep 1 + $SCRIPT start $* + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/etc/uanytun/autostart b/etc/uanytun/autostart new file mode 100644 index 0000000..08ae9e9 --- /dev/null +++ b/etc/uanytun/autostart @@ -0,0 +1,3 @@ +client1 +#client2 +#client3 diff --git a/etc/uanytun/client1/config b/etc/uanytun/client1/config new file mode 100644 index 0000000..750e195 --- /dev/null +++ b/etc/uanytun/client1/config @@ -0,0 +1,80 @@ +###----------------------------------------### +### Global Parameters ### +###----------------------------------------### + +## don't run in background +#nodaemonize + +## change user and group after init +username nobody +groupname nogroup + +## chroot to /var/run/anytun +#chroot /var/run/uanytun + +## local anycast(data) ip address to bind to +#interface <ip-address> + +## local anycast(data) port to bind to +#port 4444 + +## the sender id to use (has to be unique for multible anycast servers) +#sender-id 1 + +## payload encryption algorithm +# cipher null +# cipher aes-ctr-128 +# cipher aes-ctr-192 +# cipher aes-ctr-256 +cipher aes-ctr + +## message authentication algorithm +# auth-algo null +auth-algo sha1 + + +## Device name +#dev anytun0 + +# device type tun = ip/ipv6, tap = ethernet +type tun + +## Automaticaly configure the interface and set a route +ifconfig 192.168.123.1/24 + + +###----------------------------------------### +### Connection Parameters ### +###----------------------------------------### + +## remote host +remote-host example.com + +## remote port +remote-port 4444 + +##seqence number window size +## 0 turns off replay protection (for manualk keying) +window-size 0 + +## the multiplex id to use +mux 1 + +## key derivation pseudo random function +#kd-prf null +#kd-prf aes-ctr +#kd-prf aes-ctr-128 +#kd-prf aes-ctr-192 +#kd-prf aes-ctr-256 + +## log2 of key derivation rate +#ld-kdr 0 + +## master key to use for encryption +#key 0123456789ABCDEF0123456789ABCDEF + +## master salt to use for encryption +#salt 0123456789ABCD0123456789ABCD + +## derive master key and or salt from passphrase +passphrase hello-world-one diff --git a/etc/uanytun/client1/post-up.sh b/etc/uanytun/client1/post-up.sh new file mode 100755 index 0000000..18c42fb --- /dev/null +++ b/etc/uanytun/client1/post-up.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +ip addr add dev $1 fde5:30c9:1984::1/48 + +exit 0 diff --git a/etc/uanytun/client2/config b/etc/uanytun/client2/config new file mode 100644 index 0000000..60513d6 --- /dev/null +++ b/etc/uanytun/client2/config @@ -0,0 +1,80 @@ +###----------------------------------------### +### Global Parameters ### +###----------------------------------------### + +## don't run in background +#nodaemonize + +## change user and group after init +username nobody +groupname nogroup + +## chroot to /var/run/anytun +#chroot /var/run/uanytun + +## local anycast(data) ip address to bind to +#interface <ip-address> + +## local anycast(data) port to bind to +#port 4444 + +## the sender id to use (has to be unique for multible anycast servers) +#sender-id 1 + +## payload encryption algorithm +# cipher null +# cipher aes-ctr-128 +# cipher aes-ctr-192 +# cipher aes-ctr-256 +cipher aes-ctr + +## message authentication algorithm +# auth-algo null +auth-algo sha1 + + +## Device name +#dev anytun0 + +# device type tun = ip/ipv6, tap = ethernet +type tun + +## Automaticaly configure the interface and set a route +ifconfig 192.168.123.2/24 + + +###----------------------------------------### +### Connection Parameters ### +###----------------------------------------### + +## remote host +remote-host example.com + +## remote port +remote-port 4444 + +##seqence number window size +## 0 turns off replay protection (for manualk keying) +window-size 0 + +## the multiplex id to use +mux 1 + +## key derivation pseudo random function +#kd-prf null +#kd-prf aes-ctr +#kd-prf aes-ctr-128 +#kd-prf aes-ctr-192 +#kd-prf aes-ctr-256 + +## log2 of key derivation rate +#ld-kdr 0 + +## master key to use for encryption +#key 2123456789ABCDEF0123456789ABCDEF + +## master salt to use for encryption +#salt 2123456789ABCD0123456789ABCD + +## derive master key and or salt from passphrase +passphrase hello-world-two diff --git a/etc/uanytun/client2/post-up.sh b/etc/uanytun/client2/post-up.sh new file mode 100755 index 0000000..d04d6df --- /dev/null +++ b/etc/uanytun/client2/post-up.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +ip addr add dev $1 fde5:30c9:1984::2/48 + +exit 0 diff --git a/etc/uanytun/client3/config b/etc/uanytun/client3/config new file mode 100644 index 0000000..3931e3c --- /dev/null +++ b/etc/uanytun/client3/config @@ -0,0 +1,80 @@ +###----------------------------------------### +### Global Parameters ### +###----------------------------------------### + +## don't run in background +#nodaemonize + +## change user and group after init +username nobody +groupname nogroup + +## chroot to /var/run/anytun +#chroot /var/run/uanytun + +## local anycast(data) ip address to bind to +#interface <ip-address> + +## local anycast(data) port to bind to +#port 4444 + +## the sender id to use (has to be unique for multible anycast servers) +#sender-id 1 + +## payload encryption algorithm +# cipher null +# cipher aes-ctr-128 +# cipher aes-ctr-192 +# cipher aes-ctr-256 +cipher aes-ctr + +## message authentication algorithm +# auth-algo null +auth-algo sha1 + + +## Device name +#dev anytun0 + +# device type tun = ip/ipv6, tap = ethernet +type tun + +## Automaticaly configure the interface and set a route +ifconfig 192.168.123.3/24 + + +###----------------------------------------### +### Connection Parameters ### +###----------------------------------------### + +## remote host +remote-host example.com + +## remote port +remote-port 4444 + +##seqence number window size +## 0 turns off replay protection (for manualk keying) +window-size 0 + +## the multiplex id to use +mux 1 + +## key derivation pseudo random function +#kd-prf null +#kd-prf aes-ctr +#kd-prf aes-ctr-128 +#kd-prf aes-ctr-192 +#kd-prf aes-ctr-256 + +## log2 of key derivation rate +#ld-kdr 0 + +## master key to use for encryption +#key 3123456789ABCDEF0123456789ABCDEF + +## master salt to use for encryption +#salt 3123456789ABCD0123456789ABCD + +## derive master key and or salt from passphrase +passphrase hello-world-three diff --git a/etc/uanytun/client3/post-up.sh b/etc/uanytun/client3/post-up.sh new file mode 100755 index 0000000..ac4afd7 --- /dev/null +++ b/etc/uanytun/client3/post-up.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +ip addr add dev $1 fde5:30c9:1984::3/48 + +exit 0 |