69 lines
2.6 KiB
Bash
Executable File
69 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# ═══════════════════════════════════════════════════════════════════
|
|
# Generate WireGuard client config for admin
|
|
# Usage: wireguard-admin-client.sh <admin_name> <server_ip> <server_pubkey>
|
|
# Output: admin_name.conf (ready for import in WireGuard app)
|
|
# ═══════════════════════════════════════════════════════════════════
|
|
|
|
set -e
|
|
|
|
ADMIN_NAME="${1:-admin1}"
|
|
VPN_SERVER_IP="${2:-}"
|
|
VPN_SERVER_PUBKEY="${3:-}"
|
|
|
|
if [ -z "$VPN_SERVER_IP" ] || [ -z "$VPN_SERVER_PUBKEY" ]; then
|
|
echo "Usage: $0 <admin_name> <server_ip> <server_pubkey>"
|
|
echo ""
|
|
echo "Example:"
|
|
echo " $0 admin1 123.45.67.89 'aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890AbCdE='"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[*] Generating WireGuard config for admin: $ADMIN_NAME"
|
|
|
|
# ─── Generate unique keys for this admin ───────────────────────
|
|
ADMIN_PRIVATEKEY=$(wg genkey)
|
|
ADMIN_PUBKEY=$(echo "$ADMIN_PRIVATEKEY" | wg pubkey)
|
|
|
|
# ─── Auto-assign IP from 10.0.0.3+ ─────────────────────────────
|
|
# Format: [admin_name].conf uses 10.0.0.3, 10.0.0.4, etc.
|
|
# You should track these manually or use a database
|
|
ADMIN_IP="10.0.0.3" # ← CHANGE THIS for each admin
|
|
|
|
# ─── Create config file ────────────────────────────────────────
|
|
cat > "${ADMIN_NAME}.conf" << EOF
|
|
[Interface]
|
|
Address = $ADMIN_IP/32
|
|
PrivateKey = $ADMIN_PRIVATEKEY
|
|
DNS = 8.8.8.8
|
|
|
|
[Peer]
|
|
PublicKey = $VPN_SERVER_PUBKEY
|
|
AllowedIPs = 10.0.0.0/24
|
|
Endpoint = $VPN_SERVER_IP:51820
|
|
PersistentKeepalive = 25
|
|
EOF
|
|
|
|
echo "[✓] Config created: ${ADMIN_NAME}.conf"
|
|
echo ""
|
|
echo "Configuration:"
|
|
echo " Name: $ADMIN_NAME"
|
|
echo " IP: $ADMIN_IP"
|
|
echo " Public Key: $ADMIN_PUBKEY"
|
|
echo ""
|
|
echo "Steps to add to VPN server:"
|
|
echo " 1. Copy public key above"
|
|
echo " 2. SSH to VPN server"
|
|
echo " 3. wg set wg0 peer $ADMIN_PUBKEY allowed-ips $ADMIN_IP/32"
|
|
echo " 4. wg show"
|
|
echo ""
|
|
echo "To import on your device:"
|
|
echo " 1. Install WireGuard app (Windows/Mac/Linux/iPhone/Android)"
|
|
echo " 2. Import ${ADMIN_NAME}.conf"
|
|
echo " 3. Connect to VPN"
|
|
echo " 4. Access services:"
|
|
echo " • Wazuh: https://10.0.0.2"
|
|
echo " • Dozzle: http://10.0.0.2:8080"
|
|
echo " • Beszel: http://10.0.0.2:9090"
|
|
echo " • S3: http://10.0.0.2:9000"
|