diff --git a/install_openvpn.sh b/install_openvpn.sh index c2d4865..8f636ce 100755 --- a/install_openvpn.sh +++ b/install_openvpn.sh @@ -210,7 +210,19 @@ else fi echo "" +echo "" +echo -e "\033[32m==========\033[m" +echo "" +echononl "Only create Configuration file (yes/no) [no]: " +read OK +echo "" +if [[ "$(trim ${OK,,})" = "yes" ]] ; then + _only_create_config_file=true +else + _only_create_config_file=false +fi +echo "" echo "" echo -e "\033[32m--\033[m" echo "Common parameters" @@ -292,8 +304,10 @@ echo "" echo "" echo "Insert OpenVPN Base Directory for Service '$OPENVPN_NAME'" echo "" -echo " Note: must be a subdirectory of '/etc/openvpn'" -echo "" +if ! $_only_create_config_file ; then + echo " Note: must be a subdirectory of '/etc/openvpn'" + echo "" +fi OPENVPN_BASE_DIR="" echononl "OpenVPN Base Directory [${DEFAULT_OPENVPN_BASE_DIR}]: " @@ -302,7 +316,7 @@ while [[ "X${OPENVPN_BASE_DIR}" = "X" ]]; do if [[ "X$OPENVPN_BASE_DIR" = "X" ]]; then OPENVPN_BASE_DIR="$DEFAULT_OPENVPN_BASE_DIR" else - if [[ ! "$(dirname ${OPENVPN_BASE_DIR})" = "/etc/openvpn" ]]; then + if [[ ! "$(dirname ${OPENVPN_BASE_DIR})" = "/etc/openvpn" ]] && ! $_only_create_config_file ; then echo -e "\n\t\033[33m\033[1mGiven entry is NOT a subdirectory of '/etc/openvpn'. Retry..\033[m\n" echononl "OpenVPN Base Directory [${DEFAULT_OPENVPN_BASE_DIR}]: " OPENVPN_BASE_DIR="" @@ -431,12 +445,19 @@ fi KEY_CN="" echo "" +echo "" +echo -e " Type \"\033[33mNone\033[m\" if no CN Prefix should be used" +echo "" echononl "KEY_CN [${DEFAULT_KEY_CN}]: " read KEY_CN if [[ "X$KEY_CN" = "X" ]]; then KEY_CN="$DEFAULT_KEY_CN" + DEFAULT_KEY_ALTNAMES="$KEY_CN" else DEFAULT_KEY_ALTNAMES="$KEY_CN" + if [[ "$(trim ${KEY_CN,,})" = 'none' ]] ; then + KEY_CN="" + fi fi KEY_ALTNAMES="" @@ -446,6 +467,9 @@ read KEY_ALTNAMES if [[ "X$KEY_ALTNAMES" = "X" ]]; then KEY_ALTNAMES="$DEFAULT_KEY_ALTNAMES" fi +if [[ "$(trim ${KEY_ALTNAMES,,})" = 'none' ]] ; then + KEY_ALTNAMES="" +fi echo "" echo -e "\033[32m--\033[m" @@ -507,7 +531,7 @@ echononl "Networks to push from server: " while [[ "X$REMOTE_NETWORKS" = "X" ]] ; do read REMOTE_NETWORKS _to_lower_remote_networks="$(trim ${REMOTE_NETWORKS,,})" - if [[ "X$_to_lower_remote_networks" = "none" ]]; then + if [[ "$_to_lower_remote_networks" = "none" ]]; then REMOTE_NETWORKS="" break fi @@ -626,7 +650,11 @@ done echo "" echo "" -echo -e "\033[1;32mSettings for installation of \033[1;37mOpenVPN\033[m" +if $_only_create_config_file ; then + echo -e "\033[1;32mCreate Configuration file for OpenVPN service \033[1;37m$OPENVPN_NAME\033[m " +else + echo -e "\033[1;32mSettings for installation of \033[1;37mOpenVPN\033[m" +fi echo "" echo -e "\tOpenVPN IP-Address/Hostname.........: $OPENVPN_SERVER" echo -e "\tOpenVPN Server.Port.................: $SERVER_PORT" @@ -648,9 +676,17 @@ echo -e "\tKEY_EMAIL...........................: $KEY_EMAIL" echo -e "\tKEY_OU..............................: $KEY_OU" echo "" echo -e "\tKEY_NAME............................: $KEY_NAME" -echo -e "\tKEY_CN..............................: $KEY_CN" +if [[ -n "$KEY_CN" ]] ; then + echo -e "\tKEY_CN (Prefix).....................: $KEY_CN" +else + echo -e "\tKEY_CN (Prefix).....................: \033[33mNone\033[m" +fi echo "" -echo -e "\tKEY_ALTNAMES........................: $KEY_ALTNAMES" +if [[ -n "$KEY_ALTNAMES" ]] ; then + echo -e "\tKEY_ALTNAMES (Prefix)...............: $KEY_ALTNAMES" +else + echo -e "\tKEY_ALTNAMES (Prefix)...............: \033[33mNone\033[m" +fi echo "" echo -e "\tOpenVPN Network.....................: $OPENVPN_NETWORK" echo -e "\tOpenVPN Server IP-Address...........: $OPENVPN_SERVER_IP" @@ -748,9 +784,29 @@ KEY_EMAIL="${EMAIL_PREFIX}\\@${EMAIL_DOMAIN}" KEY_OU="$KEY_OU" KEY_NAME="$KEY_NAME" +EOF +if [[ -n "$KEY_CN" ]] ; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file KEY_CN="$KEY_CN" +EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +KEY_CN="none" +EOF +fi + +if [[ -n "$KEY_ALTNAMES" ]] ; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file KEY_ALTNAMES="$KEY_ALTNAMES" +EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +KEY_ALTNAMES="none" +EOF +fi + +cat << EOF >> $_openvpn_name_conf_file 2> $log_file # --- @@ -761,12 +817,49 @@ OPENVPN_NETWORK="$OPENVPN_NETWORK" SERVER_CIPHER="$SERVER_CIPHER" +EOF + +if [[ ${#REMOTE_NETWORK_ARR[@]} -gt 0 ]] ; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file REMOTE_NETWORKS="${REMOTE_NETWORK_ARR[@]}" +EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +REMOTE_NETWORKS="none" +EOF +fi + +if [[ -n "$DNS_SERVER" ]] ; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file DNS_SERVER="$DNS_SERVER" +EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +DNS_SERVER="none" +EOF +fi + +if [[ -n "$DEFAULT_DOMAIN" ]] ; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file DEFAULT_DOMAIN="$DEFAULT_DOMAIN" +EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +DEFAULT_DOMAIN="none" + +EOF +fi + +if [[ ${#LOCAL_NETWORK_ARR[@]} -gt 0 ]]; then + cat << EOF >> $_openvpn_name_conf_file 2> $log_file LOCAL_NETWORKS="${LOCAL_NETWORK_ARR[@]}" EOF +else + cat << EOF >> $_openvpn_name_conf_file 2> $log_file +LOCAL_NETWORKS="none" +EOF +fi if [[ $? -eq 0 ]] ; then echo_ok else @@ -775,6 +868,12 @@ else fi +if $_only_create_config_file ; then + echo "" + clean_up 0 +fi + + #--------------------------------------- #-----------------------------