在CentOS 7上部署OpenVPN,涉及多个步骤和配置,以下是一个详细的指南:
环境搭建
1、添加EPEL YUM源:
使用wget
命令下载EPEL源的repo文件。
wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel7.repo
2、安装证书生成工具EasyRSA:
通过YUM安装EasyRSA。
yum y install easyrsa
3、创建证书环境目录:
创建目录并复制EasyRSA配置文件。
mkdir p /opt/easyrsa
cp a /usr/share/easyrsa/3.0.8/* /opt/easyrsa/
cp a /usr/share/doc/easyrsa3.0.8/vars.example /opt/easyrsa/vars
4、修改vars配置文件:
根据需求取消注释并设置相关参数。
set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "CN" set_var EASYRSA_REQ_PROVINCE "GuangDong" set_var EASYRSA_REQ_CITY "GuangZhou" set_var EASYRSA_REQ_ORG "IT" set_var EASYRSA_REQ_EMAIL "IT@qq.com" set_var EASYRSA_NS_SUPPORT "yes"
5、初始化并创建证书:
初始化pki目录。
cd /opt/easyrsa
./easyrsa initpki
创建根证书。
./easyrsa buildca
创建服务端和客户端证书及密钥。
./easyrsa genreq server nopass
./easyrsa signreq server server
./easyrsa genreq client nopass
./easyrsa signreq client client
OpenVPN服务端部署
1、安装OpenVPN:
yum install y openvpn
2、创建TLS认证密钥:
openvpn genkey secret /etc/openvpn/ta.key
3、配置服务器配置文件:
编辑/etc/openvpn/server.conf
,根据需要进行配置。
port 1194 proto tcp dev tun ca ca.crt cert server.crt key server.key dh dh.pem server 10.8.0.0 255.255.255.0 push "route 10.66.17.0 255.255.255.0" ifconfigpoolpersist ipp.txt keepalive 10 120 maxclients 100 status openvpnstatus.log verb 3 clienttoclient log /var/log/openvpn.log persistkey persisttun tlsauth /etc/openvpn/ta.key 0 duplicatecn scriptsecurity 3 authuserpassverify /etc/openvpn/check.sh viaenv usernameascommonname clientconfigdir /etc/openvpn/ccd
4、启动并启用OpenVPN服务:
systemctl start openvpn@server
systemctl enable openvpn@server
OpenVPN客户端部署
1、安装OpenVPN客户端软件:
在客户端机器上安装OpenVPN软件包。
2、拷贝证书和配置文件到客户端:
将服务端生成的客户端证书(如client.crt
,client.key
,ca.crt
,ta.key
)拷贝到客户端相应目录。
创建或编辑客户端配置文件client.ovpn
类似如下:
client dev tun proto udp remote <服务器IP> 1194 resolvretry infinite nobind persistkey persisttun ca ca.crt cert client.crt key client.key remotecerttls server tlsauth ta.key 1 cipher AES256CBC verb 3
常见问题解答(FAQs)
1、问题:如何检查OpenVPN服务是否正常运行?
答案:可以使用以下命令检查OpenVPN服务状态:
systemctl status openvpn@server
如果显示“active (running)”则表示服务正在运行。
2、问题:客户端无法连接到OpenVPN服务器怎么办?
答案:首先检查客户端和服务端的日志文件(通常位于/var/log/openvpn.log
),查找错误信息,确保客户端使用的是正确的配置文件和证书,并且服务器防火墙允许OpenVPN流量通过。