summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xetc/init.d/uanytun135
-rw-r--r--etc/uanytun/autostart3
-rw-r--r--etc/uanytun/client1/config80
-rwxr-xr-xetc/uanytun/client1/post-up.sh5
-rw-r--r--etc/uanytun/client2/config80
-rwxr-xr-xetc/uanytun/client2/post-up.sh5
-rw-r--r--etc/uanytun/client3/config80
-rwxr-xr-xetc/uanytun/client3/post-up.sh5
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