Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #!/bin/bash
  2. #set -u
  3. SERVER=test.com
  4. PORT=51820
  5.  
  6. [[ ! -w $0 ]] && { echo "Must be root"; exit 1;}
  7.  
  8. ident=$1
  9.  
  10. [[ -z $ident ]] && { echo "Must supply a profile name" ;exit 1;}
  11.  
  12. cd /etc/wireguard
  13. if [[ ! -f server_public.key || ! -f server_private.key ]] ; then
  14. echo -en "No server keypair found. Generate one or overwrite? (yes/no): "
  15. read a
  16. if [[ $a != "yes" ]]; then exit; fi
  17. wg genkey > server_private.key
  18. wg pubkey < server_private.key > server_public.key
  19. fi
  20.  
  21. wg genkey > ${ident}_private.key
  22. wg pubkey > ${ident}_public.key < ${ident}_private.key
  23.  
  24. skey=$(tr -d '\n'< server_public.key)
  25. ckey=$(tr -d '\n' < ${ident}_private.key)
  26.  
  27. oldip=$(tail -n1 $0|tr -d '\n')
  28. pre=$(cut -f 1,2,3 -d'.' <<< $oldip|sed 's/#//')
  29. ilast=$(cut -f4 -d'.' <<< $oldip )
  30. (( ilast++ ))
  31. echo "New IP is ${pre}.${ilast}/32"
  32.  
  33. cat > ${ident}.conf << EOF
  34. [Interface]
  35. PrivateKey = $ckey
  36. Address = ${pre}.${ilast}/32
  37. DNS = 1.1.1.1
  38.  
  39. [Peer]
  40. PublicKey = $skey
  41. Endpoint = $SERVER:$PORT
  42. AllowedIPs = 0.0.0.0/0, ::/0
  43. EOF
  44.  
  45. echo "#${pre}.${ilast}" >> $0
  46. qrencode -t ansiutf8 < ${ident}.conf
  47. cd -
  48. # Below are the used IP adresses. Please do not add lines
  49. #10.10.9.1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement