我正在寻找一种通过 iptables 规则跟踪数据包的简单方法。这与日志记录无关,因为我不想记录所有流量(而且我只想为很少的规则设置 LOG 目标)。
类似于用于 Iptables 的 Wireshark。或者甚至可能类似于编程语言的调试器。
谢谢克里斯
注意:它不一定是一个花哨的 GUI 工具。但它必须做的不仅仅是显示一个包裹柜台左右。
更新:看起来好像我们找不到任何提供所需功能的东西。在这种情况下:让我们至少找到一种基于 iptables 日志记录的好技术——它可以很容易地打开和关闭,并且不需要冗余地编写 iptables 规则(必须为-j LOGand编写相同的规则-j ...)
在 centos 机器上,我喜欢转储 tcp 连接 - 我想看看服务器是否尝试向某个 IP 发送请求。通常 tcpdump 可以解决问题 - 但 tcpdump 没有安装,并且安装软件不是一个选项(因为公司政策)。恐怕 netstat 不会向我显示一个请求。
所以我想知道我还有什么其他选择。我确实在服务器上有 root 访问权限。
我们有一个相当复杂的 iptables/ipchains 配置,它是由APF生成的。应该阻止到端口 80 的流量,但我们的 Apache 日志显示有人能够探测网页:
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/w00tw00t.at.blackhats.romanian.anti-sec:)
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/phpMyAdmin
[Sun Feb 03 13:08:45 2013] [error] [client 50.57.125.169] File does not exist: /var/www/phpmyadmin
Run Code Online (Sandbox Code Playgroud)
有没有办法在 iptables 中模拟源 IP 来调试为什么数据包50.57.125.169没有被阻止?该-C | --check选项似乎只报告是否存在明确匹配 IP 的规则,但我想做的是(伪代码)
myserver% iptables --test --source_ip=50.57.125.169 --dest_port=80
Rule #17 matches (ALLOW) // i.e. this would be the rule that …Run Code Online (Sandbox Code Playgroud)