安装包和依赖
安装软件依赖
apt-get install openssl libssl-dev
apt-get install lzop
安装OpenVPN
和Easy-RSA
apt install openvpn
apt install easy-rsa
检查OpenVPN
版本:openvpn --version
版本情况:Version 2.4.7
检查Easy-RSA
版本:dpkg --list easy-rsa
Easy-RSA
版本情况:Version 3.0.6-1
初始化环境变量
创建Easy-RSA
工作目录。
cd /etc/openvpn
cp -r /usr/share/easy-rsa/ ./
cd easy-rsa
通过模板复制配置文件。
cp vars.example vars
编辑并初始化环境变量。
vim vars
修改如下信息
set_var EASYRSA_REQ_COUNTRY [国家] set_var EASYRSA_REQ_PROVINCE[省份]set_var EASYRSA_REQ_CITY[城市]set_var EASYRSA_REQ_ORG [组织]set_var EASYRSA_REQ_EMAIL [邮箱]set_var EASYRSA_REQ_OU [用户名]
生成服务器证书和密钥
在当前目录创建PKI
目录,用于存储中间变量及最终生成的证书。
./easyrsa init-pki
创建根证书。
./easyrsa build-ca
创建服务器端证书和密钥。
./easyrsa gen-req server nopass
通过CA
为服务器端证书做签名。
./easyrsa sign server server
创建Diffie-Hellman
密钥。
./easyrsa gen-dh
生成客户端证书和密钥
将Easy-RSA
文件夹拷贝一份到client
文件夹,并删除PKI
目录。
cd /etc/openvpn/client/
cp -r /usr/share/easy-rsa/ ./
cd /client/easy-rsa/
通过模板复制配置文件
cp vars.example vars
编辑并初始化环境变量。
vim vars
修改如下信息
set_var EASYRSA_REQ_COUNTRY [国家] set_var EASYRSA_REQ_PROVINCE[省份]set_var EASYRSA_REQ_CITY[城市]set_var EASYRSA_REQ_ORG [组织]set_var EASYRSA_REQ_EMAIL [邮箱]set_var EASYRSA_REQ_OU [用户名]
在当前目录创建一个新的PKI
目录,用于存储中间变量及最终生成的证书。
./easyrsa init-pki
创建客户端证书及密钥。
./easyrsa gen-req client1 nopass
返回制作服务器端证书的目录,导入客户端证书,准备签名
cd /etc/openvpn/easy-rsa
./easyrsa import-req /etc/openvpn/client/easy-rsa/pki/reqs/client1.req client1
为客户端证书做签名。
./easyrsa sign client client1
服务器端配置文件server.conf
在openvpn
的配置目录下新建一个keys目录。
mkdir -p /etc/openvpn/keys
将需要用到的证书和密钥复制一份到刚创建好的keys目录中。
cp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem} /etc/openvpn/keys/
cp /etc/openvpn/easy-rsa/pki/reqs/server.req /etc/openvpn/keys/
cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/keys/
复制服务器端配置文件模板server.conf
到/etc/openvpn/
目录中。
gzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
编辑server.conf
配置文件。
vim server.conf
# 服务端口port 1194# 使用的传输协议proto tcp# 路由模式,桥接模式用dev tapdev tun# 证书路径ca keys/ca.crtcert keys/server.crtkey keys/server.keydh keys/dh.pem# 默认虚拟局域网网段,不要和实际的局域网冲突即可server 10.8.0.0 255.255.255.0ifconfig-pool-persist /var/log/openvpn/ipp.txt# 192.168.1.0 是OpenVPN服务器所在在局域网的网段push "route 192.168.3.0 255.255.255.0"# 如果客户端都使用相同的证书和密钥连接VPN,必须打开这个选项,否则每个证书只允许一个人连接VPNduplicate-cnkeepalive 10 120# 允许连接的客户端最大数量max-clients 100comp-lzopersist-keypersist-tun# OpenVPN的状态日志、运行日志status /var/log/openvpn/openvpn-status.loglog /var/log/openvpn/openvpn.loglog-append /var/log/openvpn/openvpn.logverb 5# 如果配置传输方式为TCP, 则此处应该注释掉,否则会产生冲突;explicit-exit-notify 1
配置服务器路由和防火墙
开启路由转发功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
配置防火墙。
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
设置客户端的包以NAT
方式访问外网。
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
安装iptables-persistent,用于保存iptables规则并设置开机自动加载。
apt-get install iptables-persistent
保存iptables
规则。
service netfilter-persistent save
关闭ufw
防火墙。
ufw disable
启动OpenVPN
并设置为开机启动。
/etc/init.d/openvpn start
systemctl enable openvpn@server
windows11
客户端设置
下载openvpn-install-2.4.8-I602-Win10.exe
(点击下载)
openvpn-install-2.4.8-I602-Win10.exe
安装目录下的config
目录复制如下文件
说明:从服务器下载文件到本地方法如下,在windows
cmd
下输入:
scp -r root@[服务器公网ip]:[目录-服务器] [目录-本机]
点击启动OpenVPN
连接
参考
[1] 华为云-搭建OpenVPN服务器(Ubuntu 20.04):/bestpractice-ecs/ecs_bp_0034.html
[2] ubuntu 远程服务器文件与本地文件的上传与下载:/Iv_zzy/article/details/109412198
[3] win10搭建openvpn以及使用:/lmx1989219/article/details/104259815