From 53a5bddf22c2e59fe8d29711afddd52f30739980 Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Sat, 1 Mar 2025 22:34:55 +0100 Subject: [PATCH] wg generator --- wireguard-generator.sh | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 wireguard-generator.sh diff --git a/wireguard-generator.sh b/wireguard-generator.sh new file mode 100644 index 0000000..6d95591 --- /dev/null +++ b/wireguard-generator.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +base_config="wg0.conf" +base_ip="192.168.57." +start_ip=110 +server_config="wg0-server.conf" + +# First create server base config +cat > "$server_config" << 'EOF' +[Interface] +Address = 192.168.57.2/24 +SaveConfig = false +PostUp = ip route add 192.168.56.0/24 dev vboxnet0; iptables -A FORWARD -i wg0 -o vboxnet0 -j ACCEPT; iptables -A FORWARD -i vboxnet0 -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o vboxnet0 -j MASQUERADE +PostDown = ip route del 192.168.56.0/24 dev vboxnet0; iptables -D FORWARD -i wg0 -o vboxnet0 -j ACCEPT; iptables -D FORWARD -i vboxnet0 -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o vboxnet0 -j MASQUERADE +ListenPort = 51820 +PrivateKey = SJuOEDojaWclA3vyq1tI3fKv+Phs9QdvUFG7mZj23VU= + +EOF + +# Create 30 configs +for i in {1..30}; do + ip=$((start_ip + i)) + new_config="wg0_$ip.conf" + wg genkey | tee "${ip}privatekey" | wg pubkey | tee "${ip}publickey" + pub=$(cat ${ip}publickey) + priv=$(cat "${ip}privatekey") + echo $pub + + # Create new client config with all replacements + sed -E "s#(Address = ${base_ip})[0-9]+#\1${ip}#; + s#(PrivateKey = ).*#\1${priv}#" "$base_config" > "$new_config" + + # Add peer to server config with the new public key + cat >> "$server_config" << EOF +[Peer] +PublicKey = $pub +AllowedIPs = 192.168.57.${ip}/32 + +EOF + + echo "Created $new_config with IP ${base_ip}${ip}" +done + +echo "Created $server_config with all peer public keys"