From 4dce304baaecc83ba3542b5528a7ba50076b6c4a Mon Sep 17 00:00:00 2001 From: Swamy Goundar Date: Sat, 28 Mar 2020 01:56:44 -0700 Subject: [PATCH 1/5] Added List function to Show Issued Certificates --- openvpn-install.sh | 52 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/openvpn-install.sh b/openvpn-install.sh index 078d200..75b303e 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -1238,6 +1238,43 @@ function removeOpenVPN () { fi } +function listcerts () { + +# Original Script from PiVPN: list clients script +# Modified Script to add Certificate expiration Date -- psgoundar + + +INDEX="/etc/openvpn/easy-rsa/pki/index.txt" +printf "\n" +if [ ! -f "${INDEX}" ]; then + echo "The file: $INDEX was not found!" + exit 1 +fi + +#printf ": NOTE : The first entry should always be your valid server!\n" +#printf "\n" +printf "\e[1m::: Certificate Status List :::\e[0m\n" +printf "\e[4mStatus\e[0m :: \e[4mName\e[0m\e[0m :: \e[4mExpiration \e[0m\n" + +while read -r line || [ -n "$line" ]; do + STATUS=$(echo "$line" | awk '{print $1}') + NAME=$(echo "$line" | sed -e 's:.*/CN=::') + EXPD=$(echo "$line" | awk '{if (length($2) == 15) print $2; else print "20"$2}' | cut -b 1-8 | date +"%b %d %Y" -f -) + + if [ "${STATUS}" == "V" ]; then + printf " Valid :: $NAME :: $EXPD \n" + + elif [ "${STATUS}" == "R" ]; then + printf " Revoked :: $NAME :: $EXPD \n" + else + printf " Unknown :: $NAME :: $EXPD \n" + + fi +done <${INDEX} | column -t +printf "\n" + +} + function manageMenu () { clear echo "Welcome to OpenVPN-install!" @@ -1248,10 +1285,11 @@ function manageMenu () { echo "What do you want to do?" echo " 1) Add a new user" echo " 2) Revoke existing user" - echo " 3) Remove OpenVPN" - echo " 4) Exit" - until [[ "$MENU_OPTION" =~ ^[1-4]$ ]]; do - read -rp "Select an option [1-4]: " MENU_OPTION + echo " 3) List Current Issued Certificates" + echo " 8) Remove OpenVPN" + echo " 9) Exit" + until [[ "$MENU_OPTION" =~ ^[1-9]$ ]]; do + read -rp "Select an option [1-9]: " MENU_OPTION done case $MENU_OPTION in @@ -1262,9 +1300,13 @@ function manageMenu () { revokeClient ;; 3) + listcerts + ;; + + 8) removeOpenVPN ;; - 4) + 9) exit 0 ;; esac From 163f729d424b0ee7ff1782e9c34d840078fd78f8 Mon Sep 17 00:00:00 2001 From: Swamy Goundar Date: Sat, 28 Mar 2020 19:16:08 -0700 Subject: [PATCH 2/5] Updated Syntax Formating --- openvpn-install.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/openvpn-install.sh b/openvpn-install.sh index 75b303e..d5af217 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -1245,7 +1245,7 @@ function listcerts () { INDEX="/etc/openvpn/easy-rsa/pki/index.txt" -printf "\n" +printf "\\n" if [ ! -f "${INDEX}" ]; then echo "The file: $INDEX was not found!" exit 1 @@ -1253,25 +1253,26 @@ fi #printf ": NOTE : The first entry should always be your valid server!\n" #printf "\n" -printf "\e[1m::: Certificate Status List :::\e[0m\n" -printf "\e[4mStatus\e[0m :: \e[4mName\e[0m\e[0m :: \e[4mExpiration \e[0m\n" +printf "\\e[1m::: Certificate Status List :::\\e[0m\\n" +printf "\\e[4mStatus\\e[0m :: \\e[4mName\\e[0m\\e[0m :: \\e[4mExpiration \\e[0m\\n" while read -r line || [ -n "$line" ]; do STATUS=$(echo "$line" | awk '{print $1}') - NAME=$(echo "$line" | sed -e 's:.*/CN=::') + NAME=$(echo "$line" | awk '{print $5}' | awk -F= '{print $2}') EXPD=$(echo "$line" | awk '{if (length($2) == 15) print $2; else print "20"$2}' | cut -b 1-8 | date +"%b %d %Y" -f -) if [ "${STATUS}" == "V" ]; then - printf " Valid :: $NAME :: $EXPD \n" + + printf " Valid :: %s :: %s\\n" "$NAME" "$EXPD" elif [ "${STATUS}" == "R" ]; then - printf " Revoked :: $NAME :: $EXPD \n" + printf " Revoked :: %s :: %s\\n" "$NAME" "$EXPD" else - printf " Unknown :: $NAME :: $EXPD \n" + printf " Unknown :: %s :: %s\\n" "$NAME" "$EXPD" fi done <${INDEX} | column -t -printf "\n" +printf "\\n" } From dd5f3e15ed9f155c18695d14b8516f5236316e69 Mon Sep 17 00:00:00 2001 From: Swamy Goundar Date: Sat, 28 Mar 2020 19:20:57 -0700 Subject: [PATCH 3/5] Cleaned up Formating --- openvpn-install.sh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/openvpn-install.sh b/openvpn-install.sh index d5af217..b9a2275 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -1239,11 +1239,9 @@ function removeOpenVPN () { } function listcerts () { - # Original Script from PiVPN: list clients script # Modified Script to add Certificate expiration Date -- psgoundar - INDEX="/etc/openvpn/easy-rsa/pki/index.txt" printf "\\n" if [ ! -f "${INDEX}" ]; then @@ -1251,8 +1249,6 @@ if [ ! -f "${INDEX}" ]; then exit 1 fi -#printf ": NOTE : The first entry should always be your valid server!\n" -#printf "\n" printf "\\e[1m::: Certificate Status List :::\\e[0m\\n" printf "\\e[4mStatus\\e[0m :: \\e[4mName\\e[0m\\e[0m :: \\e[4mExpiration \\e[0m\\n" @@ -1262,15 +1258,13 @@ while read -r line || [ -n "$line" ]; do EXPD=$(echo "$line" | awk '{if (length($2) == 15) print $2; else print "20"$2}' | cut -b 1-8 | date +"%b %d %Y" -f -) if [ "${STATUS}" == "V" ]; then - - printf " Valid :: %s :: %s\\n" "$NAME" "$EXPD" - + printf " Valid :: %s :: %s\\n" "$NAME" "$EXPD" elif [ "${STATUS}" == "R" ]; then printf " Revoked :: %s :: %s\\n" "$NAME" "$EXPD" else printf " Unknown :: %s :: %s\\n" "$NAME" "$EXPD" - fi + done <${INDEX} | column -t printf "\\n" From d5bd197cfcf8b0a24369d678383c596320f456c1 Mon Sep 17 00:00:00 2001 From: Swamy Goundar Date: Sat, 28 Mar 2020 20:22:35 -0700 Subject: [PATCH 4/5] Disabled Listing of Revoked Certs --- openvpn-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openvpn-install.sh b/openvpn-install.sh index b9a2275..40a942f 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -1260,7 +1260,8 @@ while read -r line || [ -n "$line" ]; do if [ "${STATUS}" == "V" ]; then printf " Valid :: %s :: %s\\n" "$NAME" "$EXPD" elif [ "${STATUS}" == "R" ]; then - printf " Revoked :: %s :: %s\\n" "$NAME" "$EXPD" + #printf " Revoked :: %s :: %s\\n" "$NAME" "$EXPD" + continue else printf " Unknown :: %s :: %s\\n" "$NAME" "$EXPD" fi From dbae6a17c143f6fcc7c3f1bbfb82f42d41260984 Mon Sep 17 00:00:00 2001 From: Swamy Goundar Date: Sat, 28 Mar 2020 20:46:45 -0700 Subject: [PATCH 5/5] Fixed Issue for Cert Names when OU is defined. --- openvpn-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openvpn-install.sh b/openvpn-install.sh index 40a942f..124e670 100755 --- a/openvpn-install.sh +++ b/openvpn-install.sh @@ -1254,7 +1254,7 @@ printf "\\e[4mStatus\\e[0m :: \\e[4mName\\e[0m\\e[0m :: \\e[4mExpiratio while read -r line || [ -n "$line" ]; do STATUS=$(echo "$line" | awk '{print $1}') - NAME=$(echo "$line" | awk '{print $5}' | awk -F= '{print $2}') + NAME=$(echo "$line" | awk '{print $5}' | awk -FCN= '{print $2}') EXPD=$(echo "$line" | awk '{if (length($2) == 15) print $2; else print "20"$2}' | cut -b 1-8 | date +"%b %d %Y" -f -) if [ "${STATUS}" == "V" ]; then