在CentOS上安装OpenVPN是一个涉及多个步骤的过程,包括安装软件、配置证书和密钥、设置服务器配置文件以及启动服务等,下面将详细描述这些步骤,并使用表格形式展示关键命令和配置文件示例。
一、安装OpenVPN及相关依赖
1、更新系统:确保所有软件包都是最新的。
sudo yum update y
2、安装EPEL源及OpenVPN和EasyRSA:EPEL(Extra Packages for Enterprise Linux)提供了额外的软件包,包括OpenVPN和EasyRSA。
sudo yum install epelrelease y sudo yum install openvpn easyrsa y
二、配置OpenVPN证书和密钥
1、创建OpenVPN目录并复制EasyRSA文件:
mkdir p ~/openvpnca cp r /usr/share/easyrsa/3/* ~/openvpnca/ cd ~/openvpnca
2、初始化EasyRSA环境:
./easyrsa initpki
3、生成CA证书:
./easyrsa buildca
4、生成服务器证书和密钥:
./easyrsa buildserverfull server nopass
5、生成DiffieHellman参数:
./easyrsa gendh
6、生成客户端证书和密钥(以client1为例):
./easyrsa buildclientfull client1 nopass
7、复制证书和密钥到OpenVPN配置目录:
mkdir p /etc/openvpn/server sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/server mkdir p ~/clientconfigs/keys cp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ~/clientconfigs/keys/
8、生成ta.key文件:
sudo openvpn genkey secret /etc/openvpn/server/ta.key
三、配置OpenVPN服务器
1、复制默认的配置文件并进行修改:
sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf sudo nano /etc/openvpn/server/server.conf
2、编辑server.conf
文件,修改以下关键参数:
参数 | 值 | |
port | 1194 | |
proto | udp | |
dev | tun | |
ca | /etc/openvpn/server/ca.crt | |
cert | /etc/openvpn/server/server.crt | |
key | /etc/openvpn/server/server.key | |
dh | /etc/openvpn/server/dh.pem | |
server | 10.8.0.0 255.255.255.0 | |
ifconfigpoolpersist | /var/log/openvpn/ipp.txt | |
push | "redirectgateway def1 bypassdhcp" | |
push | "dhcpoption DNS 208.67.222.222" | |
push | "dhcpoption DNS 208.67.220.220" | |
duplicatecn | ||
keepalive | 10 120 | |
TLScrypt | /etc/openvpn/server/ta.key | |
cipher | AES256GCM | |
auth | SHA256 | |
persistkey | ||
persisttun | ||
status | /var/log/openvpn/openvpnstatus.log | |
verb | 3 | |
explicitexitnotify | 1 |
3、确保启用IP转发:
sudo sysctl w net.ipv4.ip_forward=1
并在/etc/sysctl.conf
中添加以下行以确保重启后仍然生效:
net.ipv4.ip_forward = 1
4、配置防火墙:允许OpenVPN流量通过防火墙。
sudo systemctl enable firewalld sudo systemctl start firewalld sudo firewallcmd zone=public addservice=openvpn permanent sudo firewallcmd reload
四、启动OpenVPN服务并测试
1、启动OpenVPN服务:在CentOS 7及以上版本,使用以下命令启动服务。
sudo systemctl start openvpn@server
2、检查服务状态:确保服务已成功启动。
sudo systemctl status openvpn@server
五、常见问题解答(FAQs)
Q1: OpenVPN服务无法启动怎么办?
A1: 如果OpenVPN服务无法启动,首先检查配置文件中的语法错误,可以使用openvpn config /path/to/config testconfig
命令来测试配置文件,查看系统日志(如/var/log/messages
或journalctl xe
)以获取更多错误信息,确保防火墙规则正确且端口开放。
Q2: 如何更改OpenVPN监听的端口数?
A2: 要更改OpenVPN监听的端口数,只需在server.conf
文件中修改port
参数的值即可,将port 1194
改为port 1234
即可将监听端口更改为1234,记得同时更新防火墙规则以允许新的端口通过。