凌峰创科服务平台

Linux VPN服务器配置步骤有哪些?

Linux VPN服务器配置是企业级网络安全和个人隐私保护的重要实践,以下将详细介绍基于OpenVPN的Linux VPN服务器完整配置流程,包括环境准备、安装配置、证书管理及安全加固等关键步骤。

环境准备与基础配置

首先选择稳定的服务器发行版,推荐使用Ubuntu 22.04 LTS或CentOS 8,确保服务器具备静态公网IP,并关闭防火墙和SELinux(配置完成后重新开启),更新系统软件包:Ubuntu系统执行apt update && apt upgrade -y,CentOS系统执行yum update -y,创建专用管理用户sudo adduser vpnadmin并赋予sudo权限,避免直接使用root操作。

安装OpenVPN与EasyRSA

OpenVPN依赖OpenSSL和TUN模块,先安装基础依赖:Ubuntu系统安装apt install openvpn easy-rsa -y,CentOS系统需安装epel-release后执行yum install openvpn easy-rsa -y,检查TUN模块是否加载:执行lsmod | grep tun,若无结果则运行modprobe tun并设置开机自启echo "modprobe tun" >> /etc/rc.local

证书体系构建

证书是VPN安全的核心,需构建完整的PKI体系,初始化PKI环境:cp -r /usr/share/easy-rsa/ /etc/openvpn/,进入/etc/openvpn/easy-rsa/编辑vars文件,设置变量如KEY_COUNTRY="CN"KEY_NAME="VPN-CA"等,执行./easyrsa init-pki生成PKI目录,./easyrsa build-ca nopass创建根证书(无密码便于自动化),./easyrsa gen-req server nopass生成服务器证书请求,./easyrsa sign-req server server签署服务器证书,./easyrsa gen-dh生成Diffie-Hellman参数,最后通过openvpn --genkey --secret ta.key生成TLS密钥,所有证书文件存放于/etc/openvpn/easy-rsa/pki/目录。

OpenVPN服务器配置

创建服务器配置文件/etc/openvpn/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"
keepalive 10 120
tls-crypt ta.key
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

配置完成后启动服务:systemctl start openvpn@server,设置开机自启systemctl enable openvpn@server

客户端配置与防火墙设置

生成客户端证书流程与服务器类似,使用./easyrsa gen-req client1 nopass并签署,创建客户端配置文件client.ovpn,包含以下内容:

client
dev tun
proto udp
remote <服务器公网IP> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
auth-user-pass
tls-crypt ta.key
<ca>
-----BEGIN CERTIFICATE-----
(粘贴ca.crt内容)
-----END CERTIFICATE-----
</ca>

配置防火墙规则(以Ubuntu为例):

ufw allow 1194/udp
ufw allow OpenSSH
ufw enable

启用IP转发:编辑/etc/sysctl.conf,添加net.ipv4.ip_forward=1,执行sysctl -p,配置NAT转发规则:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE,保存规则至/etc/iptables/rules.v4

安全加固建议

  1. 证书管理:定期轮换服务器证书(建议每90天),使用./easyrsa revoke client1吊销客户端证书
  2. 访问控制:通过plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so login集成系统用户认证
  3. 日志监控:配置log /var/log/openvpn.logexplicit-exit-notify 1,通过logrotate管理日志轮转
  4. 网络隔离:设置client-to-client no禁止客户端直接通信,避免横向攻击

相关问答FAQs

Q1: 如何限制VPN客户端访问特定内网资源?
A1: 可通过client-config-dir目录为客户端分配固定IP,并在服务器配置中添加route指令控制路由,在ccd目录创建client1文件,添加ifconfig-push 10.8.0.2 255.255.255.255,同时在server.conf中添加route 192.168.1.0 255.255.255.0,配合iptables规则实现访问控制。

Q2: VPN连接速度慢如何排查?
A2: 首先检查服务器负载和带宽使用情况,执行iftop查看实时流量,其次验证MTU设置,在客户端配置中添加mtu-testfragment 1400,最后检查加密算法,优先使用AES-256-GCM等高性能算法,避免使用过时的BF-CBC(Blowfish),若问题持续,可尝试切换TCP协议(proto tcp)以应对网络丢包问题。

分享:
扫描分享到社交APP
上一篇
下一篇