ocservice:自动化 ocserv 和 easy-rsa 的命令行工具
ocservice 是一套用于操作管理 ocserv VPN 服务器的 bash 脚本。该工具与 easy-rsa 集成,用于 PKI 操作,自动化客户端证书生成、吊销和 CRL 更新。它支持证书、密码和混合授权模式,无需 Docker 或数据库等额外服务。
脚本从命令行运行,每次调用主菜单时显示服务器状态(运行时间、会话、流量、错误)。这简化了监控,无需单独的 occtl 命令。
主要功能
主脚本 ocservice 提供带有当前状态的菜单:活跃会话、接收/发送流量、被禁 IP、授权错误。
生成客户端证书
gen-client 创建带有证书的用户:
- 提示输入名称、有效期、连接限制。
- 通过 easy-rsa 生成证书。
- 导出为带密码的 .p12 文件。
- 记录数据以供客户端交付。
密码用户
gen-login 使用 ocpasswd 在密码模式下创建账户。仅在启用密码授权时可用。
用户管理中心
user-center 显示一个表格:
| 用户 | 在线 | 证书到期 | 封禁点数 | 限制 |
|------|--------|-------------|------------|-------|
对于每个用户:
- 连接详情。
- 编辑用户配置。
- 踢出会话。
- 重置封禁点数。
- 删除并吊销证书和更新 CRL。
安装与设置
克隆仓库并运行安装程序:
git clone https://github.com/Ilyntiy/ocservice.git
cd ocservice
chmod +x install.sh
sudo ./install.sh
安装程序:
- 从 ocserv.conf 解析路径(ocpasswd、config-per-user)。
- 识别伪装 URL(如果启用)。
- 提示输入安装前缀、授权模式、服务器地址。
- 创建 ocservice.conf。
- 复制脚本到 ~/bin/。
- 配置 /etc/sudoers.d/ocservice,授予 occtl、ocpasswd、journalctl、systemctl 权限。
技术实现
配置
单个 ocservice.conf 在每次运行时被引用。支持任意 ocserv 路径(/opt、主目录)。
权限
最小 sudo 规则,仅针对必要命令,无需完全 root 访问权限。
伪装
自动从 ocserv.conf 读取 camouflage_secret,生成带令牌的 URL。
PKI 操作
- 证书吊销:easyrsa revoke。
- CRL 更新:easyrsa gen-crl。
- ocserv 直接从 pki/ 读取 crl.pem。
系统要求
- 从源码安装的 ocserv。
- easy-rsa 3.x。
- openssl。
- ocserv.conf 中设置 use-occtl = true。
开发计划
- 从数据库自动生成名称。
- 配置、证书、用户备份。
- 无需重新创建的证书续期。
- 到期通知。
- 用于管理的 Telegram 机器人。
关键要点
- 与 easy-rsa 完全集成:生成 .p12、吊销、CRL,无需手动命令。
- 三种授权模式,无需额外基础设施。
- 菜单中的服务器状态,带操作的用户管理中心(踢出、编辑配置)。
- 4 条命令安装,自动 sudo 设置。
- 仅使用标准工具,无 Docker/数据库。
— Editorial Team
暂无评论。