Bootstrap

容器搭建OpenVPN服务

背景

临近年关长假,因为我们办公网络与内网为同段网段,入职前公司也没有搭建过类似服务现在需要运维人员居家值班,老大想用深信服的EasyConnect产品可了解后需要购买硬件,时间不够,暂时就选择OpenVPN

安装部署Docker

参考我另外一篇文章,脚本一键安装Docker

Shell脚本一键部署Docker(包含内网环境)_shell执行 docker-CSDN博客

拉取OpenVPN镜像
docker pull chenji1506/openvpn:2.4.8
创建挂载目录
mkdir -pv /data/openvpn/conf
查看本机公网IP地址

方式有很多,可以直接在路由器管理页面查看也可以用下面的命令

curl icanhazip.com
10.45.21.167
生成配置文件

注意更改为你的公网IP地址

docker run -v /data/openvpn:/etc/openvpn --rm chenji1506/openvpn:2.4.8 ovpn_genconfig -u udp://1.1.1.1
生产密钥文件

密钥密码一定要记住

docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 ovpn_initpki
根据回显输入按照下面顺序
										1. 输入私钥密码
							            2. 重新输入一次密码
			                            3. 输入一个CA名称
			                            4. 输入刚才设置的私钥密码
生成客户端证书文件
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 easyrsa build-client-full 用户名 nopass


Enter pass phrase for /etc/openvpn/pki/private/ca.key: passwd		# 输入密钥密码
导出客户端配置
docker run -v /data/openvpn:/etc/openvpn --rm chenji1506/openvpn:2.4.8 ovpn_getclient chenji > /data/openvpn/conf/用户名.ovpn
启动OpenVPN容器
docker run --name openvpn -v /data/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN chenji1506/openvpn:2.4.8

OpenVPN用户管理

#!/bin/bash
#创建用户脚本
read -p "please your username: " NAME
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 easyrsa build-client-full $NAME nopass
docker run -v /data/openvpn:/etc/openvpn --rm chenji1506/openvpn:2.4.8 ovpn_getclient $NAME > /data/openvpn/conf/"$NAME".ovpn
docker restart openvpn


#!/bin/bash
#删除用户脚本
read -p "Delete username: " DNAME
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 easyrsa revoke $DNAME
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 easyrsa gen-crl
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 rm -f /etc/openvpn/pki/reqs/"DNAME".req
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 rm -f /etc/openvpn/pki/private/"DNAME".key
docker run -v /data/openvpn:/etc/openvpn --rm -it chenji1506/openvpn:2.4.8 rm -f /etc/openvpn/pki/issued/"DNAME".crt
docker restart openvpn
添加用户
./add_user.sh	# 输入要添加的用户名,回车后输入刚才创建的私钥密码

创建的用户证书在/data/openvpn/conf/目录下

配置端口映射

根据自己路由器方法进行配置

安装OpenVPN客户端

官网地址:Community Downloads - Open Source VPN | OpenVPN

根据指引安装

导入ovpn文件

用winscp或者其他方式将你创建的客户端证书下载出来

在将ovpn文件拖入下图

配置成功后,在其他网络中也可成功连接到服务器以及数据库

感谢以下文章作者提供的镜像与用户管理脚本

docker部署openvpn-腾讯云开发者社区-腾讯云 (tencent.com)