内容摘要:netfilter的架构就是在整个网络流程的若干位置放置了一些检测点(HOOK ),而在每个检测点上上登记了一些处理函数进行处理(如包过滤,NAT等,甚至可以是用户自定义的功能)。
首先,检查你是否在使用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
来源:51CTO.com 作者:黄永兵 责编:豆豆技术应用
- Django是否已经达到顶峰?
- GitHub:基于Rails的Git库托管
- Java 7的并行支持:Fork/Join
- Daemon Tools自甘堕落 强行驻留用户电脑
- 微软官方密码强度测试工具帮你测试密码是否强悍
- 专家详解Netfilter/iptables FAQ
- 史上最牛的三大病毒结局大盘点
- 黑客眼中的OpenSSL:强大的密码工具
- CISSP的成长之路(二十三):逻辑访问控制方案
- CISSP的成长之路(二十二):用户的生物特征