目录
VPN 服务选择
在 CentOS 系统上,常见的 VPN 服务包括 OpenVPN、IPsec/L2TP 和 PPTP。它们各有优缺点:
- OpenVPN 是一款功能强大的开源 VPN 解决方案,提供高度的安全性和可靠性,但配置相对复杂。
- IPsec/L2TP 是一种标准的 VPN 协议,在大多数设备上都有原生支持,配置较为简单,但安全性略低于 OpenVPN。
- PPTP 是一种历史悠久的 VPN 协议,配置简单,但安全性较低,不建议在生产环境中使用。
根据您的具体需求,可以选择合适的 VPN 服务进行搭建。下面我们将分别介绍这三种 VPN 的搭建方法。
OpenVPN 搭建
安装 OpenVPN
- 安装 OpenVPN 软件包:
yum install epel-release yum install openvpn easy-rsa
生成 OpenVPN 证书
- 进入 easy-rsa 目录:
cd /usr/share/easy-rsa/
- 初始化 PKI 环境:
./easyrsa init-pki
- 生成 CA 证书:
./easyrsa build-ca nopass
- 生成服务器证书:
./easyrsa build-server-full server nopass
- 生成客户端证书:
./easyrsa build-client-full client1 nopass
配置 OpenVPN 服务器
- 复制证书文件到 OpenVPN 配置目录:
cp -r pki /etc/openvpn/
- 编辑 OpenVPN 服务器配置文件
/etc/openvpn/server.conf
:
port 1194 proto udp dev tun ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/server.crt key /etc/openvpn/pki/private/server.key dh /etc/openvpn/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 cipher AES-256-CBC auth SHA256 user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 3
- 启动 OpenVPN 服务:
systemctl enable openvpn@server systemctl start openvpn@server
客户端连接 OpenVPN
- 下载客户端证书文件:
cd /etc/openvpn/pki/issued/ cp client1.crt /tmp/ cd /etc/openvpn/pki/private/ cp client1.key /tmp/
- 在客户端设备上安装 OpenVPN 客户端软件,并导入证书文件。
- 连接 OpenVPN 服务器,输入用户名和密码即可。
IPsec/L2TP VPN 搭建
安装 IPsec/L2TP 组件
- 安装 IPsec 和 L2TP 软件包:
yum install epel-release yum install xl2tpd ipsec-tools
配置 IPsec/L2TP 服务器
- 编辑 IPsec 配置文件
/etc/ipsec.conf
:
config setup charondebug=”all” uniqueids=no
conn L2TP rightsubnet=vhost:%priv also=shared type=transport authby=secret pfs=no auto=add
conn shared left=%defaultroute leftid=%unique_id right=%any rightsubnet=vhost:%priv rightprotoport=17/%any forceencaps=yes ike=aes256-sha256-modp1024! esp=aes256-sha256-modp1024!
- 编辑 L2TP 配置文件
/etc/xl2tpd/xl2tpd.conf
:
[global] port = 1701
[lns default] ip range = 10.0.0.2-10.0.0.254 local ip = 10.0.0.1 require chap = yes refuse pap = yes require authentication = yes name = VPN ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes
- 编辑 PPP 选项文件
/etc/ppp/options.xl2tpd
:
ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 noccp auth crtscts idle 1800 mtu 1410 mru 1410 nodefaultroute debug lock proxyarp connect-delay 5000
- 设置 IPsec 和 L2TP 密钥:
echo “VPN_SECRET” > /etc/ipsec.secret chmod 600 /etc/ipsec.secret
- 启动 IPsec 和 L2TP 服务:
systemctl enable ipsec systemctl start ipsec systemctl enable xl2tpd systemctl start xl2tpd
客户端连接 IPsec/L2TP
- 在客户端设备上安装 IPsec 和 L2TP 客户端软件。
- 配置 IPsec 和 L2TP 连接,输入服务器地址、用户名、密码和共享密钥即可。
PPTP VPN 搭建
安装 PPTP 组件
- 安装 PPTP 软件包:
yum install epel-release yum install pptpd
配置 PPTP 服务器
- 编辑 PPTP 服务器配置文件
/etc/pptpd.conf
:
option /etc/ppp/pptpd-options logwtmp localip 10.0.0.1 remoteip 10.0.0.100-200
- 编辑 PPP 选项文件
/etc/ppp/pptpd-options
:
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 8.8.8.8 ms-dns 8.8.4.4 proxyarp lock nobsdcomp novj novjccomp
- 添加 PPTP 用户:
echo “username password” >> /etc/ppp/chap-secrets
- 启动 PPTP 服务:
systemctl enable pptpd systemctl start pptpd
客户端连接 PPTP
- 在客户端设备上安装 PPTP 客户端软件。
- 配置 PPTP 连接,输入服务器地址、用户名和密码即可。
常见问题解答
VPN 服务器连接失败怎么办?
- 检查 VPN 服务是否正常运行,查看日志文件排查错误。
- 检查防火墙是否放行了 VPN 端口,并确保服务器的网络环境正常。
- 检查 VPN 客户端配置是否正确,证书和密钥是否正确导入。
如何提高 VPN 连接速度?
- 选择就近的 VPN 服务器,减少网络延迟。
- 尝试调整 VPN 协议和加密算法,如使用 OpenVPN 的 UDP 协议。
- 优化客户端设备的网络配置,如调整 MTU 和 MSS 值。
- 定期清理 VPN 服务器和客户端设备的日志和缓存文件。
VPN 安全性如何?
- OpenVPN 提供了强大的加密算法和身份验证机制,是目前最安全的 VPN 解决方案。
- IPsec/L2TP 和 PPTP 也提供了一定程度的安全性,但相比 OpenVPN 略有不足。
- 建议使用 OpenVPN 或 IPsec/L2TP,并定期更新软件和安全补丁,以确保 VPN 服务的安全性。