Add automatic generation of VPN config to script
This commit is contained in:
parent
5c29367857
commit
ead88b2a38
|
@ -6,10 +6,34 @@ usage() {
|
||||||
exit 1
|
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
|
if [ $# != 1 ]; then
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
hostname=$1
|
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
|
||||||
|
|
Loading…
Reference in New Issue