简单的OpenVPN搭建之Linux

举报
工业云大湿兄 发表于 2018/11/09 10:33:35 2018/11/09
【摘要】 通过搭建OpenVPN连接客户线上与线下资源。OpenVPN版本:2.4.6 Linux版

Windows版传送门:https://bbs.huaweicloud.com/blogs/4e061ba1acf111e89fc57ca23e93a89f

image.png

1      准备服务器

1.1      华为云ECS配置

1)创建一台Linux服务器,创建完成后关闭网卡“源/目的检查”

注:本文实际使用的操作系统是redhat7.1centOS可能会略有差异

image.png

2)配置安全组

image.png

添加openvpn相应的端口,入方向,默认协议为UDP,默认端口为1194,建议修改下,不要使用默认端口,比如1129等,后面配置文件需要配置相应的端口。

image.png

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

image.png

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

image.png

cd /usr/share/easy-rsa/3
./easyrsa init-pki

image.png

./easyrsa build-ca

image.png

记住输入的密码(pass phrase),后续签名需要使用。

3.2      Server证书

下面的$EntityName就是给server取个名字,注意前后统一就行,比如都叫server。

cd /usr/share/easy-rsa/3
./easyrsa gen-req $EntityName nopass


image.png

签名证书

./easyrsa sign-req server $EntityName

image.png

生成Diffie-Hellman


./easyrsa gen-dh

最终目录结构如下:

image.png

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


image.png

记录输入的密码,client登录时使用

签名client证书:

cd /usr/share/easy-rsa/3/
./easyrsa import-req /tmp/openvpn/client1/pki/reqs/client1.req client1

image.png

./easyrsa sign-req client client1

image.png

这里输入的制作CA证书时的密码。

客户端证书pki目录如下:

image.png

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/


image.png

客户端需要的文件:

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/


image.png

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

修改启动命令:

image.png

systemctl enable openvpn@server
systemctl start openvpn@server


ifconfig 可以看到多了一个tun0的网卡设备,ip10.8.0.1

image.png

netstat -unlp可以查看监听的端口,我这里没有使用默认的1194端口

image.png

4.2      windows客户端配置

下载链接(需要翻墙,墙内居民请看附件):https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.zip

安装后,将ca.crtclient1.crtclient1.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

 

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200