wg-userspace.sh revision 1.2
11.1Sriastrad#!/bin/sh 21.1Sriastrad 31.1SriastradRUMPLIBS="-lrumpnet -lrumpnet_net -lrumpnet_netinet \ 41.1Sriastrad -lrumpdev -lrumpvfs -lrumpdev_opencrypto -lrumpkern_z \ 51.2Sriastrad -lrumpkern_crypto -lrumpnet_wg -lrumpnet_netinet6" 61.1SriastradHIJACKING="env LD_PRELOAD=/usr/lib/librumphijack.so \ 71.1Sriastrad RUMPHIJACK=path=/rump,socket=all:nolocal,sysctl=yes" 81.1Sriastrad 91.1Sriastradif [ $(whoami) != root ]; then 101.1Sriastrad echo run as root 111.1Sriastrad exit 1 121.1Sriastradfi 131.1Sriastrad 141.1Sriastradusage() 151.1Sriastrad{ 161.1Sriastrad local prog=$(basename $0) 171.1Sriastrad 181.1Sriastrad echo "Usage:" 191.1Sriastrad echo -e "\t$prog <id> create" 201.1Sriastrad echo -e "\t$prog <id> destroy" 211.1Sriastrad echo -e "\t$prog <id> ifconfig [args...]" 221.1Sriastrad echo -e "\t$prog <id> wgconfig [args...]" 231.1Sriastrad echo 241.1Sriastrad echo "<id>: must be a numeric number as it's used as an interface ID" 251.1Sriastrad exit 1 261.1Sriastrad} 271.1Sriastrad 281.1Sriastradif [ $# -lt 2 ]; then 291.1Sriastrad usage 301.1Sriastradfi 311.1Sriastrad 321.1Sriastradifid=$1 331.1Sriastradcmd=$2 341.1Sriastradshift;shift 351.1Sriastradargs="$*" 361.1Sriastrad 371.1Sriastradtun=tun$ifid 381.1Sriastradwg=wg$ifid 391.1Sriastrad 401.1Sriastradsock=/var/run/wg_rump.${ifid}.sock 411.1Sriastradexport RUMP_SERVER=unix://$sock 421.1Sriastrad 431.1Sriastradcase $cmd in 441.1Sriastradcreate) 451.1Sriastrad rump_server $RUMPLIBS unix://$sock 461.1Sriastrad rump.ifconfig $wg create 471.1Sriastrad rump.ifconfig $wg linkstr $tun 481.1Sriastrad ;; 491.1Sriastraddestroy) 501.1Sriastrad rump.halt 511.1Sriastrad ;; 521.1Sriastradifconfig) 531.1Sriastrad rump.ifconfig $args 541.1Sriastrad ;; 551.1Sriastradwgconfig) 561.1Sriastrad $HIJACKING wgconfig $args 571.1Sriastrad ;; 581.1Sriastraddebug) 591.1Sriastrad $HIJACKING $args 601.1Sriastrad ;; 611.1Sriastrad*) 621.1Sriastrad usage 631.1Sriastradesac 64