小编Phi*_*ost的帖子

如何为 iptables 编写自动化测试?

我正在使用iptables. 我想为断言以下内容的配置编写验收测试:

  • 来自互联网上某个人的流量未被转发,并且
  • 从公司 LAN 上的主机转发到 DMZ 中 Web 服务器上的端口 80 的 TCP。

一个古老的 FAQ暗示了一个iptables -C选项,它允许人们提出类似这样的问题,“给定一个从 X 到 Y,在端口 Z 上的数据包,它会被接受还是被丢弃?” 尽管 FAQ 建议它是这样工作的,因为iptables(但可能不像ipchains它在示例中使用的那样)该-C选项似乎没有模拟运行所有规则的测试数据包,而是检查是否存在完全匹配的规则。这作为测试的价值不大。我想断言规则具有预期的效果,而不仅仅是它们存在。

我已经考虑过创建更多的测试 VM 和一个虚拟网络,然后使用诸如nmap效果之类的工具进行探索。但是,由于创建所有这些额外虚拟机的复杂性,我避免使用此解决方案,这对于生成一些测试流量来说确实是一种非常繁重的方法。拥有一种自动化测试方法也很好,它也可以在生产中的真实服务器上运行。

我还能如何解决这个问题?我是否可以使用某种机制来生成或模拟任意流量,然后知道它是否被(或将被)丢弃或接受iptables

automated-testing iptables

13
推荐指数
1
解决办法
1124
查看次数

允许 nagios 插件 check_dhcp 在没有 setuid root 的情况下工作

Nagios 有一个插件,check_dhcp它完全符合您的想法。它的广泛建议进行安装setuid root的,因为它使用了SO_BINDTODEVICE,通常只有root可以做到。当然也可以完成类似的事情sudo,但它仍然check_dhcp会在不需要 root 权限时以整个 root 权限执行。

不幸的是,check_dhcp似乎为这种用法编写的相当愚蠢,并且在完成需要执行的操作后并没有尝试删除 root 权限。这至少会导致一个已知的安全问题,但通常是不好的做法,我不想这样做。

所以我想知道,有没有什么方法可以使我能够check_dhcp执行其必要的网络接口 frobbing,而无需完全授予它所有 root 权限?也许是一些具有功能的东西,SELinux、AppArmor 或类似的东西?正在寻找 Linux 解决方案——尤其是 Ubuntu 14.04。

linux permissions nagios suid

4
推荐指数
1
解决办法
6111
查看次数

查找导致IO等待时间的进程

mpstat -P ALL 显示来自 8 核 CPU 的单个核上的高 %wa 时间,我正在尝试找出写入磁盘的内容。那么我如何才能弄清楚该 CPU 内核上正在运行什么?

linux centos multi-core process

2
推荐指数
1
解决办法
1万
查看次数