Add automatic generation of VPN config to script

This commit is contained in:
coolneng 2021-08-01 18:27:50 +01:00
parent 5c29367857
commit ead88b2a38
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
1 changed files with 25 additions and 1 deletions

View File

@ -6,10 +6,34 @@ usage() {
exit 1
}
get_last_ip() {
last_ocurrence=$(grep '10.9.0' "$networking_file" | tail -1)
last_digit=$(echo "$last_ocurrence" | cut -d . -f 4 | cut -c 1)
}
generate_certificates() {
mkdir "$certificates_directory/$hostname"
cd "$certificates_directory/$hostname" || exit
wg genkey | tee "$hostname".key | wg pubkey >"$hostname".pub
}
generate_config() {
private_key=$(cat "$hostname.key")
get_last_ip
last_ip=$((last_digit + 1))
cd "$config_directory" || exit
sed -e "s/private_key_placeholder/$private_key/g" -e "s/ip_placeholder/$last_ip/g" "$config_file" >"$hostname".conf
}
if [ $# != 1 ]; then
usage
fi
hostname=$1
networking_file="/etc/nixos/modules/networking.nix"
certificates_directory="/home/coace/.wg"
config_directory="/vault/config/wireguard"
config_file="$config_directory/placeholder.conf"
wg genkey | tee "$hostname".key | wg pubkey >"$hostname".pub
generate_certificates
generate_config