avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 OpenVPN Access Server 常用操作指令(附shell脚本方法)
文章

OpenVPN Access Server 常用操作指令(附shell脚本方法)

发表于 2024-12-1 更新于 2024-12- 1
作者 jepwei
32~41 分钟 阅读

这篇技术笔记将介绍如何使用 sacli 命令进行常见的 OpenVPN Access Server 管理操作,包括用户管理、网络授权、MAC 地址管理、禁用用户以及重置用户的 TOTP MFA 码。

1. 创建用户

要创建一个新用户:

./sacli --user <用户名> --new_pass <密码> SetLocalPassword
./sacli --user <用户名> --key "conn_group" --value <组名> UserPropPut
./sacli --user <用户名> --key "prop_autologin" --value <true/false> UserPropPut
  • <用户名>:新用户的用户名。
  • <密码>:用户的密码。
  • <组名>:用户所属的组(默认可以是 tecsun)。
  • <true/false>:是否启用自动登录。

2. 删除用户

删除用户及其所有配置:

./sacli --user <用户名> UserPropDelAll
  • <用户名>:要删除的用户名。

3. 授权用户网络

为用户添加网络访问权限:

./sacli --user <用户名> --key "access_to.<规则序号>" --value "+NAT:<网络地址>" UserPropPut
  • <用户名>:需要授权的用户名。
  • <规则序号>:网络规则的序号(如 0)。
  • <网络地址>:如 192.168.1.0/24。

4. 删除用户网络

删除用户的网络访问权限:

./sacli --user <用户名> --key "access_to.<规则序号>" UserPropDel
  • <用户名>:需要修改的用户名。
  • <规则序号>:要删除的规则序号。

5. 重置用户 MAC

重置用户的主 MAC 地址:

./sacli --user <用户名> --key "pvt_hw_addr" UserPropDel
  • <用户名>:需要重置 MAC 的用户名。

6. 添加用户辅助 MAC

为用户添加辅助 MAC 地址:

./sacli --user <用户名> --key "pvt_hw_addr2" --value <MAC地址> UserPropPut
  • <用户名>:需要添加辅助 MAC 的用户名。
  • <MAC地址>:辅助 MAC 地址(如 ef:cd:ba:03:02:01)。

7. 禁用用户

禁用用户并断开其所有连接:

./sacli --user <用户名> RevokeUser
./sacli --user <用户名> DisconnectUser
  • <用户名>:需要禁用的用户名。

8. 重置用户 TOTP MFA 码

重置用户的 TOTP MFA 码:

./sacli --user <用户名> TotpRegen
  • <用户名>:需要重置 TOTP MFA 的用户名。

执行此命令后,用户需要重新配置他们的 TOTP 应用程序(如 Google Authenticator)来生成新的验证码。


通过这些命令,您可以有效地管理 OpenVPN Access Server 的用户和网络配置。

快捷脚本

#!/bin/bash

SACLI="/usr/local/openvpn_as/scripts/sacli"

# 菜单函数
function menu() {
    echo "OpenVPN Access Server 管理脚本"
    echo "1. 创建用户"
    echo "2. 删除用户"
    echo "3. 授权用户网络"
    echo "4. 删除用户网络"
    echo "5. 重置用户 MAC"
    echo "6. 添加用户辅助 MAC"
    echo "7. 禁用用户"
    echo "0. 退出"
    read -p "请输入选项编号: " choice
}

function reload_service() {
    echo "正在重载 OpenVPN 配置..."
    $SACLI start
    if [ $? -eq 0 ]; then
        echo "服务重载成功!新的配置已生效。"
    else
        echo "服务重载失败,请检查错误日志!"
    fi
}

# 显示当前所有组
function display_groups() {
    echo "当前可用组:"
    $SACLI UserPropGet | grep -oP '(?<=conn_group": ")[^"]+' | sort | uniq
}

# 创建用户
function create_user() {
    read -p "请输入用户名: " username
    read -s -p "请输入密码: " password
    echo

    # 显示当前所有组
    display_groups

    read -p "请输入用户所属组(默认为 tecsun): " group
    group=${group:-tecsun}  # 如果未输入组名,默认加入 tecsun 组
    read -p "是否设置自动登录 (yes/no): " autologin
    autologin_value="false"
    if [[ $autologin == "yes" ]]; then
        autologin_value="true"
    fi

    $SACLI --user "$username" --new_pass "$password" SetLocalPassword
    $SACLI --user "$username" --key "conn_group" --value "$group" UserPropPut
    $SACLI --user "$username" --key "prop_autologin" --value "$autologin_value" UserPropPut
    echo "用户 $username 已创建并配置完成(组: $group)。"
    reload_service

    # 输出模板信息
    echo -e "\n用户信息如下:"
    echo "浏览器访问:ovpn.e-tecsun.com"
    echo "用户名:$username"
    echo "密码:$password"
    echo "然后直接点download下载,下载直接打开安装并拨号即可"
}

# 删除用户
function delete_user() {
    read -p "请输入要删除的用户名: " username
    $SACLI --user "$username" UserPropDelAll
    echo "用户 $username 已删除。"
    reload_service
}

# 授权用户网络
function authorize_user_network() {
    read -p "请输入用户名: " username
    echo "当前用户网络规则:"
    $SACLI --user "$username" UserPropGet | grep -A 10 "$username"

    read -p "请输入要添加的网络地址 (如 192.168.1.0/24): " network_address
    read -p "请输入规则序号 (如 0): " rule_index

    rule_value="+NAT:$network_address"
    $SACLI --user "$username" --key "access_to.$rule_index" --value "$rule_value" UserPropPut
    echo "已为用户 $username 添加网络规则 $rule_value (序号 $rule_index)。"
    reload_service
}

# 删除用户网络
function delete_user_network() {
    read -p "请输入用户名: " username
    echo "当前用户网络规则:"
    $SACLI --user "$username" UserPropGet | grep -A 10 "$username"

    read -p "请输入要删除的规则序号 (如 0): " rule_index
    $SACLI --user "$username" --key "access_to.$rule_index" UserPropDel
    echo "已删除用户 $username 的网络规则 (序号 $rule_index)。"
    reload_service
}

# 重置用户 MAC
function reset_user_mac() {
    read -p "请输入用户名: " username
    $SACLI --user "$username" --key "pvt_hw_addr" UserPropDel
    echo "用户 $username 的主 MAC 已重置。"
}

# 添加用户辅助 MAC
function add_user_aux_mac() {
    read -p "请输入用户名: " username
    read -p "请输入辅助 MAC 地址 (如 ef:cd:ba:03:02:01): " mac_address
    $SACLI --user "$username" --key "pvt_hw_addr2" --value "$mac_address" UserPropPut
    echo "已为用户 $username 添加辅助 MAC 地址 $mac_address。"
}

# 禁用用户
function disable_user() {
    read -p "请输入要禁用的用户名: " username
    $SACLI --user "$username" RevokeUser
    $SACLI --user "$username" DisconnectUser
    echo "用户 $username 已禁用。"
}

# 主循环
while true; do
    menu
    case $choice in
        1) create_user ;;
        2) delete_user ;;
        3) authorize_user_network ;;
        4) delete_user_network ;;
        5) reset_user_mac ;;
        6) add_user_aux_mac ;;
        7) disable_user ;;
        0) echo "退出脚本。"; exit 0 ;;
        *) echo "无效选项,请重新输入。";;
    esac
done
科学上网
openvpnas
许可协议: 
分享

相关文章

12月 17, 2024

节点搭建教程 Vmess + WebSocket + TLS + 网站伪装

本文介绍了如何搭建一个稳定防封、高速的节点,使用 Vmess 协议,并兼容多种客户端。教程简化了一些步骤,使其更加适合初学者,重点在于申请证书和配置 Nginx。用户需要准备一台 VPS、域名和基本的 Linux 知识。主要步骤包括安装 1Panel、设置 BBR 以及配置防火墙,还介绍了如何通过 3x-ui 控制面板添加节点和申请 SSL 证书。整体过程简单易操作,确保读者能成功搭建节点。

12月 9, 2024

FRP 内网穿透配置

本文介绍了如何使用FRP(Fast Reverse Proxy)进行内网穿透,以实现Windows远程桌面控制。文中详细说明了服务端(VPS)和客户端(Windows)的环境要求、配置步骤及安全建议,包括安装脚本、端口配置、防火墙设置和启动命令。此外,还提供了连接方法和故障排查建议,确保用户能够顺利搭建和维护远程桌面连接。

12月 1, 2024

Clash for Linux 工具

本文介绍了如何在Linux系统上安装和配置Clash工具以实现科学上网。通过一系列命令,用户可以下载Clash核心文件、解压并移动文件,设置代理端口及节点配置。文章还说明了如何修改配置文件以移除香港节点及设置相关的环境变量。此外,提供了使用systemd设置Clash开机自启动的步骤,包括创建服务文件和启用服务。

下一篇

Cisco AnyConnect ocserv 搭建部署(证书认证方式)

上一篇

OpenVPN Access Server 绑定用户MAC地址

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy