diff --git a/build_key-pass.sh b/build_key-pass.sh index 5dd19de..a41ac31 100755 --- a/build_key-pass.sh +++ b/build_key-pass.sh @@ -17,9 +17,17 @@ clean_up() { # Perform program exit housekeeping rm $log_file + blank_line exit $1 } + +blank_line() { + if $terminal ; then + echo "" + fi +} + is_number() { return $(test ! -z "${1##*[!0-9]*}" > /dev/null 2>&1); @@ -86,8 +94,51 @@ echo_skipped() { echo -e "\033[80G[ \033[37mskipped\033[m ]" } +detect_os_1 () { + + if $(which lsb_release > /dev/null 2>&1) ; then + + os_dist="$(lsb_release -i | awk '{print tolower($3)}')" + os_version="$(lsb_release -r | awk '{print tolower($2)}')" + os_codename="$(lsb_release -c | awk '{print tolower($2)}')" + + if [[ "$os_dist" = "debian" ]]; then + if $(echo "$os_version" | grep -q '\.') ; then + os_version=$(echo "$os_version" | cut --delimiter='.' -f1) + fi + fi + + elif [[ -e "/etc/os-release" ]]; then + + . /etc/os-release + + os_dist=$ID + os_version=${os_version_ID} + + fi + + # remove whitespace from os_dist and os_version + os_dist="${os_dist// /}" + os_version="${os_version// /}" + +} + + trap clean_up SIGHUP SIGINT SIGTERM +#--------------------------------------- +#----------------------------- +# Check some prerequisites +#----------------------------- +#--------------------------------------- + +# - Set variable +# - os_dist +# - os_version +# - os_codename +# - +detect_os_1 + clear echo "" @@ -181,7 +232,23 @@ fi EASY_RSA_DIR="${OPENVPN_BASE_DIR}/easy-rsa" -OPENVPN_CCD_DIR="${OPENVPN_BASE_DIR}/ccd/server-${OPENVPN_NAME}" + +if [[ -z "$OPENVPN_KEY_DIR" ]] ; then + if [[ "$os_dist" = "debian" ]] && [[ $os_version -gt 9 ]] ; then + OPENVPN_KEY_DIR="${OPENVPN_BASE_DIR}/pki" + else + OPENVPN_KEY_DIR="${OPENVPN_BASE_DIR}/keys" + fi +fi + +if [[ -z "$OPENVPN_CCD_DIR" ]] ; then + if [[ "$os_dist" = "debian" ]] && [[ $os_version -gt 9 ]] ; then + OPENVPN_CCD_DIR="${OPENVPN_BASE_DIR}/ccd" + else + OPENVPN_CCD_DIR="${OPENVPN_BASE_DIR}/ccd/server-${OPENVPN_NAME}" + fi +fi + EMAIL_PREFIX="$(echo $KEY_EMAIL | cut -d '\' -f1)" EMAIL_DOMAIN="$(echo $KEY_EMAIL | cut -d '@' -f2)" @@ -748,5 +815,4 @@ EOF fi -echo "" clean_up 0 diff --git a/conf/install_openvpn.conf.sample b/conf/install_openvpn.conf.sample index 94b4f32..cae07d7 100644 --- a/conf/install_openvpn.conf.sample +++ b/conf/install_openvpn.conf.sample @@ -29,7 +29,13 @@ ORG_SHORTCUT="" OPENVPN_NAME="" # - OpenVPN Base Directory for Service -OPENVPN_BASE_DIR="/etc/openvpn/server/home" +OPENVPN_BASE_DIR="" + +# - OpenVPN Key Directory for Service +OPENVPN_KEY_DIR="" + +# - OpenVPN Client Cofiguration Directory for Service +OPENVPN_CCD_DIR="" # --- # - Parameters OpenVPN Configuration / KEY Creation diff --git a/install_openvpn.sh b/install_openvpn.sh index b852ecc..909e217 100755 --- a/install_openvpn.sh +++ b/install_openvpn.sh @@ -747,6 +747,7 @@ echo "" echo -e "\tOpenVPN Service Name................: $OPENVPN_NAME" echo -e "\tOpenVPN Base Directory..............: $OPENVPN_BASE_DIR" echo -e "\tOpenVPN 'easy-rsa' Directory........: $EASY_RSA_DIR" +echo -e "\tOpenVPN 'key' Directory.............: $OPENVPN_KEY_DIR" echo -e "\tOpenVPN 'ccd' Directory.............: $OPENVPN_CCD_DIR" echo "" echo -e "\tExpiration time ROOT CA.............: $CA_EXPIRE" @@ -852,6 +853,10 @@ OPENVPN_NAME="$OPENVPN_NAME" OPENVPN_BASE_DIR="$OPENVPN_BASE_DIR" +OPENVPN_KEY_DIR="$OPENVPN_KEY_DIR" + +OPENVPN_CCD_DIR="$OPENVPN_CCD_DIR" + # --- # - Parameters OpenVPN Configuration / KEY Creation # ---