- 安装 openssl 依赖
yum -y install openssl openssl-devel - 安装 lzo 依赖
yum -y install lzo - 安装 openvpn 以及加密工具
yum -y install openvpn easy-rsa - 拷贝证书密钥生成工具
cp -r /usr/share/easy-rsa/ /etc/openvpn/ - 修改vars证书信息
将证书内容修改为以下信息(用户根据自己的信息填写)cd /etc/openvpn/easy-rsa/2.*/ && vim varsexport KEY_COUNTRY="CN" export KEY_PROVINCE="BeiJing" export KEY_CITY="TongZhou" export KEY_ORG="IOI6" export KEY_EMAIL="vpn@ioi6.com" export KEY_OU="IOI6"KEY_COUNTRY:标明国家简介编码
KEY_PROVINCE:标明所在国家省份
KEY_CITY:标明所在国家城市
KEY_ORG:标明组织
KEY_EMAIL:标明邮箱信息
KEY_OU:标明单位信息(于KEY_ORG相同)
- 检查加密信息配置
查看以下信息的准确性,如果不准确,请修改cd /etc/openvpn/easy-rsa/2.*/ && vim varsexport KEY_SIZE=2048 export CA_EXPIRE=3650 export KEY_EXPIRE=3650 export KEY_NAME="EasyRSA" - 初始化环境
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keyscd /etc/openvpn/easy-rsa/2.*/ && rm -rf keys && source vars
出现以上NOTE, 可以忽略 - 清除keys目录下所有与证书相关的文件
./clean-all - 生成根(ca)证书
cd /etc/openvpn/easy-rsa/2.*/ && ./build-ca - 生成服务端证书及密钥
一直回车,出现两次输入 y/n 时,输入 y 回车即可cd /etc/openvpn/easy-rsa/2.*/ && ./build-key-server server - 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
cd /etc/openvpn/easy-rsa/2.*/ && ./build-dh - 生成 ta (防DDos攻击、UDP淹没等恶意攻击)
至此,所有生成的证书和密钥均位于/etc/openvpn/easy-rsa/2.*/keysopenvpn --genkey --secret /etc/openvpn/easy-rsa/2.*/keys/ta.key - 配置服务端 server.conf
在文件中输入以下内容:vim /etc/openvpn/server.conf# 如果主机是阿里云的 ECS,需要绑定ECS的外网地址 (使用ifconfig查看eth1网卡对应的IP) local 阿里云ECS外网IP # VPN 监听的端口 port 443 # VPN 使用的协议, client和server必需一致 proto udp dev tap # VPN认证相关文件 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem # VPN 地址(即连接VPN产生的IP地址) server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /data/openvpn/ip/ipp.txt # 重要:在阿里云中为保证连接VPN后可以正常访问 10.12.1.* 网段的机器需要将该网段推送到客户端去 push "route 10.12.1.0 255.255.255.0" client-to-client duplicate-cn keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 0 comp-lzo persist-key persist-tun # VPN日志文件 status /data/openvpn/log/openvpn-status.log log-append /data/openvpn/log/openvpn.log verb 5 - 创建相应的文件夹
mkdir -p /data/openvpn/ip /data/openvpn/log - 启动OpenVPN服务
systemctl start openvpn@server - 开启路由转发并使其生效
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf && sysctl -p - 配置防火墙
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 10.162.xxx.xxx service iptables save10.8.0.0: 地址为 server.conf 配置文件中的地址
10.162.xxx.xxx是阿里ECS的内网地址(ifconfig eth0)
- 重启OpenVPN服务
systemctl restart openvpn@server - 生成客户端证书
每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接。cd /etc/openvpn/easy-rsa/2.*/ && ./build-key shichengshicheng: 客户端文件名称,随意填写。
将服务端生成的以下文件
ca.crt 服务器认证文件
shicheng.crt 客户端生成的文件
shicheng.key 客户端生成的文件
ta.key 防止ddos攻击生成文件
拷贝到需要连接vpn的机器上
- 配置客户端编写 shicheng.ovpn (*.vopn随便填写)
将文件保存为 *.vopn 文件即可client # 此处必须要和服务端一致,否则无法连接 proto udp dev tap # 远程OpenVPN服务器地址及端口,以空格隔开 remote x.x.x.x xxx resolv-retry infinite nobind persist-key persist-tun # 以下几个文件为服务器拷贝下来的文件,需和客户端配置文件在同一目录,如果不在同一目录请写绝对文件路径 ca ca.crt cert shicheng.crt key shicheng.key tls-auth ta.key 1 ns-cert-type server comp-lzo verb 5
CentOS7安装部署OpenVPN
原文链接:
www.edurt.com