mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-07-31 11:52:03 +08:00
48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
CONFIG="luci-app-openvpn-server"
|
|
OVPN_PATH=/var/etc/openvpn-server
|
|
LOG_FILE=${OVPN_PATH}/client.log
|
|
SESSION_PATH=${OVPN_PATH}/session
|
|
TIME="$(date "+%Y-%m-%d %H:%M:%S")"
|
|
|
|
mkdir -p ${SESSION_PATH}
|
|
|
|
REMOTE_IP=${trusted_ip}
|
|
[ -n "${trusted_ip6}" ] && REMOTE_IP=${trusted_ip6}
|
|
|
|
cat <<-EOF > ${SESSION_PATH}/${common_name}
|
|
{
|
|
"common_name": "${common_name}",
|
|
"time_ascii": "${time_ascii}",
|
|
"trusted_ip": "${trusted_ip}",
|
|
"trusted_ip6": "${trusted_ip6}",
|
|
"trusted_port": "${trusted_port}",
|
|
"ifconfig_pool_remote_ip": "${ifconfig_pool_remote_ip}",
|
|
"time_ascii": "${time_ascii}",
|
|
"remote_ip": "${REMOTE_IP}",
|
|
"login_time": "${TIME}"
|
|
}
|
|
EOF
|
|
|
|
echo "${TIME}: ${common_name}/${REMOTE_IP} online." >> ${LOG_FILE}
|
|
|
|
cfgid=$(uci show ${CONFIG} | grep "@users" | grep "\.username='${common_name}'" | cut -d '.' -sf 2)
|
|
[ -n "$cfgid" ] && {
|
|
routes=$(uci -q get ${CONFIG}.${cfgid}.routes)
|
|
[ -n "$routes" ] && {
|
|
for route in ${routes}; do
|
|
route add -net ${route} gw ${ifconfig_pool_remote_ip} >/dev/null 2>&1
|
|
done
|
|
#echo "${TIME}: ${common_name}/${REMOTE_IP} add route." >> ${LOG_FILE}
|
|
}
|
|
}
|
|
|
|
#可根据登录的账号自定义脚本,如组网、日志、限速、权限等特殊待遇。
|
|
SCRIPT="/usr/share/openvpn-server/script/client_connect/${common_name}"
|
|
[ -s "$SCRIPT" ] && {
|
|
[ ! -x "$SCRIPT" ] && chmod 0755 "$SCRIPT"
|
|
"$SCRIPT" "$@"
|
|
}
|
|
exit 0
|