引言
OpenVPN是一款开源的虚拟私人网络(VPN)解决方案,它允许用户通过公共网络建立安全的加密连接。在CentOS服务器上配置OpenVPN,可以实现NAT穿透,使得局域网内的设备可以通过服务器安全地访问互联网。本文将详细讲解如何在CentOS服务器上配置OpenVPN,实现安全连接。
准备工作
- 服务器环境:一台安装有CentOS操作系统的服务器。
- 网络环境:服务器应具有公网IP地址,以便客户端可以连接。
- 软件包:OpenVPN服务器和客户端软件。
步骤一:安装OpenVPN
- 更新系统:
sudo yum update
- 安装OpenVPN:
sudo yum install openvpn easy-rsa
步骤二:配置OpenVPN
- 生成CA证书:
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca
- 生成服务器证书和私钥:
./build-key-server server
- 生成Diffie-Hellman参数:
./build-dh
- 生成服务器配置文件:
echo "client-config-dir /etc/openvpn/client" > /etc/openvpn/server.conf
echo "ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt" >> /etc/openvpn/server.conf
echo "cert /etc/openvpn/easy-rsa/2.0/keys/server.crt" >> /etc/openvpn/server.conf
echo "key /etc/openvpn/easy-rsa/2.0/keys/server.key" >> /etc/openvpn/server.conf
echo "dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem" >> /etc/openvpn/server.conf
echo "tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 1" >> /etc/openvpn/server.conf
echo "cd /etc/openvpn/client" >> /etc/openvpn/server.conf
echo "ifconfig-pool 10.8.0.0 10.8.0.255" >> /etc/openvpn/server.conf
echo "server 10.8.0.0 255.255.255.0" >> /etc/openvpn/server.conf
echo "keepalive 10 120" >> /etc/openvpn/server.conf
echo "comp-lzo" >> /etc/openvpn/server.conf
echo "user nobody" >> /etc/openvpn/server.conf
echo "group nogroup" >> /etc/openvpn/server.conf
echo "status openvpn-status.log" >> /etc/openvpn/server.conf
echo "log /var/log/openvpn.log" >> /etc/openvpn/server.conf
echo "verb 3" >> /etc/openvpn/server.conf
- 创建客户端配置目录:
mkdir -p /etc/openvpn/client
步骤三:启动OpenVPN服务
- 创建系统服务:
sudo cp /etc/openvpn/server.conf /etc/systemd/system/openvpn@server.service
- 编辑服务文件:
sudo nano /etc/systemd/system/openvpn@server.service
- 添加以下内容:
[Unit]
Description=OpenVPN server %i
Documentation=https://openvpn.net/index.php/open-source/documentation.html
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/server.conf --status openvpn@server.status
[Install]
WantedBy=multi-user.target
- 启动服务:
sudo systemctl start openvpn@server
- 设置开机自启:
sudo systemctl enable openvpn@server
步骤四:配置客户端
- 生成客户端证书和私钥:
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-key client1
- 生成客户端配置文件:
echo "client" > /etc/openvpn/client/client1.ovpn
echo "remote 服务器公网IP 1194" >> /etc/openvpn/client/client1.ovpn
echo "ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt" >> /etc/openvpn/client/client1.ovpn
echo "cert /etc/openvpn/easy-rsa/2.0/keys/client1.crt" >> /etc/openvpn/client/client1.ovpn
echo "key /etc/openvpn/easy-rsa/2.0/keys/client1.key" >> /etc/openvpn/client/client1.ovpn
echo "tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 1" >> /etc/openvpn/client/client1.ovpn
echo "ns-cert-type server" >> /etc/openvpn/client/client1.ovpn
echo "ifconfig 10.8.0.2 255.255.255.0" >> /etc/openvpn/client/client1.ovpn
echo "comp-lzo" >> /etc/openvpn/client/client1.ovpn
echo "verb 3" >> /etc/openvpn/client/client1.ovpn
- 启动客户端:
openvpn --config /etc/openvpn/client/client1.ovpn
总结
通过以上步骤,您已经在CentOS服务器上成功配置了OpenVPN,实现了NAT穿透,并能够安全地连接到服务器。在配置过程中,请确保遵循正确的步骤,并根据实际情况调整配置参数。祝您使用愉快!