Strongswan 并非所有流量都经过加密

Strongswan 并非所有流量都经过加密

我已经使用以下配置设置了 Cisco 路由器的 strongswan:

config setup
    uniqueids=never

ca default_ca
    auto=add

conn %default
    keyexchange=ikev1
    type=tunnel
    left=%any
    auto=add
    dpdaction=clear
    margintime=0s
    rekeyfuzz=20%
conn cisco-ezvpn
    keyexchange=ikev1
    left=10.0.1.2
    leftid=lab
    leftsourceip=%config
    leftfirewall=yes
    right=10.0.1.1
    rightsubnet=0.0.0.0/0
    xauth_identity=test
    auto=add
    leftauth2=xauth
    xauth=client
    aggressive=yes
    leftauth=psk
    rightauth=psk
    ikelifetime=86000s
    lifetime=86000s
    ike=aes256-sha256-ecp256
    esp=aes256-sha256

但我发现并非所有流量都是加密的。

  • 如果在 ipsec up 之前某些程序,比如 ssh,已经连接到远程服务器,这些连接将不会使用 VPN 隧道,从 tcpdump 输出中可以看到:

[root@lorawan ~]# tcpdump -i eth0 tcpdump: 详细输出被抑制,使用 -v 或 -vv 进行完整协议解码 监听在 eth0 上,链路类型 EN10MB(以太网),捕获大小 262144 字节 22:17:54.407463 IP 10.0.1.1 > 10.0.1.2: ESP(spi=0xc0920b53,seq=0x4a),长度 184 22:17:59.454819 IP 10.0.1.2 > 10.0.1.1: ESP(spi=0x3ec810fd,seq=0x97),长度 120 22:17:59.455637 IP 10.0.1.1 > 10.0.1.2: ESP(spi=0xc0920b53,seq=0x4c),长度 104 22:17:59.455637 IP 10.0.1.1 > 10.10.0.0:ICMP 10.0.1.1 udp 端口​​域不可达,长度 36 22:17:59.455787 IP 10.0.1.2 > 10.0.1.1:ESP(spi=0x3ec810fd,seq=0x98),长度 120 22:18:01.000771 STP 802.1d,配置,标志[无],桥接 ID 8000.80:e0:1d:66:2f:a2.8001,长度 43 22:18:03.000814 STP 802.1d,配置,标志 [无],网桥 ID 8000.80:e0:1d:66:2f:a2.8001,长度 43 22:18:04.738096 IP 10.0.1.2.33457 > 10.0.1.1.5888:标志 [P.],序号 4216930160:4216930182,ack 50432821,win 17584,长度 22 22:18:04.738618 IP 10.0.1.1.5888 > 10.0.1.2.33457:标志 [.],序号 1:27,ack 22,win 3446,长度 26 22:18:04.738679 IP 10.0.1.2.33457 > 10.0.1.1.5888:标志 [.],ack 27,win 17584,长度 0

默认接口:eth0,仍然可以被外部主机进程访问,例如 ssh:

[root@lorawan ~]# tcpdump -i eth0 tcpdump: 详细输出被抑制,使用 -v 或 -vv 进行完整协议解码 监听在 eth0 上,链路类型 EN10MB(以太网),捕获大小 262144 字节 22:24:28.021347 IP 10.0.1.2 > 10.0.1.1: ESP(spi=0x3ec810fd,seq=0xa9),长度 120 22:24:28.169729 IP 10.0.1.1.36550 > 10.0.1.2.ssh: 标志 [P.],seq 156:208,ack 825,win 2944,长度 52 22:24:28.170144 IP 10.0.1.2.ssh

10.0.1.1.36550:标志 [P.],序号 825:893,ack 208,win 16616,长度 68 22:24:28.370727 IP 10.0.1.1.36550 > 10.0.1.2.ssh:标志 [.],ack 893,win 2876,长度 0

我的 iptables 转发器看起来正常:

[root@lorawan ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.10.0.0            policy match dir in pol ipsec reqid 1 proto esp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.10.0.0            policy match dir in pol ipsec reqid 1 proto esp
ACCEPT     all  --  10.10.0.0            anywhere             policy match dir out pol ipsec reqid 1 proto esp
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.10.0.0            anywhere             policy match dir out pol ipsec reqid 1 proto esp

我的问题是:有没有办法将“所有流量”路由到 VPN?

答案1

我认为这个问题可能是 Linux 网络堆栈的工作方式以及库 libpcap 如何捕获流量的副作用。

https://wiki.strongswan.org/issues/1114 https://wiki.strongswan.org/projects/strongswan/wiki/CorrectTrafficDump

我希望我能帮到你。

问候

相关内容