Update awg-manager.sh
This commit is contained in:
parent
eec550f8a8
commit
48d4340fa2
@ -18,7 +18,6 @@ function usage {
|
|||||||
echo " -L : Lock user"
|
echo " -L : Lock user"
|
||||||
echo " -U : Unlock user"
|
echo " -U : Unlock user"
|
||||||
echo " -p : Print user config"
|
echo " -p : Print user config"
|
||||||
echo " -q : Print user QR code"
|
|
||||||
echo " -u <user> : User identifier (uniq field for vpn account)"
|
echo " -u <user> : User identifier (uniq field for vpn account)"
|
||||||
echo " -s <server> : Server host for user connection"
|
echo " -s <server> : Server host for user connection"
|
||||||
echo " -I : Interface (default auto)"
|
echo " -I : Interface (default auto)"
|
||||||
@ -29,8 +28,8 @@ function usage {
|
|||||||
unset USER
|
unset USER
|
||||||
umask 0077
|
umask 0077
|
||||||
|
|
||||||
HOME_DIR="/etc/wireguard"
|
HOME_DIR="/etc/amnezia/amneziawg"
|
||||||
SERVER_NAME="wg-server"
|
SERVER_NAME="awg0"
|
||||||
SERVER_IP_PREFIX="10.10.10"
|
SERVER_IP_PREFIX="10.10.10"
|
||||||
SERVER_PORT=39547
|
SERVER_PORT=39547
|
||||||
SERVER_INTERFACE=$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1)
|
SERVER_INTERFACE=$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1)
|
||||||
@ -43,7 +42,6 @@ while getopts ":icdpqhLUu:I:s:" opt; do
|
|||||||
L) LOCK=1 ;;
|
L) LOCK=1 ;;
|
||||||
U) UNLOCK=1 ;;
|
U) UNLOCK=1 ;;
|
||||||
p) PRINT_USER_CONFIG=1 ;;
|
p) PRINT_USER_CONFIG=1 ;;
|
||||||
q) PRINT_QR_CODE=1 ;;
|
|
||||||
u) USER="$OPTARG" ;;
|
u) USER="$OPTARG" ;;
|
||||||
I) SERVER_INTERFACE="$OPTARG" ;;
|
I) SERVER_INTERFACE="$OPTARG" ;;
|
||||||
h) usage ;;
|
h) usage ;;
|
||||||
@ -56,7 +54,7 @@ done
|
|||||||
[ $# -lt 1 ] && usage
|
[ $# -lt 1 ] && usage
|
||||||
|
|
||||||
function reload_server {
|
function reload_server {
|
||||||
wg syncconf ${SERVER_NAME} <(wg-quick strip ${SERVER_NAME})
|
awg syncconf ${SERVER_NAME} <(awg-quick strip ${SERVER_NAME})
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_new_ip {
|
function get_new_ip {
|
||||||
@ -132,7 +130,7 @@ function init {
|
|||||||
echo -n "$SERVER_ENDPOINT" > "keys/.server"
|
echo -n "$SERVER_ENDPOINT" > "keys/.server"
|
||||||
|
|
||||||
if [ ! -f "keys/${SERVER_NAME}/private.key" ]; then
|
if [ ! -f "keys/${SERVER_NAME}/private.key" ]; then
|
||||||
wg genkey | tee "keys/${SERVER_NAME}/private.key" | wg pubkey > "keys/${SERVER_NAME}/public.key"
|
awg genkey | tee "keys/${SERVER_NAME}/private.key" | awg pubkey > "keys/${SERVER_NAME}/public.key"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$SERVER_NAME.conf" ]; then
|
if [ -f "$SERVER_NAME.conf" ]; then
|
||||||
@ -150,14 +148,23 @@ PrivateKey = ${SERVER_PVT_KEY}
|
|||||||
PostUp = iptables -P FORWARD ACCEPT
|
PostUp = iptables -P FORWARD ACCEPT
|
||||||
PostUp = iptables -t nat -A POSTROUTING -o ${SERVER_INTERFACE} -j MASQUERADE
|
PostUp = iptables -t nat -A POSTROUTING -o ${SERVER_INTERFACE} -j MASQUERADE
|
||||||
PostDown = iptables -t nat -D POSTROUTING -o ${SERVER_INTERFACE} -j MASQUERADE
|
PostDown = iptables -t nat -D POSTROUTING -o ${SERVER_INTERFACE} -j MASQUERADE
|
||||||
|
Jc = 9
|
||||||
|
Jmin = 50
|
||||||
|
Jmax = 1000
|
||||||
|
S1 = 122
|
||||||
|
S2 = 73
|
||||||
|
H1 = 1885740354
|
||||||
|
H2 = 1719205186
|
||||||
|
H3 = 2118327503
|
||||||
|
H4 = 297399059
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
|
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
|
||||||
sysctl -p
|
sysctl -p
|
||||||
|
|
||||||
systemctl enable wg-quick@${SERVER_NAME}
|
systemctl enable awg-quick@${SERVER_NAME}
|
||||||
wg-quick up ${SERVER_NAME} || true
|
awg-quick up ${SERVER_NAME} || true
|
||||||
|
|
||||||
echo "Server initialized successfully"
|
echo "Server initialized successfully"
|
||||||
exit 0
|
exit 0
|
||||||
@ -173,7 +180,7 @@ function create {
|
|||||||
USER_IP=$( get_new_ip )
|
USER_IP=$( get_new_ip )
|
||||||
|
|
||||||
mkdir "keys/${USER}"
|
mkdir "keys/${USER}"
|
||||||
wg genkey | tee "keys/${USER}/private.key" | wg pubkey > "keys/${USER}/public.key"
|
awg genkey | tee "keys/${USER}/private.key" | awg pubkey > "keys/${USER}/public.key"
|
||||||
|
|
||||||
USER_PVT_KEY=$(cat "keys/${USER}/private.key")
|
USER_PVT_KEY=$(cat "keys/${USER}/private.key")
|
||||||
USER_PUB_KEY=$(cat "keys/${USER}/public.key")
|
USER_PUB_KEY=$(cat "keys/${USER}/public.key")
|
||||||
@ -184,6 +191,15 @@ cat <<EOF > "keys/${USER}/${USER}.conf"
|
|||||||
Address = ${USER_IP}
|
Address = ${USER_IP}
|
||||||
PrivateKey = ${USER_PVT_KEY}
|
PrivateKey = ${USER_PVT_KEY}
|
||||||
DNS = 8.8.8.8
|
DNS = 8.8.8.8
|
||||||
|
Jc = 9
|
||||||
|
Jmin = 50
|
||||||
|
Jmax = 1000
|
||||||
|
S1 = 122
|
||||||
|
S2 = 73
|
||||||
|
H1 = 1885740354
|
||||||
|
H2 = 1719205186
|
||||||
|
H3 = 2118327503
|
||||||
|
H4 = 297399059
|
||||||
|
|
||||||
[Peer]
|
[Peer]
|
||||||
PublicKey = ${SERVER_PUB_KEY}
|
PublicKey = ${SERVER_PUB_KEY}
|
||||||
@ -238,8 +254,6 @@ fi
|
|||||||
|
|
||||||
if [ $PRINT_USER_CONFIG ]; then
|
if [ $PRINT_USER_CONFIG ]; then
|
||||||
cat "keys/${USER}/${USER}.conf"
|
cat "keys/${USER}/${USER}.conf"
|
||||||
elif [ $PRINT_QR_CODE ]; then
|
|
||||||
qrencode -t ansiutf8 < "keys/${USER}/${USER}.conf"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user