Lightweight Vulnerability Scanner for Resourced-constrained Organizations

setup-wireguard-client.sh 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. set -e
  3. # === CONFIGURATION ===
  4. WG_INTERFACE="wg0"
  5. WG_ADDRESS="10.0.0.2/24"
  6. WG_PRIVATE_KEY_PATH="/etc/wireguard/privatekey"
  7. WG_PUBLIC_KEY_PATH="/etc/wireguard/publickey"
  8. WG_CONF_PATH="/etc/wireguard/${WG_INTERFACE}.conf"
  9. WG_SERVER_PUBLIC_KEY="YOUR_REAL_PUBLIC_KEY_HERE"
  10. WG_SERVER_ENDPOINT="YOUR.SERVER.IP.HERE:51820"
  11. WG_ALLOWED_IPS="0.0.0.0/0"
  12. WG_KEEPALIVE=25
  13. WG_IFACE="enp0s3" # Replace with your outbound interface name
  14. # === INSTALL WIREGUARD ===
  15. echo " Installing WireGuard..."
  16. sudo apt-get update
  17. sudo apt-get install -y wireguard
  18. # === GENERATE KEYS ===
  19. echo " Generating WireGuard keys..."
  20. sudo mkdir -p /etc/wireguard
  21. sudo chmod 700 /etc/wireguard
  22. if [ ! -f "$WG_PRIVATE_KEY_PATH" ]; then
  23. umask 077
  24. wg genkey | sudo tee "$WG_PRIVATE_KEY_PATH" | wg pubkey | sudo tee "$WG_PUBLIC_KEY_PATH"
  25. else
  26. echo "] Private key already exists. Skipping key generation."
  27. fi
  28. PRIVATE_KEY=$(sudo cat "$WG_PRIVATE_KEY_PATH")
  29. # === WRITE CONFIG FILE ===
  30. echo " Writing WireGuard config to $WG_CONF_PATH..."
  31. sudo tee "$WG_CONF_PATH" > /dev/null <<EOF
  32. [Interface]
  33. PrivateKey = ${PRIVATE_KEY}
  34. Address = ${WG_ADDRESS}
  35. PostUp = iptables -t nat -A POSTROUTING -o ${WG_IFACE} -j MASQUERADE
  36. PostDown = iptables -t nat -D POSTROUTING -o ${WG_IFACE} -j MASQUERADE
  37. [Peer]
  38. PublicKey = ${WG_SERVER_PUBLIC_KEY}
  39. Endpoint = ${WG_SERVER_ENDPOINT}
  40. AllowedIPs = ${WG_ALLOWED_IPS}
  41. PersistentKeepalive = ${WG_KEEPALIVE}
  42. EOF
  43. sudo chmod 600 "$WG_CONF_PATH"
  44. # === ENABLE IP FORWARDING ===
  45. echo " Enabling IP forwarding..."
  46. sudo sysctl -w net.ipv4.ip_forward=1
  47. echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf > /dev/null
  48. # === START THE TUNNEL ===
  49. echo " Starting WireGuard interface ${WG_INTERFACE}..."
  50. sudo wg-quick up "${WG_INTERFACE}"
  51. echo " WireGuard VPN client is up and connected."