您的位置 首页 网站建设

在CentOS系统的ECS实例中配置OpenVPN

一、准备工作

在安装OpenVPN服务前,请确保完成如下准备工作。

1、请参考如下文档,将YUM源更新为阿里云的YUM源。

如何通过工具自动更新Linux实例中的软件源

2、依次执行如下命令,安装依赖的软件包。

yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel

yum install -y pkcs11-helper pkcs11-helper-devel

3、执行如下命令,确认软件包已经安装成功。

rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

系统显示类似如下

01.png

二、装OpenVPN服务

1、执行如下命令,下载OpenVPN的源码包。

wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz

2、执行如下命令,将源码包编译成RPM包进行安装。

rpmbuild -tb openvpn-2.2.2.tar.gz

注:执行命令后即开始编译,编译完成后,>/root/rpmbuild/RPMS/x86_64目录下会生成名为“openvpn-2.2.2-1.x86_64.rpm” 的安装包。

3、执行如下命令,以RPM包的格式进行安装。

rpm -ivh openvpn-2.2.2-1.x86_64.rpm

系统显示类似如下

02.png

三、配置OpenVPN服务 

初始化

1、执行如下命令,进入指定目录。找到vars证书环境文件,修改以下5行export定义的参数值。

cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0

2、编辑vars证书环境文件,修改如下5行环境变量定义的参数值,保存并退出。

export KEY_COUNTRY="CN" 

export KEY_PROVINCE="BJ" 

export KEY_CITY="Hangzhou" 

export KEY_ORG="aliyun"

export KEY_EMAIL=my@test.com

注:

“KEY_COUNTRY”为所在的国家。

“KEY_PROVINCE”为所在的省份。

“KEY_CITY”为所在的城市。

“KEY_ORG”为所属的组织。

“KEY_EMAIL”为邮件地址。

您可以对上述参数的值进行自定义设置,不会导致OpenVPN配置出现异常。

生成证书、密钥和参数文件

1、执行如下命令,创建软链接。

ln -s openssl-1.0.0.cnf openssl.cnf

2、执行如下命令,读取并加载vars文件。

source ./vars

3、执行如下命令,清除目录下的所有key。

./clean-all

4、执行如下命令,生成CA证书。您已经在vars证书环境文件中配置了默认参数值,在本步骤中连续输入回车确认,完成配置即可。

./build-ca

5、执行如下命令,生成服务器证书,其中aliyuntest是自定义的名字,连续输入回车确认,最后会有两次交互,输入y确认。完成后,目录下会生成aliyuntest.key、aliyuntest.csr和aliyuntest.crt三个文件。

./build-key-server aliyuntest

系统显示类似如下

03.png

6、执行如下命令,创建秘钥与证书,其中aliyunuser是用户名,连续输入回车确认,最后会有两次交互,输入y确认。完成后,目录下会生成1024位RSA服务器密钥aliyunuser.key、aliyunuser.crt和aliyunuser.csr三个文件。

./build-key aliyunuser

7、执行如下命令,生成用于客户端验证的Diffie Hellman参数,完成后,目录下会生成1024.pem参数文件。

./bulid-dh

复制证书、密钥和参数文件

1、执行如下命令,将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys目录中的所有文件复制到/etc/openvpn目录中。

cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/

2、执行如下命令,将OpenVPN服务端配置文件server.conf复制到/etc/openvpn/目录中。

cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf  /etc/openvpn/

3、配置完成后,执行如下命令,查看配置文件。

egrep -v "^$|^#|^;" server.conf

配置文件内容如下所示

local [$IP]

port 1194

proto udp

dev tun

ca ca.crt

cert [$CRT_Name]

key [$Key_Name] 

dh dh1024.pem

server 172.16.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 223.5.5.5"

client-to-client

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status openvpn-status.log

log openvpn.log

verb 3

注:

[$IP]为云服务器的公网IP地址。

[$CRT_Name]为生成服务器端证书时自定义的额CRT名称。

[$Key_Name]为生成服务器证书时自定义的KEY的名称。

设置防火墙

注:设置防火墙前,请确保iptables服务已经开启,且/etc/sysconfig/iptables文件已经存在。

1、执行如下命令,编辑配置文件。

vi /etc/sysctl.conf

2、修改成如下参数,启用IPv4转发,然后保存并退出。

net.ipv4.ip_forward = 1

3、执行如下命令,加载系统参数。

sysctl -p

4、添加如下iptables规则,确保服务器可以转发数据包到阿里云内网和外网。

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE

5、执行如下命令,保存iptables配置。

 service iptables save

配置Windows PC客户端

1、下载如下Windows PC客户端。

Windows PC客户端

2、执行Windows PC客户端安装程序,按照默认设置安装完成。

3、将云服务器中/etc/openvpn/目录下的aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr三个文件下载到需要连接OpenVPN的 Windows PC 客户端上(可以使用FTP工具下载),保存路径为OpenVPN安装路径下的\OpenVPN\config目录。

4、在OpenVPN安装路径下,将\OpenVPN\sample-config\目录下的client.opvn复制到\OpenVPN\config目录下,然后修改配置文件中的以下参数

proto udp   

remote [$IP] 1194

cert aliyunuser.crt

key aliyunuser.key

注:> - “proto udp”字段中,需删除前面的注释分号,采用UDP协议,与服务器端保持一致。

“remote [$IP] 1194”字段中,需删除该行前面的注释分号。

5、打开C:\Program Files(x86)\OpenVPN\bin目录,右键单击openvpn-gui-1.0.3.exe文件,选择 以管理员身份运行,避免导致添加路由失败。

04.png

6、连接成功后,访问阿里云的内网镜像源,确认可以通过OpenVPN访问阿里云内网。

05.png

7、然后访问“ip.cn”,可以看到此时Windows PC端的出口公网IP地址已经变为云服务器的公网IP地址。

06.png

来源链接:https://developer.aliyun.com/article/748719
免责声明:本文由静落凝封整理发布,版权归原作者所有,转载请注明出处,如有侵权请联系管理员删除

热门文章

Linux中升级更新命令yum update和yum upgrade的区别

Linux中升级更新命令yum update和yum upgrade的区别

Linux中升级更新命令yum update和yum upgrade的区别,yum -y update:升级所有包同时也升级软件和系统内核;yum -y upgrade:只升级所有包,不升级软件和系统内核。...

网页中文简体繁体转换JS代码

网页中文简体繁体转换JS代码

要在网页上实现中文简体和繁体之间的转换,可以使用JavaScript库,以下是我在网络上收集整理的网页中文简体繁体转换JS代码,供收藏,以备用。代码有点多,就不直接贴代码了,自行下载测试哈...

通过脚本文件自动更新Linux实例中的软件源

通过脚本文件自动更新Linux实例中的软件源

本文主要介绍通过脚本文件更新Linux实例中的软件源的方法。如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。如果您对实例等进行配置与数据修改,建...

在CentOS系统的ECS实例中配置OpenVPN

在CentOS系统的ECS实例中配置OpenVPN

在安装OpenVPN服务前,请确保完成如下准备工作。请参考如下文档,将YUM源更新为阿里云的YUM源。如何通过工具自动更新Linux实例中的软件源。依次执行如下命令,安装依赖的软件包。yum instal...

Linux 自动注销设置 TMOUT

Linux 自动注销设置 TMOUT

对所有用户设置自动注销功能:首先,以root用户登录系统,输入 vi /etc/profile 命令,编辑profile文件。查找TMOUT,若没有,则可以在文件最后添加如下语句:TMOUT=300 export TOMOUT 如果查...