引言

OpenVPN是一款开源的虚拟私人网络(VPN)解决方案,它允许用户通过公共网络建立安全的加密连接。在CentOS服务器上配置OpenVPN,可以实现NAT穿透,使得局域网内的设备可以通过服务器安全地访问互联网。本文将详细讲解如何在CentOS服务器上配置OpenVPN,实现安全连接。

准备工作

  1. 服务器环境:一台安装有CentOS操作系统的服务器。
  2. 网络环境:服务器应具有公网IP地址,以便客户端可以连接。
  3. 软件包:OpenVPN服务器和客户端软件。

步骤一:安装OpenVPN

  1. 更新系统
sudo yum update
  1. 安装OpenVPN
sudo yum install openvpn easy-rsa

步骤二:配置OpenVPN

  1. 生成CA证书
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca
  1. 生成服务器证书和私钥
./build-key-server server
  1. 生成Diffie-Hellman参数
./build-dh
  1. 生成服务器配置文件
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
  1. 创建客户端配置目录
mkdir -p /etc/openvpn/client

步骤三:启动OpenVPN服务

  1. 创建系统服务
sudo cp /etc/openvpn/server.conf /etc/systemd/system/openvpn@server.service
  1. 编辑服务文件
sudo nano /etc/systemd/system/openvpn@server.service
  1. 添加以下内容
[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
  1. 启动服务
sudo systemctl start openvpn@server
  1. 设置开机自启
sudo systemctl enable openvpn@server

步骤四:配置客户端

  1. 生成客户端证书和私钥
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-key client1
  1. 生成客户端配置文件
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
  1. 启动客户端
openvpn --config /etc/openvpn/client/client1.ovpn

总结

通过以上步骤,您已经在CentOS服务器上成功配置了OpenVPN,实现了NAT穿透,并能够安全地连接到服务器。在配置过程中,请确保遵循正确的步骤,并根据实际情况调整配置参数。祝您使用愉快!