在测试过程中模拟网络断开

时间:2016-02-25 21:31:29

标签: linux iptables

我是用户bob,我启动了进程script.sh。我想阻止script.sh向IP X.X.X.X发出的出站请求。

bob不是root。机器人无法获得根。

我已尝试使用

进行iptables
iptables -A INPUT -s X.X.X.X -j DROP && service iptables save

但我明白了:

iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)

更多背景信息:

我正在开发具有多个数据库和系统的开发环境。我正在编写一些测试来尝试模拟其中一个系统之间的连接被切断(然后重新连接)。如果他们不必,我不想让我的测试以root身份运行...

1 个答案:

答案 0 :(得分:1)

我建议设置一个非常有限的权限提升机制,以允许运行测试的用户调用tcpkill

例如,在/etc/sudoers中,您可能会遇到以下情况:

# allow tcpkill to be run under sudo by scripts
Defaults!/usr/sbin/tcpkill !requiretty

# allow testuser to invoke /usr/sbin/tcpkill for IP address 1.2.3.4
testuser: ALL = (root) NOPASSWD: /usr/sbin/tcpkill host 1.2.3.4