我正在编写自己的解析器,用于将 ASA 防火墙的 syslog 输出转换为 CSV 以进行更深入的分析。我不明白的是,为什么当流量出站时会切换“for”和“to”机器。
假设我有一个作为“out”区域的 DMZ 接口和一个作为“in”区域的 LAN 接口。
当我从外部电脑 RDP 到内部电脑时,我看到:
%ASA-6-302013: Built inbound TCP connection 21955057 for DMZ:192.168.1.110/56388 (192.168.1.110/56388) to LAN:192.168.2.110/3389 (192.168.2.110/3389)
正如预期的那样,DMZ 中的计算机 192.168.1.110 正在从随机端口到LAN 网络中计算机 192.168.2.110 的 TCP/3389 建立 RDP 连接。连接是入站的,因为它从防火墙的外部接口进入受它保护的网络。
但是,当我从 LAN 内的计算机连接到 DMZ 中的计算机时会发生什么?
%ASA-6-302013: Built outbound TCP connection 13538633 for DMZ:192.168.1.110/3389 (192.168.1.110/3389) to LAN:192.168.2.110/50927 (192.168.2.110/50927)
“for”和“to”保持不变,唯一知道通信从“to”主机开始的方法是消息中的outbound关键字(端口除外,但并不总是很明显)。
所以我在解析器中所做的是编写正则表达式以在“for”之后提取地址和端口并将其放入我的“源”列中,对于“to”并将它们标记为“destination”并将源切换为如果通信是入站的,则为目的地
我这样做对吗?这种语法不是令人费解和误导吗?使用 ICMP 时情况会变得更糟,因为有回显请求和回显回复,以及找出谁在 ping 谁变得更加复杂。