install 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/bash
  2. # Retrieve arguments
  3. server_name=$1
  4. crt_client=$2
  5. crt_client_key=$3
  6. crt_server_ca=$4
  7. ip6_net=$5
  8. ip6_interco=$6
  9. # Check arguments
  10. # TODO
  11. # Install packages
  12. sudo apt-get --assume-yes --force-yes install openvpn
  13. # Install extra packages
  14. sudo apt-get --assume-yes --force-yes install sipcalc
  15. # Compute extra arguments
  16. wired_device=$(ip r | awk '/default via/ { print $NF; }')
  17. ip6_interco=$(sipcalc ${ip6_interco} | grep Compressed | awk '{ print $NF; }')
  18. ip6_expanded_net=$(sipcalc ${ip6_net} | grep Expanded | awk '{ print $NF; }')
  19. ip6_net=$(sipcalc ${ip6_net} | grep Compressed | awk '{ print $NF; }')
  20. ip6_addr=$(echo "$(echo ${ip6_expanded_net} | cut -d: -f1-7):42")
  21. ip6_addr=$(sipcalc ${ip6_addr} | grep Compressed | awk '{ print $NF; }')
  22. # Save arguments for future upgrades
  23. sudo yunohost app setting vpnclient wired_device -v ${wired_device}
  24. sudo yunohost app setting vpnclient ip6_addr -v ${ip6_addr}
  25. sudo yunohost app setting vpnclient ip6_net -v ${ip6_net}
  26. sudo yunohost app setting vpnclient ip6_interco -v ${ip6_interco}
  27. sudo yunohost app setting vpnclient crt_client -v ${crt_client}
  28. sudo yunohost app setting vpnclient crt_client_key -v ${crt_client_key}
  29. sudo yunohost app setting vpnclient crt_server_ca -v ${crt_server_ca}
  30. # Copy confs
  31. sudo install -b -o root -g root -m 0644 ../conf/client.conf.tpl /etc/openvpn/
  32. # Create certificates
  33. mkdir -pm 0700 /etc/openvpn/keys/
  34. sudo cat << EOF > /etc/openvpn/keys/user.crt
  35. ${crt_client}
  36. EOF
  37. sudo cat << EOF > /etc/openvpn/keys/user.key
  38. ${crt_client_key}
  39. EOF
  40. sudo cat << EOF > /etc/openvpn/keys/ca-server.crt
  41. ${crt_server_ca}
  42. EOF
  43. sudo chown root: /etc/openvpn/keys/*
  44. sudo chmod 0600 /etc/openvpn/keys/*
  45. # Fix confs
  46. ## openvpn
  47. sudo sed "s|<TPL:SERVER_NAME>|${server_name}|g" -i /etc/openvpn/client.conf.tpl
  48. # Copy init script
  49. sudo install -b -o root -g root -m 0755 ../conf/ynh-vpnclient /etc/init.d/
  50. # Fix init script
  51. ## ynh-vpnclient
  52. sudo sed "s|<TPL:IP6_ADDR>|${ip6_addr}|g" -i /etc/init.d/ynh-vpnclient
  53. sudo sed "s|<TPL:IP6_INTERCO>|${ip6_interco}|g" -i /etc/init.d/ynh-vpnclient
  54. sudo sed "s|<TPL:WIRED_DEVICE>|${wired_device}|g" -i /etc/init.d/ynh-vpnclient
  55. # Set default inits
  56. # The boot order of these services are important, so they are disabled by default
  57. # and the ynh-vpnclient service handles them.
  58. # All services are registred by yunohost in order to prevent conflicts after the uninstall.
  59. sudo yunohost service add openvpn
  60. sudo yunohost service stop openvpn
  61. sudo yunohost service disable openvpn
  62. # Gooo
  63. sudo yunohost service add ynh-vpnclient
  64. sudo yunohost service enable ynh-vpnclient
  65. sudo yunohost service start ynh-vpnclient
  66. exit 0