场景:我为一个主机编写了iptables规则,其中新闻部引擎正在监视Netfilter队列:防火墙规则将传入此主机的流量排入不同的Netfilter队列,这取决于流量是否来自我的某个ipset。
在FORWARD链中,所有连接都在不同的NFQUEUES中排队: DPI引擎在用户空间队列中监视iptables发送的数据包,如果观察到禁止的连接,它会用特定值标记数据包;DPI引擎在堆栈中重新插入禁止的数据包;在POSTROUTING链中,我检查连接是否使用该特殊值标记,如果是,则检查是否使用该特殊值标记连接。
一切都很好但是..。
问题:DPI引擎很好,但并不完美:有时,
RELATED,根据连接机),但我也想阻止相关连接。第二种情况是我想要采取行动的情况:作为案例2的一个例子,假设DPI引擎想阻止YouTube,但他并没有快速地阻止它;它让YouTube连接打开另一个连接,这个连接被标记为来自YouTube引擎的SSL;新闻部引擎最终阻塞了YouTube,但是SSL连接是免费的,但是我不能告诉新闻部引擎阻止SSL连接,不管是什么连接打开了它们。
注意事项:正如场景中所解释的那样,POSTROUTING链中的数据包可能被标记为0(这是默认值,因此DPI引擎没有采取任何行动)或使用该特殊值(DPI引擎看到了禁止的连接并标记了它):一个简单的
iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP
这几乎总是足够的,但在问题部分中,我写道,与禁止连接相关的连接在DPI引擎中并不是如此,因为即使它们是由禁止连接创建的,它的协议也没有被列入黑名单,因此没有被视为禁止连接。这是对的,因为我不能把SSL和HTTPS列入黑名单。
我需要阻止连接( RELATED )到被禁止的连接:RELATED和ESTABLISHED (如果我理解的话)并不是指特定的连接,而是需要引用禁止的连接。
问题:是否可以将连接RELATED删除到iptables中的连接以删除(或已经删除)?还是有必要对conntrack进行黑客攻击?
谢谢您的建议。
发布于 2018-03-12 16:05:02
你误解了RELATED。这并不是用于单个地址可能建立的每个连接。它仅用于实际相关的数据,例如与FTP控件连接关联的FTP数据流,或与打开连接关联的ICMP错误消息。很少有这样的连接能够与RELATED相匹配。
https://serverfault.com/questions/901225
复制相似问题