OpenVPN安装部署
- 安装 openssl 依赖
yum -y install openssl openssl-devel
- 安装 lzo 依赖
yum -y install lzo
- 安装 openvpn 以及加密工具
yum -y install openvpn easy-rsa
OpenVPN 服务配置
- 拷贝证书密钥生成工具
cp -r /usr/share/easy-rsa/ /etc/openvpn/
- 修改vars证书信息
cd /etc/openvpn/easy-rsa/2.*/ && vim vars
将证书内容修改为以下信息(用户根据自己的信息填写)
export 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 vars
查看以下信息的准确性,如果不准确,请修改
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_NAME="EasyRSA"
- 初始化环境
cd /etc/openvpn/easy-rsa/2.*/ && rm -rf keys && source vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
出现以上NOTE, 可以忽略
- 清除keys目录下所有与证书相关的文件
./clean-all
- 生成根(ca)证书
cd /etc/openvpn/easy-rsa/2.*/ && ./build-ca
- 生成服务端证书及密钥
cd /etc/openvpn/easy-rsa/2.*/ && ./build-key-server server
一直回车,出现两次输入 y/n 时,输入 y 回车即可
- 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它
cd /etc/openvpn/easy-rsa/2.*/ && ./build-dh
- 生成 ta (防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret /etc/openvpn/easy-rsa/2.*/keys/ta.key
至此,所有生成的证书和密钥均位于/etc/openvpn/easy-rsa/2.*/keys
- 配置服务端 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 save
10.8.0.0: 地址为 server.conf 配置文件中的地址
10.162.xxx.xxx是阿里ECS的内网地址(ifconfig eth0)
- 重启OpenVPN服务
systemctl restart openvpn@server
OpenVPN 客户端配置
每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接。
- 生成客户端证书
cd /etc/openvpn/easy-rsa/2.*/ && ./build-key shicheng
shicheng: 客户端文件名称,随意填写。
将服务端生成的以下文件
ca.crt 服务器认证文件
shicheng.crt 客户端生成的文件
shicheng.key 客户端生成的文件
ta.key 防止ddos攻击生成文件
拷贝到需要连接vpn的机器上
- 配置客户端编写 shicheng.ovpn (*.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
将文件保存为*.vopn文件即可
© 著作权归作者所有
文章评论(0)