161fd7d67Sriastradh#!/bin/sh 261fd7d67Sriastradh 361fd7d67SriastradhRUMPLIBS="-lrumpnet -lrumpnet_net -lrumpnet_netinet \ 461fd7d67Sriastradh -lrumpdev -lrumpvfs -lrumpdev_opencrypto -lrumpkern_z \ 5*25154f5fSriastradh -lrumpkern_crypto -lrumpnet_wg -lrumpnet_netinet6" 661fd7d67SriastradhHIJACKING="env LD_PRELOAD=/usr/lib/librumphijack.so \ 761fd7d67Sriastradh RUMPHIJACK=path=/rump,socket=all:nolocal,sysctl=yes" 861fd7d67Sriastradh 961fd7d67Sriastradhif [ $(whoami) != root ]; then 1061fd7d67Sriastradh echo run as root 1161fd7d67Sriastradh exit 1 1261fd7d67Sriastradhfi 1361fd7d67Sriastradh 1461fd7d67Sriastradhusage() 1561fd7d67Sriastradh{ 1661fd7d67Sriastradh local prog=$(basename $0) 1761fd7d67Sriastradh 1861fd7d67Sriastradh echo "Usage:" 1961fd7d67Sriastradh echo -e "\t$prog <id> create" 2061fd7d67Sriastradh echo -e "\t$prog <id> destroy" 2161fd7d67Sriastradh echo -e "\t$prog <id> ifconfig [args...]" 2261fd7d67Sriastradh echo -e "\t$prog <id> wgconfig [args...]" 2361fd7d67Sriastradh echo 2461fd7d67Sriastradh echo "<id>: must be a numeric number as it's used as an interface ID" 2561fd7d67Sriastradh exit 1 2661fd7d67Sriastradh} 2761fd7d67Sriastradh 2861fd7d67Sriastradhif [ $# -lt 2 ]; then 2961fd7d67Sriastradh usage 3061fd7d67Sriastradhfi 3161fd7d67Sriastradh 3261fd7d67Sriastradhifid=$1 3361fd7d67Sriastradhcmd=$2 3461fd7d67Sriastradhshift;shift 3561fd7d67Sriastradhargs="$*" 3661fd7d67Sriastradh 3761fd7d67Sriastradhtun=tun$ifid 3861fd7d67Sriastradhwg=wg$ifid 3961fd7d67Sriastradh 4061fd7d67Sriastradhsock=/var/run/wg_rump.${ifid}.sock 4161fd7d67Sriastradhexport RUMP_SERVER=unix://$sock 4261fd7d67Sriastradh 4361fd7d67Sriastradhcase $cmd in 4461fd7d67Sriastradhcreate) 4561fd7d67Sriastradh rump_server $RUMPLIBS unix://$sock 4661fd7d67Sriastradh rump.ifconfig $wg create 4761fd7d67Sriastradh rump.ifconfig $wg linkstr $tun 4861fd7d67Sriastradh ;; 4961fd7d67Sriastradhdestroy) 5061fd7d67Sriastradh rump.halt 5161fd7d67Sriastradh ;; 5261fd7d67Sriastradhifconfig) 5361fd7d67Sriastradh rump.ifconfig $args 5461fd7d67Sriastradh ;; 5561fd7d67Sriastradhwgconfig) 5661fd7d67Sriastradh $HIJACKING wgconfig $args 5761fd7d67Sriastradh ;; 5861fd7d67Sriastradhdebug) 5961fd7d67Sriastradh $HIJACKING $args 6061fd7d67Sriastradh ;; 6161fd7d67Sriastradh*) 6261fd7d67Sriastradh usage 6361fd7d67Sriastradhesac 64