LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1233|回复: 3

请教关于把netfilter各个模块编译到内核的问题

[复制链接]
发表于 2004-4-5 10:11:39 | 显示全部楼层 |阅读模式
内核版本2.4.18
把netfilter编译到内核的时候需要选择相应的模块才能有相应的功能
如需要选择上limit match support才能使用limit模块
那么还有许多其他模块

这里的问题是,这么多模块可是本人对每个模块的功能并不了解
现在希望对每个模块的功能都有比较深入的了解,不知道哪位兄弟有相关的资料
或者对这些功能有所了解的,一起来讨论讨论

谢谢了
 楼主| 发表于 2004-4-6 16:18:40 | 显示全部楼层
#连接跟踪模块,用于 NAT(网络地址转换) 和 Masquerading(ip地址伪装),当然,还有其他应用。如果你想把LAN中的一台机子作为防火墙,这个模块是必选的了。
Connection track

        #这个选项提供针对FTP连接进行连接跟踪的功能。一般情况下,对FTP连接进行连接跟踪是很困难的,要做到这一点,需要一个名为helper的动态链接库。此选项就是用来编译helper的。如果没有这个功能,就无法穿越防火墙或网关使用FTP。
        --FTP protocol support

        #如FTP模块,这个是针对IRC的
        --IRC protocol support

#有了它,你才能使用过滤、伪装、NAT。它为内核加入了iptables标识框架。没有它,iptables毫无作用。
IPtables support

        #它提供匹配LIMIT的功能,以便于使用一个适当的规则来控制每分钟要匹配的数据包的数量。比如, -m limit --limit 3/minute 的作用是每分钟最多匹配三个数据包。这个功能也可用来消除某种DoS攻击。
        --Limit match support

        #选择这个模块,可以根据MAC地址匹配数据包。例如,我们想要阻塞使用了某些MAC地址的数据包,或阻塞某些计算机的通信,用这个很容易。因为每个Ethernet网卡都有它自己的MAC地址,且几乎从不会改变。
        --mac address match support

        #这个选项用来标记数据包。对数据包做 MARK(标记)操作,我们就可以在后面的表中用这个标记来匹配数据包。
        --metfilter MARK match support

        #选择这个模块我们可以使用端口范围来匹配数据包,没有它,是无法做到这一点的。
        --multiple port match support

        #使我们可以设置数据包的TOS(Type Of Service 服务类型)。这个工作也可以用命令ip/tc完成,还可在mangle表中用某种规则设定。
        --Tos match support

        --AH/ESP match support
        --LENGTH match support
        --TTL match support


        #可以基于MSS匹配TCP数据包。
        --tcpmss match support

        #有了它,我们可以对数据包做状态匹配。比如,在某个TCP连接的两个方向上已有通信,则这个连接上的数据包就被看作ESTABLISHED(已建立连接)状态。
        --connection static match support

        #匹配那些不符合类型标准或无效的 P、TCP、UDP、ICMP数据包.我们一般丢弃这样的包,但不知这样做是否正确。
        --unclean match support

        #根据套接字的拥有者匹配数据包。比如,我们只允许root访问Internet。在iptables中,这个模块最初只是用一个例子来说明它的功能。
        --owner match support

        #这个模块为iptables添加基本的过滤表,其中包含INPUT、FORWARD、OUTPUT链。通过过滤表可以做完全的IP过滤。只要想过滤数据包,不管是接收的还是发送的,也不管做何种过滤,都必需此模块。
        --packet filtering

                #这个操作使我们用ICMP错误信息来回应接收到的数据包,而不是简单地丢弃它。有些情况必须要有回应的,比如,相对于ICMP和UDP来说,要重置或拒绝TCP连接总是需要一个TCP RST包。
                ----REJECT target support

                #这个操作使数据包返回到发送它的计算机。例如,我们在INPUT链里对目的端口为HTTP的包设置了MIRROR操作,当有人访问HTTP时,包就被发送回原计算机,最后,他访问的可能是他自己的主页
                ----MIRROR target support

#顾名思义,本模块提供NAT功能。这个选项使我们有权访问nat表。端口转发和伪装是必需此模块的。当然,如果你的LAN里的所有计算机都有唯一的有效的 IP地址,那在做防火墙或伪装时就无须这个选项了
Full Nat

        #提供MASQUERADE(伪装)操作。如果我们不知道连接Internet的IP,首选的方法就是使用MASQUERADE,而不是DNAT或SNAT。换句话说,就是如果我们使用PPP或SLIP等连入Internet,由DHCP或其他服务分配IP,使用这个比SNAT好。因为MASQUERADE 不需要预先知道连接Internet的IP,虽然对于计算机来说MASQUERADE要比NAT的负载稍微高一点。
        --MASQUERADE target support

        #这个操作和代理程序一起使用是很有用的。它不会让数据包直接通过,而是把包重新映射到本地主机,也就是完成透明代理。
        --REDIRECT target support

        --Basic SNMP ALG support
Packet mangling
        --TOS target support
        --MARK target support


#为iptables增加 LOG(日志)操作。通过它,可以使用系统日志服务记录某些数据包,这样我们就能了解在包上发生了什么。这对于我们做安全审查、调试脚本的帮助是无价的。
LOG target support

ULOG target support

#这个选项可以对付一些阻塞ICMP分段信息的ISP(服务提供商)或服务。没有ICMP分段信息,一些网页、大邮件无法通过,虽然小邮件可以,还有,在握手完成之后,ssh可以但scp不能工作。我们可以用TCPMSS解决这个问题,就是使MSS(Maximum Segment Size)被钳制于PMTU(Path Maximum Transmit Unit)。这个方法可以处理被Netfilter开发者们在内核配置帮助中称作“criminally brain-dead ISPs or servers”的问题。
TCPMSS target support
 楼主| 发表于 2004-4-6 16:27:16 | 显示全部楼层
以上是本人找到并做了简单修改后的相关资料,可能有不正确和解释的不全面的地方,希望各位能指正

其中还有一些没有找到,希望哪位兄弟知道的可以共享
发表于 2004-4-26 17:00:20 | 显示全部楼层
翻译的不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表