Lightweight Vulnerability Scanner for Resourced-constrained Organizations

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/bash
  2. set -e
  3. echo "[*] Starting VPN Agent..."
  4. WG_CONF="/etc/wireguard/wg0.conf"
  5. WG_KEY_DIR="/etc/wireguard/keys"
  6. mkdir -p $WG_KEY_DIR
  7. # Generate keypair if not exist
  8. if [ ! -f "$WG_KEY_DIR/privatekey" ]; then
  9. echo "[*] Generating WireGuard keypair..."
  10. umask 077
  11. wg genkey | tee "$WG_KEY_DIR/privatekey" | wg pubkey > "$WG_KEY_DIR/publickey"
  12. fi
  13. PRIVATE_KEY=$(cat "$WG_KEY_DIR/privatekey")
  14. cat > $WG_CONF <<EOF
  15. [Interface]
  16. PrivateKey = ${PRIVATE_KEY}
  17. Address = ${WG_ADDRESS}
  18. PostUp = iptables -t nat -A POSTROUTING -o ${WG_IFACE} -j MASQUERADE
  19. PostDown = iptables -t nat -D POSTROUTING -o ${WG_IFACE} -j MASQUERADE
  20. [Peer]
  21. PublicKey = ${WG_SERVER_PUBLIC_KEY}
  22. Endpoint = ${WG_SERVER_ENDPOINT}
  23. AllowedIPs = ${WG_ALLOWED_IPS}
  24. PersistentKeepalive = ${WG_KEEPALIVE}
  25. EOF
  26. echo "[✓] Public Key for registration:"
  27. cat "$WG_KEY_DIR/publickey"
  28. echo 1 > /proc/sys/net/ipv4/ip_forward
  29. wg-quick up wg0
  30. tail -f /dev/null