写点什么

利用 Cron 定时任务管理 OpenVPN 用户访问权限

作者:qife122
  • 2025-08-18
    福建
  • 本文字数:794 字

    阅读完需:约 3 分钟

拥有 Cron 伙伴总是好事!

背景需求

几位系统管理员朋友讨论 VPN 使用场景时,提出希望实现定时访问控制的需求:在系统更新期间限制访问,或仅允许实习生在特定时段连接。这引发了关于企业 IT 管理限制的深入讨论。

技术实现

1. OpenVPN 命令行工具

通过 OpenVPN 官方文档获取关键命令:


# 禁止用户命令/usr/local/openvpn_as/scripts/sacli --user <username> --key "prop_deny" --value "true" UserPropPut
# 断开用户连接命令/usr/local/openvpn_as/scripts/sacli --user <username> --kill "Schedule Maintenance" DisconnectUser
复制代码

2. 创建 Bash 脚本

~/scripts目录下创建两个脚本文件:


discbanuser.sh (断开并禁止用户):


#!/bin/bash/usr/local/openvpn_as/scripts/sacli --user $1 --kill "$2" DisconnectUser/usr/local/openvpn_as/scripts/sacli --user $1 --key "prop_deny" --value "true" UserPropPut
复制代码


unbanuser.sh (解除用户禁止):


#!/bin/bash/usr/local/openvpn_as/scripts/sacli --user $1 --key "prop_deny" --value "false" UserPropPut
复制代码

3. 设置脚本权限

chmod 755 discbanuser.shchmod 755 unbanuser.sh
复制代码

4. 配置 Cron 定时任务

通过crontab -e添加计划任务:


# 每周一22:00执行断开禁止0 22 * * 1 /home/medic/scripts/discbanuser.sh ricktest "Scheduled Maintenance"
# 每周一22:30执行解禁30 22 * * 1 /home/medic/scripts/unbanuser.sh ricktest
复制代码

测试验证

  1. 测试用户按计划被断开连接并收到指定消息

  2. 禁止期间尝试连接失败

  3. 解禁后恢复连接功能

应用扩展

该方案可延伸用于:


  • 定时系统维护窗口

  • 合规性访问控制

  • 临时权限管理

  • 安全事件响应


文中提到的电路板制造测试案例展示了 Cron 在硬件测试中的创新应用,通过定时脚本检测总线时序问题。


通过这个基础示例,Linux 新手可以掌握 Cron 与 Bash 脚本结合的实用技巧,为自动化系统管理打下基础。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
利用Cron定时任务管理OpenVPN用户访问权限_OpenVPN_qife122_InfoQ写作社区