企业内网远程接入网关
·
一、环境准备
- 一台具备公网IP的Linux服务器(用于企业内网远程接入、运维管理,仅作内部业务访问,严格遵守网络安全规范)
- 服务器已部署稳定Docker运行环境,保障容器正常调度运行
- 放行对应访问端口:本次使用TCP 2024,需要在云服务商安全组、系统防火墙同时开放TCP 2024端口
二、创建持久化数据目录
配置、证书、日志统一存宿主机本地目录,不使用docker虚拟卷,方便备份管理
mkdir -p /data/intranet-gateway/data
mkdir -p /data/intranet-gateway/data/log
三、生成基础服务配置
通过容器执行初始化命令,把下方你的公网IP替换为服务器真实公网地址
docker run -v /data/intranet-gateway/data:/etc/gateway \
--rm kylemanna/openvpn \
ovpn_genconfig -u tcp://你的公网IP:2024
说明:服务采用TCP 2024作为通信端口,适配企业办公网络环境;可根据需求更换端口。
四、初始化证书签发体系
整套接入服务依靠SSL双向证书完成身份校验,执行命令初始化证书仓库
docker run -v /data/intranet-gateway/data:/etc/gateway \
--rm -it kylemanna/openvpn \
ovpn_initpki
执行过程中设置根证书密码,务必妥善保存,后续新增、吊销接入账号都需要该密码;交互提示直接回车使用默认参数即可。
💡优化建议:测试环境可使用
ovpn_initpki nopass无密码模式,避免每次操作证书需要输入密码,适合自动化管理。
五、启动内网接入网关容器
docker run -d \
--name intranet-gateway \
--cap-add=NET_ADMIN \
-p 2024:1194/tcp \
-v /data/intranet-gateway/data:/etc/gateway \
-v /data/intranet-gateway/data/log:/var/log \
--restart unless-stopped \
kylemanna/openvpn
参数说明:
--cap-add=NET_ADMIN:授予网络权限,用于建立内网隧道、路由转发--restart unless-stopped:服务器重启后自动恢复服务,人为停止后不自动拉起
六、创建员工接入账号与配置文件
每一位运维/办公人员独立一套证书,实现一人一账号,离职可单独吊销权限
# 创建接入账号(示例账号:staff01)
docker run -v /data/intranet-gateway/data:/etc/gateway \
--rm -it kylemanna/openvpn \
easyrsa build-client-full staff01 nopass
# 导出接入配置文件,保存至宿主机/data目录
docker run -v /data/intranet-gateway/data:/etc/gateway \
--rm kylemanna/openvpn \
ovpn_getclient staff01 > /data/staff01.ovpn
staff01为自定义账号名称,按员工名、工位编号区分;.ovpn文件下发给对应人员,本地客户端导入使用。
七、本地客户端接入指南(Windows/macOS/Android/iOS通用)
- 客户端软件:OpenVPN Connect(官方正规客户端,仅用于企业内网远程访问)
- 获取地址:OpenVPN官网下载对应系统安装包
- 使用流程:安装客户端 → 导入管理员下发的
.ovpn配置文件 → 建立隧道,访问企业内网服务器、业务系统
八、日常运维常用命令
# 实时查看网关运行日志,排查接入异常
docker logs -f intranet-gateway
# 修改配置后,重启网关生效
docker restart intranet-gateway
# 新增接入账号(示例:staff02)
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa build-client-full staff02 nopass
docker run -v /data/intranet-gateway/data:/etc/gateway --rm kylemanna/openvpn ovpn_getclient staff02 > /data/staff02.ovpn
# 停止并删除容器(配置文件保留,可重新启动)
docker stop intranet-gateway && docker rm intranet-gateway
员工账号吊销(离职人员回收权限)
read -p "输入需要吊销的账号名称: " DNAME
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa revoke $DNAME
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa gen-crl
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn rm -f /etc/gateway/pki/reqs/"$DNAME".req
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn rm -f /etc/gateway/pki/private/"$DNAME".key
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn rm -f /etc/gateway/pki/issued/"$DNAME".crt
docker restart intranet-gateway
九、证书有效期管理方案
1. 查看证书过期时间
# 查看网关服务证书有效期
openssl x509 -in /data/intranet-gateway/data/pki/issued/server.crt -noout -dates
# 查看根证书有效期(根证书过期影响全部账号)
openssl x509 -in /data/intranet-gateway/data/pki/ca.crt -noout -dates
# 查看员工接入证书有效期(替换staff01为账号名)
openssl x509 -in /data/intranet-gateway/data/pki/issued/staff01.crt -noout -dates
2. 仅网关服务证书过期(无需重建整套体系)
# 备份旧证书
cd /data/intranet-gateway/data/pki/
mv issued/server.crt issued/server.crt.bak
mv private/server.key private/server.key.bak
mv reqs/server.req reqs/server.req.bak
# 重新生成网关服务证书
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa build-server-full server nopass
# 重启网关加载新证书
docker restart intranet-gateway
3. 根证书过期(完整重建证书体系,所有员工需要重新获取配置)
# 备份旧全套证书配置
mv /data/intranet-gateway/data /data/intranet-gateway/data.bak
# 重新初始化证书体系
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn ovpn_initpki
# 生成网关服务证书
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa build-server-full server nopass
# 重启服务
docker restart intranet-gateway
# 重新为员工生成接入配置(示例staff01)
docker run -v /data/intranet-gateway/data:/etc/gateway --rm -it kylemanna/openvpn easyrsa build-client-full staff01 nopass
docker run -v /data/intranet-gateway/data:/etc/gateway --rm kylemanna/openvpn ovpn_getclient staff01 > /data/staff01_new.ovpn
更多推荐

所有评论(0)