简单的OpenVPN搭建之Linux
Windows版传送门:https://bbs.huaweicloud.com/blogs/4e061ba1acf111e89fc57ca23e93a89f
1 准备服务器
1.1 华为云ECS配置
(1)创建一台Linux服务器,创建完成后关闭网卡“源/目的检查”
注:本文实际使用的操作系统是redhat7.1,centOS可能会略有差异
(2)配置安全组
添加openvpn相应的端口,入方向,默认协议为UDP,默认端口为1194,建议修改下,不要使用默认端口,比如1129等,后面配置文件需要配置相应的端口。
2 安装
(1) 配置epel源
mkdir /tmp/openvpn cd /tmp/openvpn wget https://repo.huaweicloud.com/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum update
华为云主机源配置,请参考https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0118948562.html
(2) 安装依赖
yum install -y openssl lzo pam easy-rsa
yum源安装openvpn
yum install openvpn
(3) 源码安装openvpn(可选)
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-2.06-8.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-devel-2.06-8.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-minilzo-2.06-8.el7.x86_64.rpm yum update lzo-2.06-8.el7.x86_64.rpm lzo-minilzo-2.06-8.el7.x86_64.rpm yum install lzo-devel-2.06-8.el7.x86_64.rpm yum install -y lz4-devel wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.tar.gz tar -zxvf openvpn-2.4.6.tar.gz cd openvpn-2.4.6 ./configure make make install
默认安装位置:/usr/local/sbin/openvpn
3 配置
3.1 CA证书
查看easy-rsa路径,以3.0版本为例,
whereis easy-rsa
cd /usr/share/easy-rsa/3 ./easyrsa init-pki
./easyrsa build-ca
记住输入的密码(pass phrase),后续签名需要使用。
3.2 Server证书
下面的$EntityName就是给server取个名字,注意前后统一就行,比如都叫server。
cd /usr/share/easy-rsa/3 ./easyrsa gen-req $EntityName nopass
签名证书
./easyrsa sign-req server $EntityName
生成Diffie-Hellman
./easyrsa gen-dh
最终目录结构如下:
3.3 客户端证书
另外创建一个目录用于存放client证书
mkdir -p /tmp/openvpn/client1 cd /tmp/openvpn/client1 /usr/share/easy-rsa/3/easyrsa init-pki /usr/share/easy-rsa/3/easyrsa gen-req client1
记录输入的密码,client登录时使用
签名client证书:
cd /usr/share/easy-rsa/3/ ./easyrsa import-req /tmp/openvpn/client1/pki/reqs/client1.req client1
./easyrsa sign-req client client1
这里输入的制作CA证书时的密码。
客户端证书pki目录如下:
3.4 归档证书
将server证书放在同一个目录下
mkdir /etc/openvpn cp /usr/share/easy-rsa/3/pki/ca.crt /etc/openvpn/ cp /usr/share/easy-rsa/3/pki/private/server.key /etc/openvpn/ cp /usr/share/easy-rsa/3/pki/issued/server.crt /etc/openvpn/ cp /usr/share/easy-rsa/3/pki/dh.pem /etc/openvpn/
客户端需要的文件:
Mkdir /tmp/client1 cp /usr/share/easy-rsa/3/pki/ca.crt /tmp/client1/ cp /usr/share/easy-rsa/3/pki/issued/client1.crt /tmp/client1/ cp /tmp/openvpn/client01/pki/private/client1.key /tmp/client1/
4 配置
4.1 配置服务端
如果没有默认配置文件可以从源码包拷贝一份
cp /tmp/openvpn/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn
vim /etc/openvpn/server.conf 如果是yum源安装则配置路径在这 /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf
注意以下配置项
local xxx.xx.xx.xxx ;云主机私网IP,这里不要填写EIP
port 1194 #需要在安全组开放相应端口,建议不要使用默认值
proto udp #安全组开放协议要与配置相同,默认使用udp
dev tun
ca /etc/openvpn/ca.crt #注意路径要正确
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem #注意文件名要对应
;tls-auth ta.key 0 #注释掉这行
保存配置文件,然后启动服务
service openvpn@server start
源码安装的可能没有启动脚本,可以从源码里面拷贝一份:
cp /tmp/openvpn/openvpn-2.4.6/distro/systemd/openvpn-server@.service.in /usr/lib/systemd/system/openvpn-server.service vim /usr/lib/systemd/system/openvpn-server.service
修改启动命令:
systemctl enable openvpn@server systemctl start openvpn@server
ifconfig 可以看到多了一个tun0的网卡设备,ip是10.8.0.1
netstat -unlp可以查看监听的端口,我这里没有使用默认的1194端口
4.2 windows客户端配置
下载链接(需要翻墙,墙内居民请看附件):https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.zip
安装后,将ca.crt、client1.crt、client1.key拷贝到openvpn安装目录下的config目录下;
然后将安装目录sample-config/client.ovpn拷贝到config目录下,修改以下配置项:
remote 139.159.xxx.xxx 1194 # 填写云主机公网EIP,端口要配置正确,与server相同
….
ca ca.crt
cert client1.crt #文件名对应
key client1.key
…
;tls-auth ta.key 1 #注释掉
然后打开./bin/openvpn-gui.exe,输入制作client证书时输入的密码即可连接成功
打开cmd,尝试ping云主机vpn ip测试: ping 10.8.0.1
5 参考
(1) https://openvpn.net/community-resources/installing-openvpn/
(2) https://openvpn.net/community-resources/how-to/#pki
(3) https://github.com/OpenVPN/easy-rsa/blob/v3.0.6/README.quickstart.md
- 点赞
- 收藏
- 关注作者
评论(0)