Skip to content

Commit

Permalink
Making Client Revocation Headless and Documenting New Feature
Browse files Browse the repository at this point in the history
This closes angristan#486
  • Loading branch information
Dominic Dumrauf (MacBook Pro 2017) committed Sep 18, 2019
1 parent bc109db commit b8bdb1a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,19 @@ Other variables can be set depending on your choice (encryption, compression). Y

Password-protected clients are not supported by the headless installation method since user input is expected by Easy-RSA.

### Headless User Removal

The removal of an existing user can also be fully automated. Again, the key is to provide the (string) value of the `MENU_OPTION` variable along with the remaining mandatory variables before invoking the script.

The following Bash script removes the existing user `bar` from an OpenVPN configuration
```bash
#!/bin/bash
export MENU_OPTION="2"
export CLIENT="bar"
./openvpn-install.sh
```


## Features

- Installs and configures a ready-to-use OpenVPN server
Expand Down
20 changes: 11 additions & 9 deletions openvpn-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1072,16 +1072,18 @@ function revokeClient () {
exit 1
fi
echo ""
echo "Select the existing client certificate you want to revoke"
tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') '
if [[ "$NUMBEROFCLIENTS" = '1' ]]; then
read -rp "Select one client [1]: " CLIENTNUMBER
else
read -rp "Select one client [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER
fi
until [[ "$CLIENT" =~ ^[a-zA-Z0-9_]+$ ]]; do
echo ""
echo "Select the existing client certificate you want to revoke"
tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') '
if [[ "$NUMBEROFCLIENTS" = '1' ]]; then
read -rp "Select one client [1]: " CLIENTNUMBER
else
read -rp "Select one client [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER
fi
CLIENT=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p)
CLIENT=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p)
done
cd /etc/openvpn/easy-rsa/
./easyrsa --batch revoke "$CLIENT"
EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl
Expand Down

0 comments on commit b8bdb1a

Please sign in to comment.