Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.51 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ### Set PATH ###
  4. BACKUP=/var/BACKUPS
  5. OVPN=/etc/openvpn/
  6. CA=/etc/openvpn/ca.crt
  7. RSA=/etc/openvpn/easy-rsa
  8. KEYS=/etc/openvpn/easy-rsa/keys
  9. HTML=/var/www/html/keys
  10.  
  11. ### Move to working directory ###
  12. cd $RSA
  13.  
  14. ### Trial/30 day/90 day/365 day ###
  15. #!/bin/bash
  16.  
  17. PS3='What kind of subscriber is being created?: '
  18. options=("7 Day Trial" "30 Day Subscriber" "90 Day Subscriber" "1 Year Subscriber" "Quit")
  19. select opt in "${options[@]}"
  20. do
  21.     case $opt in
  22.         "7 Day Trial")
  23.             echo -e "You have selected 7 day trial.\nUsing vars7.\nPlease enter the trial user's name:"
  24.             source ./vars7
  25.             break
  26.             ;;
  27.         "30 Day Subscriber")
  28.             echo -e "You have selected 30 day subscriber.\nUsing vars30.\nPlease enter the subscriber's name"
  29.             source ./vars30
  30.             break
  31.             ;;
  32.         "90 Day Subscriber")
  33.             echo -e "You have selected 90 day subscriber.\nUsing vars90.\nPlease enter the subscriber's name"
  34.             source ./vars90
  35.             break
  36.             ;;
  37.         "1 Year Subscriber")
  38.             echo -e "You have selected 1 year subscriber.\nUsing vars365.\nPlease enter the subscriber's name"
  39.             source ./vars365
  40.             break
  41.             ;;
  42.         "Quit")
  43.             break
  44.             ;;
  45.         *) echo invalid option;;
  46.     esac
  47. done
  48.  
  49. ### Catch input for user and build/sign keys and certificates ###
  50. read USER
  51. echo "Starting process now..."
  52. ./build-key $USER
  53.  
  54. ### Set new PATHs ###
  55. BASECRT=$(sed -n 68,97p $KEYS/$USER.crt)
  56. BASECA=$(cat $CA)
  57. BASEKEY=$(cat $KEYS/$USER.key)
  58.  
  59. ### create stream-lined option file ###
  60. cat > $OVPN/$USER.ovpn <<EOF
  61. client
  62. ;dev tap
  63. dev tun
  64. ;proto tcp
  65. proto udp
  66. remote bhrandon.com 1194
  67. remote 1.bhrandon.com 1194
  68. remote-random
  69. resolv-retry infinite
  70. nobind
  71. ;user nobody
  72. ;group nogroup
  73. persist-key
  74. persist-tun
  75. ;http-proxy-retry # retry on connection failures
  76. ;http-proxy [proxy server] [proxy port #]
  77. ;mute-replay-warnings
  78. ca ca.crt
  79. cert $USER.crt
  80. key $USER.key
  81. ns-cert-type server
  82. ;tls-auth ta.key 1
  83. ;cipher x
  84. comp-lzo
  85. verb 3
  86. ;mute 20
  87. <ca>
  88. $BASECA
  89. </ca>
  90. <cert>
  91. $BASECRT
  92. </cert>
  93. <key>
  94. $BASEKEY
  95. </key>
  96.  
  97. EOF
  98.  
  99. ### Make Directories needed ###
  100. mkdir $HTML/$USER
  101. mkdir $BACKUP/$USER
  102. mkdir $HTML/$USER/keys
  103.  
  104. ### Store Backups ###
  105. cp $KEYS/$USER.* $BACKUP/$USER
  106. cp $OVPN/$USER.ovpn $BACKUP/$USER
  107. tar -czvf $BACKUP/$USER.tar.gz $BACKUP/$USER
  108.  
  109. ### Move keys and options to public directory ###
  110. cp $KEYS/$USER.* $HTML/$USER/keys
  111. cp $OVPN/$USER.ovpn $HTML/$USER
  112. cp $CA $HTML/$USER/keys
  113. chmod 755 $HTML/$USER/*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement