阻止某些uid(root,apache,nobody)的传出连接


8

在CentOS 5和6 Linux中使用iptables-如何防止以rootapachenobody运行的进程启动传出连接?

在CentOS 5 Linux上,我尝试将这些行放入/ etc / sysconfig / iptables中:

-A OUTPUT -m owner --uid-owner root -j DROP
-A OUTPUT -m owner --uid-owner apache -j DROP
-A OUTPUT -m owner --uid-owner nobody -j DROP

但不幸的是得到错误:

# sudo service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: owner: Bad value for "--uid-owner" option: "apache"
Error occurred at line: 27
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [FAILED]

您不能使用iptables做到这一点。iptables仅检查ip数据包,并且那里没有有关uid / gid的信息。iptables的只能由源/目标字段,港口禁止数据包,...
Goez

我知道OpenBSD的pf可以做到。而且Linux iptables中似乎也有-m所有者。所以也许你错了?
亚历山大·法伯

如果我检查我的联机帮助页,-m代表match(模块)而不是所有者,则可能是该进程的所有者的模块,不确定。
Goez 2012年

以我的理解,“-m owner”对iptables说:“请加载'owner'模块,这样我们就可以做事情”
Alexander Farber

刚刚检查,确实有一个所有者模块。以前从未听说过。但这适用于数字ID,因此他将不得不更改其规则
-Goez,

Answers:


8

尝试使用数字UID代替名称。例如:

-A OUTPUT -m owner --uid-owner 400 -j DROP

代替

-A OUTPUT -m owner --uid-owner apache -j DROP

您可以通过键入以下内容找到UID

id user
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.