我正在寻找满足以下条件的长期 iptables 规则。假设我们有一个用户池(从:--uid 所有者 100,到:--uid 所有者 200)我们的 iptables 规则:
iptables -t filter -A OUTPUT -m owner --uid-owner 100 -j REJECT
问题:如何随机改变论点
--uid-owner
每 5 分钟?
问候。马克
答案1
这样做的根本目的是检查 iptables 是否能够使用随机变量参数。或者如何将随机变量参数内置到 iptables 规则中?[quote] 限制给定用户可以执行的网络活动量[/quote] 这不是重点,只是示例。
答案2
答案取决于您到底想如何做。
我能想到的最简单的方法是让 cronjob 每五分钟使用随机 UID 重新生成一条规则(如何获取该随机 UID 取决于您的需求,但也可能被黑客入侵--uid-owner $(( 100 + $RANDOM%100 ))
)。
您需要一种删除先前随机规则的方法,但我认为这符合您的要求。
另一种方法可能是为每个 UID 创建一个规则,每个规则如下所示:
-A CHAIN --uid-owner NUMBER -m statistic --mode random --probability 0.9 -j DROP
我认为这样做和您所建议的是一样的 - 但我可能误解了您的确切意思。
答案3
恐怕我表达自己的观点的方式不够充分。简而言之,这个想法是拒绝随机用户在 OUTPUT 链中的整个流量,并每 5 分钟更改一次用户。换句话说,iptables 规则:[code]iptables -t filter -A OUTPUT -m Owner --uid-owner 100 -j REJECT[/code] 将拒绝(针对一个随机用户)OUTPUT 链中的整个流量 5 分钟。没有互联网连接。其他人将享受互联网连接,每 5 分钟不同的(随机)用户将受到歧视
答案4
你怎么看待这件事?
iptables -t nat -A POSTROUTING -o eth0 --uid-owner 001-100 -m statistic --mode random --probability 0.9 -j DROP