本文概要说明 CentOS 系统下的 OpenVPN 配置。
说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。
OpenVPN 配置
-
准备工作
-
安装 OpenVPN 服务
-
配置 OpenVPN 服务(服务端)
-
启动 OpenVPN
准备工作
1. 使用 工具:update_source.sh 更新 yum 源为阿里云的内网 yum源。
2. 安装依赖的软件包:
bashyum install -y lzo lzo-devel openssl openssl-devel pam pam-devel yum install -y pkcs11-helper pkcs11-helper-devel
确认已经安装完成:
bashrpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel
安装 OpenVPN 服务
1. 下载 openvpn 的源码包
wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz
2. 使用 rpmbuild 将源码包编译成rpm包来进行安装
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包的方式安装:
配置 OpenVPN 服务(服务端)
1. 初始化 PKI
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 定义的参数值
bashexportKEY_COUNTRY="CN" 所在的国家export KEY_PROVINCE="BJ" 所在的省份exportKEY_CITY="Hangzhou" 所在的城市exportKEY_ORG="aliyun" 所属的组织 export KEY_EMAIL=my@test.com 邮件地址
上述参数的值可以自定义设置,对配置无影响。
2. 生成服务端的证书:
清除并删除 keys 目录下的所有 key
bashln -s openssl-1.0.0.cnf openssl.cnf 做个软链接到openssl-1.0.0.cnf配置文件 source ./vars./clean-all
生成 CA 证书,刚刚已经在 vars 文件中配置了默认参数值,多次回车完成就可以 :
./build-ca
生成服务器证书,其中 aliyuntest 是自定义的名字,一直回车,到最后会有两次交互,输入 y 确认,完成后会在 keys 目录下保存了 aliyuntest.key、aliyuntest.csr 和 aliyuntest.crt 三个文件。
./build-key-server aliyuntest
3. 创建用户秘钥与证书
./build-key aliyunuser
创建用户名为 aliyunuser 的秘钥和证书,一直回车,到最后会有两次确认,只要按y确认即可。完成后,在 keys 目录下生成 1024 位 RSA 服务器密钥 aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr 三个文件。
4. 生成 Diffie Hellman参 数
./build-dh
执行了./build-dh后,会在 keys 目录下生成 dh 参数文件 dh1024.pem。该文件客户端验证的时候会用到。
5. 将 /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/
6. 复制 openvpn 服务端配置文件 server.conf 到 /etc/openvpn/ 目录下:
cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/
7. server.conf 配置
配置完成后的内容如下:
bash$ egrep -v "^$|^#|^;" server.conflocal 1.1.1.1 此处请填写用户自己的云服务器的公网IP地址port 1194proto udpdev tunca ca.crtcert aliyuntest.crt 此处crt以及下一行的key,请填写生成服务器端证书时用户自定义的名称key aliyuntest.key dh dh1024.pemserver 172.16.0.0 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 223.5.5.5" client-to-clientkeepalive 10 120comp-lzouser nobodygroup nobodypersist-keypersist-tunstatus openvpn-status.loglog openvpn.logverb 3
8. 设置 iptables
设置前请确保 iptables 已经开启,而且 /etc/sysconfig/iptables 文件已存在。然后开启转发:
vi /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
然后使内核参数生效:
sysctl -p
添加 iptables 规则确保服务器可以转发数据包到阿里云内外网:
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
保存 iptables 配置:
service iptables save
启动 OpenVPN
/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 或者 xftp 工具下载)。
保存路径为 openvpn 软件的安装路径下的 \OpenVPN\config 目录。
4. 配置 client.opvn
将 openvpn 安装路径下的 \OpenVPN\sample-config\ 目录中下的 client.opvn 复制到 openvpn 安装路径下的 \OpenVPN\config 目录,然后修配置文件中的如下参数;
bashproto udp 去掉前面的分号,采用与服务器端相同的udp协议 remote 1.1.1.1 1194 此处将1.1.1.1修改为用户的云服务器的公网IP地址,同时将该行前面的注释分号去掉cert aliyunuser.crt key aliyunuser.key
5. 到 C:\Program Files (x86)\OpenVPN\bin 目录下,找到 openvpn-gui-1.0.3.exe 文件,右键选择以管理员权限运行(避免普通用户运行导致添加路由失败):
6. 连接成功后,通过访问阿里云的内网镜像源 http://mirrors.aliyuncs.com/ 确认可以通过 openvpn 访问阿里云内网:
同时访问 ip.cn,可以查看到此时 Windows PC 端的出口公网 IP 已经变为了云服务器的公网 IP 地址:
以上就是关于Linux CentOS OpenVPN配置概述的具体介绍的详细内容,更多请关注学派吧其它相关文章!