wg generator

This commit is contained in:
Christoph J. Scherr 2025-03-01 22:34:55 +01:00
parent f7e2bba4cb
commit 53a5bddf22
Signed by: PlexSheep
GPG key ID: 9EB784BB202BB7BB

44
wireguard-generator.sh Normal file
View file

@ -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"