Create awg-gen-config.sh
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
export SERVER_NAME="serverwg"
|
||||
export INTERFACE_WG="wg0"
|
||||
|
||||
sudo mkdir -p /etc/amnezia/amneziawg/keys ;
|
||||
|
||||
wg genkey | sudo tee "/etc/amnezia/amneziawg/keys/server.key" | \
|
||||
wg pubkey | sudo tee "/etc/amnezia/amneziawg/keys/server.key.pub";
|
||||
|
||||
echo
|
||||
echo "CREATING THE SERVER CONFIG"
|
||||
echo
|
||||
|
||||
DEFAULT_INTERFACE="$(ip -o -4 route show to default | awk '{print $5}')"
|
||||
MAIN_IP="$(hostname -I | cut -d' ' -f1)"
|
||||
|
||||
PRIVATE_KEY=$(sudo cat /etc/amnezia/amneziawg/keys/server.key)
|
||||
|
||||
PORT=$(shuf -i 52800-53000 -n1)
|
||||
|
||||
J_C=$(shuf -i 7-15 -n1)
|
||||
J_MIN=$(shuf -i 35-65 -n1)
|
||||
J_MAX=$(shuf -i 800-950 -n1)
|
||||
S_1=$(shuf -i 50-70 -n1)
|
||||
S_2=$(shuf -i 130-150 -n1)
|
||||
H_1=$(shuf -i 1006457265-1206457265 -n1)
|
||||
H_2=$(shuf -i 239455488-259455488 -n1)
|
||||
H_3=$(shuf -i 1109847463-1309847463 -n1)
|
||||
H_4=$(shuf -i 1546644382-1746644382 -n1)
|
||||
|
||||
cat << EOF | sudo tee "/etc/amnezia/amneziawg/${INTERFACE_WG}.conf"
|
||||
[Interface]
|
||||
Address = 10.90.90.1/24
|
||||
ListenPort = ${PORT}
|
||||
PrivateKey = ${PRIVATE_KEY}
|
||||
Jc = ${J_C}
|
||||
Jmin = ${J_MIN}
|
||||
Jmax = ${J_MAX}
|
||||
S1 = ${S_1}
|
||||
S2 = ${S_2}
|
||||
H1 = ${H_1}
|
||||
H2 = ${H_2}
|
||||
H3 = ${H_3}
|
||||
H4 = ${H_4}
|
||||
|
||||
EOF
|
||||
|
||||
sudo chmod 600 "/etc/amnezia/amneziawg/${INTERFACE_WG}.conf" "/etc/amnezia/amneziawg/keys/server.key"
|
||||
|
||||
echo
|
||||
echo "ACTIVATING WIREGUARD SERVICE"
|
||||
echo
|
||||
|
||||
sudo wg-quick up "${INTERFACE_WG}"
|
||||
sudo wg show "${INTERFACE_WG}"
|
||||
|
||||
echo
|
||||
echo "ENABLE WIREGUARD SERVICE AT BOOT"
|
||||
echo
|
||||
|
||||
sudo systemctl enable awg-quick@wg0
|
||||
|
||||
|
||||
chmod -R 755 /etc/amnezia/amneziawg
|
||||
|
||||
cat << EOF | sudo tee "/etc/systemd/system/wg-dash.service"
|
||||
[Unit]
|
||||
After=syslog.target network-online.target
|
||||
ConditionPathIsDirectory=/etc/amnezia/amneziawg
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User=root
|
||||
Group=root
|
||||
PIDFile=/wgdashboard/src/gunicron.pid
|
||||
WorkingDirectory=/wgdashboard/src
|
||||
ExecStart=/usr/bin/env gunicorn --access-logfile /wgdashboard/src/log/access.log --error-logfile /wgdashboard/src/log/error.log 'dashboard:run_dashboard()' --pid /wgdashboard/src/gunicron.pid
|
||||
PrivateTmp=true
|
||||
Restart=no
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
EOF
|
||||
|
||||
cat << EOF | sudo tee "/wgdashboard/src/wg-dashboard.ini"
|
||||
[Account]
|
||||
username = admin
|
||||
password = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
|
||||
|
||||
[Server]
|
||||
wg_conf_path = /etc/amnezia/amneziawg
|
||||
app_ip = 0.0.0.0
|
||||
app_port = 10085
|
||||
auth_req = true
|
||||
version = v3.1
|
||||
dashboard_refresh_interval = 60000
|
||||
dashboard_sort = status
|
||||
dashboard_theme = light
|
||||
|
||||
[Peers]
|
||||
peer_endpoint_allowed_ip = 0.0.0.0/0
|
||||
peer_display_mode = grid
|
||||
remote_endpoint = ${MAIN_IP}
|
||||
peer_keep_alive = 21
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
systemctl enable wg-dash --now
|
||||
Reference in New Issue
Block a user