是否可以使用iptables来允许由"进程"发起的流量,即使用进程名称?我想举例说明允许ping命令启动的所有内容.
bar*_*ddu 24
它看起来像所有者 iptables模块是你想要的.首先,检查您的系统中是否可用:
iptables -m owner --help
Run Code Online (Sandbox Code Playgroud)
您可以在这里阅读更多内容:http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH
-m owner --pid-owner PID
Run Code Online (Sandbox Code Playgroud)
请参阅http://linuxpoison.blogspot.com/2010/11/how-to-limit-network-access-by-user.html和http://linux.die.net/man/8/iptables
请注意,您需要ipt_owner模块,因为xt_owner不支持--pid-owner.
例如(这只是一个近似值)
#!/bin/bash
$@ &
iptables -m owner --pid-owner %1 -j REJECT
Run Code Online (Sandbox Code Playgroud)
但实际上,你最好使用--uid-owner和--gid-owner.首先, - pid-owner标准仅匹配精确的pid,这意味着您的程序可以轻松生成一个不会被此规则阻止的子进程.(至少我没有读过.)其次,iptables(8)警告--pid-owner在SMP系统上被破坏(这可能适用于你,也可能不适用于你,但在任何一种情况下都限制了可移植性).第三,上面的脚本中存在竞争条件,因为该进程在被阻止之前就已启动.(如果有一种方法可以在进程启动之前获取进程的pid,那么我从来没有听说过它.)