IPsec、VPN 协议与远程访问安全
比较 IPsec 隧道模式和传输模式、SSL-VPN 及 WireGuard 在安全远程访问方面的差异,并了解分离隧道的风险。
IPsec、VPN 协议与远程访问安全 是 CoddyKit 上的免费 Security+ Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Security+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Security+ Academy 课程共包含 4 节课。
VPN 的重要性
虚拟专用网络(VPN)会在公共网络或不受信任的网络上创建加密隧道,使远程用户和站点能够像处于同一专用网络中一样通信。VPN 可以防止用户在不受信任的网络(酒店 Wi-Fi、公共热点)上被窃听,允许远程员工访问内部资源,并通过互联网安全地连接分支机构。Security+ 考试会考查多种 VPN 技术——IPsec、SSL-VPN 以及 WireGuard 等新兴协议——以及适用于每种技术的安全注意事项。
IPsec 概述
IPsec(互联网协议安全)是一套在 Layer 3 保护 IP 流量的协议。IPsec 有两种模式:Transport mode只加密每个 IP 数据包的有效载荷(保留原始 IP 标头,用于端到端主机通信);Tunnel mode加密整个原始数据包,并将其封装在新的 IP 标头中,用于网关充当隧道端点的站点到站点 VPN。IPsec 使用两种主要协议:AH(Authentication Header)仅提供完整性和身份验证(不提供加密),ESP(Encapsulating Security Payload)同时提供加密和身份验证。
# IPsec protocol comparison
AH (Protocol 51):
- Authentication + Integrity (HMAC)
- NO encryption (plaintext payload)
- Rarely used alone in modern deployments
ESP (Protocol 50):
- Encryption (AES, 3DES)
- Authentication + Integrity (HMAC)
- Provides confidentiality
- Almost always used instead of AH alone
# IPsec modes
Transport : Original-IP | AH/ESP | Payload
Tunnel : New-IP | ESP | Original-IP | PayloadIKE 与 IPsec 握手
IKE(互联网密钥交换)负责为 IPsec 会话协商安全参数(算法、密钥)。IKEv1 使用两个阶段:阶段 1 建立安全通道,以保护阶段 2 的协商;阶段 2 协商实际的 IPsec 安全关联。IKEv2是当前标准,更简单、更快速、更可靠,并且内置支持 EAP 身份验证和 MOBIKE(处理会话期间的 IP 地址变化,这对移动设备非常重要)。IPsec 安全关联(SAs)是单向的;每个方向都有自己的 SA 和加密密钥。
# IKEv2 negotiation overview
Initiator Responder
|---IKE_SA_INIT request-->| (propose algorithms)
|<--IKE_SA_INIT response--| (accept + key exchange)
|---IKE_AUTH request----->| (authenticate identity)
|<--IKE_AUTH response-----| (create Child SA = IPsec SA)
|====Encrypted IPsec=====>| (data flows)
# Result: two Security Associations (SAs)
# SA1: Initiator -> Responder (encrypt + auth)
# SA2: Responder -> Initiator (encrypt + auth)
# Each SA has its own SPI (Security Parameter Index)SSL-VPN 与 IPsec VPN
IPsec VPN运行在 Layer 3,需要客户端软件,并且通常需要开放特定的防火墙端口(UDP 500、用于 NAT 穿透的 UDP 4500、ESP Protocol 50)。它部署起来更困难,但可以提供完整的网络层访问。SSL-VPN通过 HTTPS(TCP 443)传输隧道流量,这种流量几乎可以通过所有防火墙,并且既可以通过浏览器运行(无客户端模式),也可以使用轻量客户端。SSL-VPN 使用 TLS 作为外层隧道,因此能够受益于 TLS 的安全改进,也更便于用户连接。企业 SSL-VPN 产品(Cisco AnyConnect、Palo Alto GlobalProtect)还支持分割隧道和终端状态评估。
# Comparison table
Feature IPsec VPN SSL-VPN
Layer Network (L3) Application (L7)
Ports needed UDP 500,4500 TCP 443
Firewall traversal Difficult Easy
Client software Required Optional (browser)
Split tunneling Supported Supported
Mobile support Good (IKEv2) Excellent
Performance Generally faster Slight TLS overhead
Use case Site-to-site Remote user access分割隧道
分割隧道允许 VPN 客户端仅将发往企业的流量通过 VPN 隧道,同时将访问互联网的流量直接发送到互联网,不经过企业安全控制。其安全风险在于:受感染的终端可以同时访问企业网络(通过 VPN),并与恶意软件的 C2 服务器通信(通过直连互联网),从而实质上将企业网络桥接给攻击者。全隧道会将所有流量都通过 VPN 网关,在那里由企业安全控制(Web 过滤、DLP、IPS)进行检查。大多数重视安全的组织都会强制使用全隧道,并接受由此产生的带宽开销。
# Split tunneling vs full tunneling
# Split tunneling (risky):
# - Traffic to 10.0.0.0/8 -> VPN tunnel
# - All other traffic -> direct internet
# Risk: malware on endpoint can reach C2 + internal network
# Full tunneling (secure):
# - ALL traffic -> VPN gateway
# - Gateway applies web filtering, IPS, DLP
# - Increased gateway bandwidth cost
# Cisco AnyConnect enforce full tunnel:
# vpn-tunnel-protocol ssl-client
# split-tunnel-policy tunnelallWireGuard
WireGuard是一种现代 VPN 协议,设计目标是比 IPsec 和 OpenVPN 更简单、更快速、更安全。WireGuard 使用固定且精简的密码学组件:ChaCha20用于对称加密,Poly1305用于身份验证,Curve25519用于 ECDH 密钥交换,BLAKE2s用于哈希,SipHash24用于哈希表密钥。其代码库不到 4,000 行(而 OpenVPN 超过 100,000 行),因此更易于审计,也能减小攻击面。WireGuard 现已内置于 Linux 内核(5.6 及更高版本),并受到所有主流平台支持。
# WireGuard configuration example
# /etc/wireguard/wg0.conf (server)
[Interface]
PrivateKey = <server_private_key>
Address = 10.100.0.1/24
ListenPort = 51820
[Peer] # Client peer
PublicKey = <client_public_key>
AllowedIPs = 10.100.0.2/32
# /etc/wireguard/wg0.conf (client)
[Interface]
PrivateKey = <client_private_key>
Address = 10.100.0.2/24
DNS = 10.100.0.1
[Peer] # Server peer
PublicKey = <server_public_key>
Endpoint = vpn.company.com:51820
AllowedIPs = 0.0.0.0/0 # Full tunnel站点到站点 VPN
站点到站点 VPN通过网关设备之间的持久加密隧道连接整个网络(分支机构、数据中心、云 VPC)。与个人用户连接的远程访问 VPN 不同,站点到站点隧道会在固定端点之间始终保持启用。最常用的技术是隧道模式下的 IPsec。配置要求两端的 IKE 提案(加密、完整性、DH 组、生命周期)相匹配——不匹配是站点到站点 VPN 故障排查中最常见的问题。配置带有死对等端检测(DPD)的冗余隧道,可在主路径发生故障时提供故障转移。
# IPsec site-to-site check (strongSwan)
ipsec status
ipsec statusall | grep ESTABLISHED
# Verify SA negotiated correctly
ip xfrm state list
# Shows: SPI, encryption algo, auth algo, mode
# Debug IKE negotiation
ipsec stroke loglevel all 4
tail -f /var/log/syslog | grep -i ike
# Common mismatch errors:
# 'no proposal chosen' = IKE algorithms don't match
# 'TS_UNACCEPTABLE' = Traffic selectors mismatchVPN 身份验证方法
VPN 支持多种身份验证机制。预共享密钥(PSK):在两个端点上配置的共享机密,配置简单,但如果密钥泄露,会形成单一失陷点;适合站点到站点连接。基于证书的身份验证:每个客户端或网关都提供 X.509 证书,安全性更强,可扩展到大量用户,并且可以吊销证书。EAP(可扩展身份验证协议):支持与 RADIUS 集成,从而启用用户名/密码、MFA(EAP-TTLS、EAP-TLS),以及与 Active Directory 的集成。大多数企业部署会将证书身份验证(设备身份)与 MFA(用户身份)结合使用。
VPN 终端状态评估
现代 VPN 网关会在授予访问权限前执行终端状态检查,确保连接设备符合安全要求。检查项目包括:操作系统版本和补丁级别(拒绝使用已停止支持的操作系统)、是否安装防病毒软件及其病毒特征库是否为最新、是否启用磁盘加密、是否安装未经授权的软件,以及防火墙是否处于启用状态。未通过状态检查的设备会被置于隔离 VLAN中,仅提供有限访问权限——通常只能访问修复资源——直到其符合策略要求。这样,即使个人设备拥有有效凭据,也能防止受感染的设备直接访问生产企业网络。
始终在线 VPN
始终在线 VPN确保企业终端离开企业网络后始终保持 VPN 连接。与需要用户手动连接的传统 VPN 不同,始终在线 VPN 会在登录前建立连接(有时使用机器证书身份验证),并在整个会话期间保持连接。这样可以确保即使是远程员工,终端的所有流量也都受到企业安全控制的检查。Microsoft DirectAccess(前身)以及 Cisco AnyConnect Always-On 和 GlobalProtect 等解决方案都采用了这种模式。代价是网关负载增加——每个远程终端都会保持一个永久会话。
VPN 集中器与高可用性
VPN 集中器是一种专用设备或虚拟设备,用于终止大量 VPN 会话,并处理可能使通用路由器或防火墙不堪重负的密码运算负载。企业 VPN 集中器支持数千个并发会话,并可与 RADIUS 集成进行身份验证,与 LDAP/AD 集成查询用户信息,还可与证书颁发机构集成以验证客户端证书。高可用性(HA)配置使用主备或主主集群,并同步会话,因此即使某个集中器发生故障,用户也不会断开连接。对于依赖 VPN 执行关键业务的组织而言,合理规划 HA 至关重要。
快速检查
测试您对本课 CompTIA Security+ (SY0-701) 概念的理解。
课程回顾
在本课中,您学到了:IPsec 在第 3 层使用 AH(仅提供完整性)或 ESP(加密 + 完整性)保护 IP 流量,并在传输模式或隧道模式下使用 IKEv2 进行密钥协商;SSL-VPN 通过 HTTPS 建立隧道,与 IPsec 相比更容易穿过防火墙进行部署;而分离隧道会造成安全风险,因为它允许终端上的恶意软件直接访问 internet,同时 VPN 还提供企业网络访问。Secure Protocols 课程到此结束——接下来我们将探索 Zero Trust Architecture。
常见问题解答
「IPsec、VPN 协议与远程访问安全」课时是免费的吗?
是的 — 「IPsec、VPN 协议与远程访问安全」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Security+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Security+ Academy 课程共包含 4 节课。
「IPsec、VPN 协议与远程访问安全」这节课中我会学到什么?
比较 IPsec 隧道模式和传输模式、SSL-VPN 及 WireGuard 在安全远程访问方面的差异,并了解分离隧道的风险。 你通过在浏览器中直接运行的动手代码来练习 Security+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Security+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Security+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「IPsec、VPN 协议与远程访问安全」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Security+ Academy 课中编写并运行代码吗?
能。每节 Security+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP
- TLS 版本、密码套件与完全前向保密
- 安全 DNS:DNSSEC 与基于 HTTPS 的 DNS(DoH)
- IPsec、VPN 协议与远程访问安全