频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

专家详解Netfilter/iptables FAQ

来源:51CTO.com 作者:黄永兵 译 出处:巧巧读书 2008-04-19 进入讨论组
上一页 1 2 3 4 5 下一页 
14、我如何使用LOG target/我能记录日志和删除日志吗?
LOG target我们叫做非终端的目标,如:它不终止数据包规则的遍历。如果你使用了LOG target,数据包将被记录,规则遍历一个接一个地进行。

那么在同一时间我如何记录日志和删除日志呢?没有比这更容易的了,创建一个自定义链表,包括下面2个规则:
iptables -N logdrop
iptables -A logdrop -j LOG
iptables -A logdrop -j DROP
现在每当你想记录和删除一个数据包时,你可以使用‘-j logdrop’来完成了。

15、我如何用netfilter阻止蠕虫XYZ?
简单地说你不能用netfilter正确地阻止。大多数蠕虫使用一个合法的高级协议(如HTTP,SMTP—如用VB脚本附加一个email,或者寄生在后台进程的病毒攻击代码控制了协议),高级协议意味着高于TCP/IP,因为iptables无法理解这些高级协议,所以它几乎不能过滤出任何内容,因此,你需要的是应用程序过滤代理。

请不要从patch-o-matic使用字符串匹配替代应用程序代理过滤,它任何时候都能战胜不完整的数据包(如一个HTTP请求被分成2个TCP数据包),通过IDS逃避技术等,你会收到警告信息,字符串匹配是有用的但是目的各不相同。

16、内核日志:Out of window data xxx
你从patch-o-matic使用了tcp-window-tracking补丁,它的代码保持跟踪可接受的允许TCP数据流按照数据包的序列/应答号、分段大小等数据包,当它检查一个不可接受的数据包时(窗口之外),它将其标记为INVALID并打印出上面的消息。

新版本的数据包日志什么失败条件才会正确地记录:
ACK在较低的界限之下(可能过分延迟的ACK)
ACK在较高的界限之上(ACK数据还没有被看到)
SEQ在较低的界限之下(转发已经ACK的数据)
SEQ在较高的界限之上(超过了窗口的接收条件)
同时,在新版本中,日志能能通过sysctl完全被抑制
echo 0 > /proc/sys/net/ipv4/netfilter/ip_ct_tcp_log_out_of_window

17、为什么连接跟踪系统跟踪无应答的连接非常容易超时?
首先,检查你是否在使用2.4.20内核,如果是,请立即应用https://bugzilla.netfilter.org/cgi-bin/bugzilla/showattachment.cgi?attach_id=8这个补丁!2.4.20内核有一个已经确认的bug引起大量伪造的UNREPLIED连接跟踪条目(查看https://bugzilla.netfilter.org/cgi-bin/bugzilla/show_bug.cgi?id=56)

因此你看/proc/net/ip_conntrack时就会发现UNREPLIED条目有一个非常高的计时器(可能超过5天),你可能会感到非常奇怪,为什么我们要浪费连接跟踪条目在UNREPLIED条目(很明显,它没有连接)上呢?

答案很简单:UNREPLIED条目是临时条目,如:一旦我们的连接跟踪条目装满时(达到/proc/sys/net/ipv4/ip_conntrack_max定义的数量时),我们将删除旧的UNREPLIED条目。换句话说:用空条目进行替换,我们只保留真实有用的条目。

18、为什么不能执行iptables –c(--check)?
首先是我们懒惰:),一旦你启动了有状态的防火墙要执行一个检查选项几乎是不可能的,传统的无状态的防火墙仅依赖当前数据包的头来进行判断,但是使用连接跟踪后(-m state规则),过滤结果的判断依赖于数据包头+有效负载,也包括这个连接里面前面的数据包。

19、为什么我在PREROUTING链表中不能使用REJECT target?
REJECT target是为过滤器准备的,过滤表已经有INPUT/OUPUT/FORWARD链表了,REJECT target只能用在这些链表中(以及子链表)。
Netfilter用户在nat或mangle表中不做包过滤。

20、在内核升级后(nat表)报'iptables: Invalid argument'
你只升级了你的内核,没有对命令进行修改(特别是nat表),你经历的可能象下面这样:
# iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
iptables: Invalid argument

这会在内核和用户空间之间的结构大小发生变化是发生,你需要重新编译iptables用户空间程序,使用包括你新内核的文件进行编译,如果你已经应用了一些只针对旧或新内核的补丁也会发生,使用kernel.org上的内核一般不会发生,如果发生了,请到netfilter-devel邮件列表寻求支持。

进入讨论组讨论。
上一页 1 2 3 4 5 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章