阿里云centos上搭建openvpn

本文概要说明 CentOS 系统下的 OpenVPN 配置。

说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。

OpenVPN 配置


准备工作

1.  使用 工具:update_source.sh 更新 yum 源为阿里云的内网 yum源。 

2. 安装依赖的软件包:

  1. bash
  2. yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
  3. yum install -y pkcs11-helper pkcs11-helper-devel

确认已经安装完成:

  1. bash
  2. rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

1-rpm.jpg  

安装 OpenVPN 服务

1. 下载 openvpn 的源码包

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

2. 使用 rpmbuild 将源码包编译成rpm包来进行安装

  1. rpmbuild -tb openvpn-2.2.2.tar.gz

执行这条命令以后就会正常开始编译了,编译完成以后会在 /root/rpmbuild/RPMS/x86_64 目录下生成 openvpn-2.2.2-1.x86_64.rpm 安装包。

3.  执行rpm -ivh openvpn-2.2.2-1.x86_64.rpm 以rpm包的方式安装:

2-狿瀀洀.jpg  

配置 OpenVPN 服务(服务端)

1. 初始化 PKI

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

进入到 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0 目录下,找到 vars 证书环境文件,修改以下几行 export 定义的参数值  

  1. bash
  2. exportKEY_COUNTRY="CN" 所在的国家
  3. export KEY_PROVINCE="BJ" 所在的省份
  4. exportKEY_CITY="Hangzhou" 所在的城市
  5. exportKEY_ORG="aliyun" 所属的组织
  6. export KEY_EMAIL=my@test.com 邮件地址

上述参数的值可以自定义设置,对配置无影响。  

2. 生成服务端的证书:

清除并删除 keys 目录下的所有 key 

  1. bash
  2. ln -s openssl-1.0.0.cnf openssl.cnf 做个软链接到openssl-1.0.0.cnf配置文件
  3. source ./vars
  4. ./clean-all

生成 CA 证书,刚刚已经在 vars 文件中配置了默认参数值,多次回车完成就可以  :

  1. ./build-ca

3-buledca.jpg 

生成服务器证书,其中 aliyuntest 是自定义的名字,一直回车,到最后会有两次交互,输入 y 确认,完成后会在 keys 目录下保存了 aliyuntest.key、aliyuntest.csr 和 aliyuntest.crt 三个文件。 

  1. ./build-key-server aliyuntest

4-秿.jpg

3. 创建用户秘钥与证书 

  1. ./build-key aliyunuser

创建用户名为 aliyunuser 的秘钥和证书,一直回车,到最后会有两次确认,只要按y确认即可。完成后,在 keys 目录下生成 1024 位 RSA 服务器密钥 aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr 三个文件。

4. 生成 Diffie Hellman参 数 

  1. ./build-dh

执行了./build-dh后,会在 keys 目录下生成 dh 参数文件 dh1024.pem。该文件客户端验证的时候会用到。  

5. 将 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 目录下的所有文件复制到 /etc/openvpn下:

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

6. 复制 openvpn 服务端配置文件 server.conf 到 /etc/openvpn/ 目录下:

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

7. server.conf 配置

配置完成后的内容如下:

  1. bash
  2. $ egrep -v "^$|^#|^;" server.conf
  3. local 1.1.1.1 此处请填写用户自己的云服务器的公网IP地址
  4. port 1194
  5. proto udp
  6. dev tun
  7. ca ca.crt
  8. cert aliyuntest.crt 此处crt以及下一行的key,请填写生成服务器端证书时用户自定义的名称
  9. key aliyuntest.key
  10. dh dh1024.pem
  11. server 172.16.0.0 255.255.255.0
  12. ifconfig-pool-persist ipp.txt
  13. push "redirect-gateway def1 bypass-dhcp"
  14. push "dhcp-option DNS 223.5.5.5"
  15. client-to-client
  16. keepalive 10 120
  17. comp-lzo
  18. user nobody
  19. group nobody
  20. persist-key
  21. persist-tun
  22. status openvpn-status.log
  23. log openvpn.log
  24. verb 3

0.jpg

8. 设置 iptables

设置前请确保 iptables 已经开启,而且 /etc/sysconfig/iptables 文件已存在。然后开启转发:

  1. vi /etc/sysctl.conf

修改以下内容:

  1. net.ipv4.ip_forward = 1

然后使内核参数生效:

  1. sysctl -p

添加 iptables 规则确保服务器可以转发数据包到阿里云内外网:

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

保存 iptables 配置:

  1. service iptables save

启动 OpenVPN

  1. /etc/init.d/openvpn start

通过 netstat -ano | grep 1194 查看 1194 端口在监听,确保 openvpn 在运行中。

Windows PC 客户端的配置 


1.下载 openvpn 客户端

2. 安装:Windows系统下安装,按照默认设置安装完成。

3. 将云服务器中 /etc/openvpn/ 目录下的 aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr 三个文件下载到需要连接 openvpn 的 Windows 客户端上(可以使用 ftp 工具下载)。

保存路径为 openvpn 软件的安装路径下的 \OpenVPN\config 目录。

4. 配置 client.opvn 

将 openvpn 安装路径下的 \OpenVPN\sample-config\ 目录中下的 client.opvn 复制到 openvpn 安装路径下的 \OpenVPN\config 目录,然后修配置文件中的如下参数; 

  1. bash
  2. proto udp 去掉前面的分号,采用与服务器端相同的udp协议
  3. remote 1.1.1.1 1194 此处将1.1.1.1修改为用户的云服务器的公网IP地址,同时将该行前面的注释分号去掉
  4. cert aliyunuser.crt
  5. key aliyunuser.key

5. 到 C:\Program Files (x86)\OpenVPN\bin 目录下,找到 openvpn-gui-1.0.3.exe 文件,右键选择以管理员权限运行(避免普通用户运行导致添加路由失败):

8-.jpg

6. 连接成功后,通过访问阿里云的内网镜像源 http://mirrors.aliyuncs.com/ 确认可以通过 openvpn 访问阿里云内网:

7-.jpg

同时访问 ip.cn,可以查看到此时 Windows PC 端的出口公网 IP 已经变为了云服务器的公网 IP 地址:

6-ipcn.jpg

 

猜你喜欢

转载自www.cnblogs.com/yinwutuan/p/8856046.html