CentOS 7 VPN服务器架设完整教程

目录

  1. 前言
  2. VPN简介
  3. CentOS 7 VPN服务器搭建 3.1. 环境准备 3.2. IPSec VPN服务器配置 3.2.1. 安装Strongswan 3.2.2. 配置IPSec VPN 3.2.3. 防火墙设置 3.3. OpenVPN服务器配置 3.3.1. 安装OpenVPN 3.3.2. 配置OpenVPN 3.3.3. 防火墙设置
  4. VPN客户端连接 4.1. IPSec VPN客户端连接 4.2. OpenVPN客户端连接
  5. VPN服务器管理 5.1. 查看VPN连接状态 5.2. 管理VPN用户
  6. FAQ

前言

随着互联网时代的不断发展,网络安全问题日益突出。VPN作为一种安全可靠的远程访问解决方案,在企业和个人用户中广受欢迎。本文将详细介绍如何在CentOS 7系统上搭建IPSec和OpenVPN两种VPN服务器,并提供相关的配置和管理方法,为用户提供一个安全、稳定的远程访问环境。

VPN简介

VPN(Virtual Private Network)即虚拟专用网络,是一种通过互联网在两个或多个网络之间建立安全连接的技术。VPN可以实现远程用户安全地访问内部网络资源,同时也可以用于跨地域的网络互联。常见的VPN协议有IPSec、OpenVPN、PPTP等,其中IPSec和OpenVPN是最常用的两种VPN技术。

  • IPSec VPN:IPSec(Internet Protocol Security)是一种基于IP协议的网络安全协议,能够为IP数据包提供身份验证、完整性和保密性保护。IPSec VPN通常由网络管理员配置和管理,适合企业级应用场景。
  • OpenVPN:OpenVPN是一种基于SSL/TLS的VPN技术,可以在TCP或UDP协议之上提供加密和身份验证功能。OpenVPN客户端软件支持多种平台,使用灵活,适合个人用户使用。

CentOS 7 VPN服务器搭建

环境准备

  • 操作系统: CentOS 7
  • 硬件配置: 最低2GB内存,1个CPU
  • 网络环境: 公网IP或域名

IPSec VPN服务器配置

安装Strongswan

Strongswan是一款开源的IPSec VPN解决方案,可以在CentOS 7上轻松部署。

  1. 更新系统软件包:

yum update -y

  1. 安装Strongswan:

yum install -y strongswan

  1. 启动Strongswan服务并设置开机自启:

systemctl start strongswan systemctl enable strongswan

配置IPSec VPN

  1. 编辑Strongswan配置文件:

vim /etc/strongswan/ipsec.conf

添加以下内容:

config setup charondebug=”all” uniqueids=no

conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev1 ike=aes256-sha256-modp1024! esp=aes256-sha256-modp1024!

conn myvpn rightid=%any right=%defaultroute leftsubnet=10.10.10.0/24 rightsubnet=0.0.0.0/0 auto=add

  1. 编辑Strongswan密钥配置文件:

vim /etc/strongswan/ipsec.secrets

添加以下内容:

: PSK “your_pre_shared_key” 将your_pre_shared_key替换为您自己的预共享密钥。

  1. 重启Strongswan服务:

systemctl restart strongswan

防火墙设置

  1. 允许IPSec VPN端口通过防火墙:

firewall-cmd –permanent –add-port=500/udp firewall-cmd –permanent –add-port=4500/udp firewall-cmd –reload

OpenVPN服务器配置

安装OpenVPN

  1. 安装EPEL仓库:

yum install -y epel-release

  1. 安装OpenVPN:

yum install -y openvpn easy-rsa

配置OpenVPN

  1. 生成OpenVPN服务器证书和密钥:

cd /usr/share/easy-rsa/

./easyrsa init-pki

./easyrsa build-ca nopass

./easyrsa build-server-full server nopass

./easyrsa gen-dh

  1. 复制证书文件到OpenVPN配置目录:

cp -r pki /etc/openvpn/server/

  1. 编辑OpenVPN服务器配置文件:

vim /etc/openvpn/server/server.conf

添加以下内容:

port 1194 proto udp dev tun ca pki/ca.crt cert pki/issued/server.crt key pki/private/server.key dh pki/dh.pem server 10.8.0.0 255.255.255.0 push “redirect-gateway def1 bypass-dhcp”push “dhcp-option DNS 8.8.8.8″push “dhcp-option DNS 8.8.4.4″keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3

防火墙设置

  1. 允许OpenVPN端口通过防火墙:

firewall-cmd –permanent –add-port=1194/udp firewall-cmd –reload

VPN客户端连接

IPSec VPN客户端连接

  1. 在客户端设备上安装Strongswan客户端软件。
  2. 在Strongswan客户端上添加VPN连接配置,输入服务器IP地址和预共享密钥。
  3. 启用VPN连接,即可通过IPSec VPN安全访问内部网络资源。

OpenVPN客户端连接

  1. 在客户端设备上安装OpenVPN客户端软件。
  2. 从OpenVPN服务器下载客户端证书和密钥文件。
  3. 在OpenVPN客户端上导入证书文件,并连接到VPN服务器。
  4. 成功连接后,即可通过OpenVPN安全访问内部网络资源。

VPN服务器管理

查看VPN连接状态

  1. 查看IPSec VPN连接状态:

ipsec status

  1. 查看OpenVPN连接状态:

systemctl status openvpn@server

管理VPN用户

  1. 添加IPSec VPN用户:
    1. 编辑/etc/strongswan/ipsec.secrets文件,添加新用户的预共享密钥。
    2. 重启Strongswan服务以应用更改。
  2. 添加OpenVPN用户:
    1. 进入easy-rsa目录,生成新用户的证书和密钥。
    2. 将新生成的证书和密钥文件复制到OpenVPN服务器的/etc/openvpn/server/pki/目录下。
    3. 重启OpenVPN服务以应用更改。

FAQ

1. 为什么我无法连接到VPN服务器?

可能原因包括:

  • 防火墙未正确配置,导致VPN端口被阻止。
  • VPN服务器配置错误,如预共享密钥、证书等设置有问题。
  • 客户端软件配置不正确,如VPN连接参数设置有误。

请检查以上项目,并根据错误信息进行排查和修正。

2. 如何查看VPN连接日志?

  • IPSec VPN日志位于/var/log/messages文件中。
  • OpenVPN日志位于/var/log/openvpn/openvpn.log文件中。

您可以使用tail命令查看实时日志,以排查连接问题。

3. 如何增加VPN服务器的性能?

  • 升级服务器硬件配置,如增加CPU和内存。
  • 优化VPN服务器配置,如调整加密算法、压缩等参数。
  • 使用负载均衡技术,部署多台VPN服务器。
  • 根据实际需求,选择合适的VPN协议,如IPSec或OpenVPN。

4. 如何管理VPN用户?

  • 添加/删除VPN用户:编辑相应的配置文件,如ipsec.secrets/etc/openvpn/server/pki/目录。
  • 查看当前VPN连接用户:使用ipsec statussystemctl status openvpn@server命令。
  • 限制单个用户的并发连接数:在VPN服务器配置文件中添加相关设置。

5. 如何实现VPN高可用?

  • 使用负载均衡技术,部署多台VPN服务器。
  • 配合DNS轮询或虚拟IP技术,提供VPN服务的高可用性。
  • 监控VPN服务状态,并设置自动故障转移机制。
正文完