Files
linux-install-helper/wireguard/peer_setup.sh

53 lines
1.1 KiB
Bash
Raw Normal View History

2025-04-30 19:43:45 +02:00
#!/bin/bash
2025-05-19 09:46:12 +00:00
. ./env_peer.sh
2025-05-19 09:44:02 +00:00
2025-04-30 19:43:45 +02:00
WG_CONF="/etc/wireguard"
PRIV_KEY_FILE="wg${WG_NUM}_privatekey"
PUB_KEY_FILE="wg${WG_NUM}_publickey"
CONF_FILE="wg${WG_NUM}.conf"
2025-05-19 09:44:02 +00:00
if [ -z "$WG_NUM" ]; then
2025-04-30 19:43:45 +02:00
echo "Wireguard interface number not provided."
exit 1
fi
2025-05-19 09:44:02 +00:00
if ! [[ "$WG_NUM" =~ ^-?[0-9]+([.][0-9]+)?$ ]]; then
2025-04-30 19:43:45 +02:00
echo "Wireguard interface number has to be a number."
exit 2
fi
wg genkey | tee wg"$WG_NUM"_privatekey | wg pubkey > wg"$WG_NUM"_publickey
PRIVATE_KEY=$(cat $PRIV_KEY_FILE)
sudo mkdir -p $WG_CONF
sudo mv ./$PRIV_KEY_FILE $WG_CONF
sudo mv ./$PUB_KEY_FILE $WG_CONF
2025-05-19 09:44:02 +00:00
CONF_INTERFACE="[Interface]
2025-04-30 19:43:45 +02:00
PrivateKey = $PRIVATE_KEY
2025-05-19 09:56:02 +00:00
Address = $MY_IP/32
2025-05-19 09:44:02 +00:00
DNS = $DNS_SERVER
"
echo "$CONF_INTERFACE" > "$CONF_FILE"
CONF_PEER="[Peer]
PublicKey = $PEER_PUBLIC_KEY
AllowedIPs = $ALLOWED_IPS
Endpoint = $PEER_ENDPOINT
PersistentKeepalive = 25
2025-04-30 19:43:45 +02:00
"
2025-05-19 09:44:02 +00:00
echo "$CONF_PEER" >> "$CONF_FILE"
2025-04-30 19:43:45 +02:00
sudo mv "$CONF_FILE" "$WG_CONF"
2025-05-19 09:44:02 +00:00
echo "Config saved to: $WG_CONF/$CONF_FILE"
echo "Add the following to the server config:"
echo "[Peer]
2025-05-19 09:56:02 +00:00
PublicKey = $(sudo cat $WG_CONF/$PUB_KEY_FILE)
AllowedIPs = $MY_IP/32
"
sudo systemctl enable wg-quick@"wg$WG_NUM"
sudo systemctl start wg-quick@"wg$WG_NUM"