使用 openvpn 理解 iptables 日志

使用 openvpn 理解 iptables 日志

我已经配置了一个 openvpn 服务器 (Debian 10) 来访问本地网络上的 Web 服务器,一切正常,但查看 iptables 日志时,有一件事我不明白。这是我设置 Iptables 的方式:

192.168.0.42 = Web-server ip
192.168.0.21 (Current host) = VPN Server ip
10.8.0.6 = Virtual IP address of the remote client (VPN)

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
...

-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADE
COMMIT



*mangle
:INPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
...

-A PREROUTING -p tcp -d 192.168.0.21 -s 192.168.0.42 -j MARK --set-mark 10 

-A POSTROUTING -p tcp -j LOG --log-prefix "[iptables-post] "    --log-prefix 4
-A INPUT       -p tcp -j LOG --log-prefix "[iptables-input] "   --log-prefix 4
-A PREROUTING  -p tcp -j LOG --log-prefix "[iptables-pre] "     --log-prefix 4
-A OUTPUT      -p tcp -j LOG --log-prefix "[iptables-out] "     --log-prefix 4
-A FORWARD     -p tcp -j LOG --log-prefix "[iptables-forward] " --log-prefix 4
COMMIT

结果,我跟踪了从 Web 服务器到我的 VPN 服务器(再返回到客户端)的标记数据包(10),这就是它通过 Iptables 的方式:

*mangle

PREROUTING:        =>     FORWARD:           =>      POSTROUTING:
SRC=192.168.0.42          SRC=192.168.0.42           SRC=192.168.0.42
DST=192.168.0.21          DST=10.8.0.6               DST=10.8.0.6
IN =enp0s3                IN =enp0s3                 IN =
OUT=                      OUT=tun0                   OUT=tun0

我不明白数据包在路由后链,因为目标地址是10.8.0.6,服务器不知道将数据包重定向到哪里,或者是否知道将数据包的目标地址重定向到哪里10.8.0.6? 如果是,服务器如何知道这一点?

同样地,向前chain,为什么它从目标地址改变192.168.0.2110.8.0.6?难道不应该重定向到 INPUT 吗?因为目标地址是192.168.0.21- 这是当前主机(VPN)的地址。最后一个问题:为什么来自 Web 服务器的请求只到达向前链?VPN 服务器不应该在将数据传输到客户端之前对其进行加密吗?我不太明白这一点,我一直在寻找答案,但仍然没有找到答案,如果有人能帮我弄清楚,我会非常高兴。

我的路由表如下所示:

Destination     Gateway        Genmask          Iface

default         192.168.0.1    0.0.0.0          enp0s3
10.8.0.0        10.8.0.2       255.255.255.0    tun0
10.8.0.2        0.0.0.0        255.255.255.255  tun0
192.168.0.0     0.0.0.0        255.255.255.0    enp0s3

OpenVPN 服务器.conf:

port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "route 192.168.0.42 255.255.255.255"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0
   tls-version-min 1.3
cipher AES-256-GCM
auth SHA256
max-clients 2
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
explicit-exit-notify 0
tcp-queue-limit 256

相关内容