`

iptables的内核配置

阅读更多

转:http://hi.baidu.com/%C1%D6%D3%C6%BE%D3%CA%BF/blog/item/e58aff44c8eda52dcffca3fb.html

 

 

CONFIG_PACKET - 允许程序直接访问网络设备(译者注:最常用的就是网卡了),象tcpdump 和 snort就要使用这个功能。

严格地说,iptables并不需要CONFIG_PACKET,但是它有很多用处(译者注:其他程序需要),所以就选上了。当然,你不想要,不选就是了。(译者注:建议还是选的为好)

CONFIG_NETFILTER - 允许计算机作为网关或防火墙。这个是必需的,因为整篇文章都要用到这个功能。我想你也需要这个,谁叫你学iptables呢:)

当然,你要给网络设备安装正确的驱动程序,比如,Ethernet 网卡, PPP 还有 SLIP 。 上面的选项,只是在内核中建立了一个框架, iptables确实已经可以运行,但不能做任何实质性的工作。我们需要更多的选项。以下给出内核2.4.9的选项和简单的说明:

CONFIG_IP_NF_CONNTRACK - 连接跟踪模块,用于 NAT(网络地址转换) 和 Masquerading(ip地址伪装),当然,还有其他应用。如果你想把LAN中的一台机子作为防火墙,这个模块你算选对了。脚本 rc.firewall.txt 要想正常工作,就必需有它的存在。

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

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

CONFIG_IP_NF_MATCH_LIMIT - 此模块并不是十分必要,但我在例子rc.firewall.txt中用到了。它提供匹配LIMIT的功能,以便于使用一个适当的规则来控制每分钟要匹配的 数据包的数量。比如, -m limit --limit 3/minute 的作用是每分钟最多匹配三个数据包。这个功能也可用来消除某种DoS攻击。

CONFIG_IP_NF_MATCH_MAC - 选择这个模块,可以根据MAC地址匹配数据包。例如,我们想要阻塞使用了某些MAC地址的数据包,或阻塞某些计算机的通信,用这个很容易。因为每个 Ethernet网卡都有它自己的MAC地址,且几乎从不会改变。但我在 rc.firewall.txt中没有用到这个功能,其他例子也未用到。(译者注:这又一次说明了学习是为将来打基础:) )

CONFIG_IP_NF_MATCH_MARK - 这个选项用来标记数据包。对数据包做 MARK(标记)操作,我们就可以在后面的表中用这个标记来匹配数据包。后文有详细的说明。

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

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

CONFIG_IP_NF_MATCH_TCPMSS - 可以基于MSS匹配TCP数据包。

CONFIG_IP_NF_MATCH_STATE - 相比较ipchains 这是最大的更新,有了它,我们可以对数据包做状态匹配。比如,在某个TCP连接的两个方向上已有通信,则这个连接上的数据包就被看作 ESTABLISHED(已建立连接)状态。在rc.firewall.txt 里大量使用了此模块的功能。

CONFIG_IP_NF_MATCH_UNCLEAN - 匹配那些不符合类型标准或无效的 P、TCP、UDP、ICMP数据包(译者注:之所以此模块名为UNCLEAN,可以这样理解,凡不是正确模式的包都是脏的。这有些象操作系统内存管理中 的“脏页”,那这里就可以称作“脏包”了,自然也就UNCLEAN了)。我们一般丢弃这样的包,但不知这样做是否正确。另外要注意,这种匹配功能还在实验 阶段,可能会有些问题。

CONFIG_IP_NF_MATCH_OWNER - 根据套接字的拥有者匹配数据包。比如,我们只允许root访问Internet。在iptables中,这个模块最初只是用一个例子来说明它的功能。同样,这个模块也处于实验阶段,还无法使用。

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

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

CONFIG_IP_NF_TARGET_MIRROR - 这个操作使数据包返回到发送它的计算机。例如,我们在INPUT链里对目的端口为HTTP的包设置了MIRROR操作,当有人访问HTTP时,包就被发送 回原计算机,最后,他访问的可能是他自己的主页。(译者注:应该不难理解为什么叫做MIRROR了)

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

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

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

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

CONFIG_IP_NF_TARGET_TCPMSS - 这个选项可以对付一些阻塞ICMP分段信息的ISP(服务提供商)或服务。没有ICMP分段信息,一些网页、大邮件无法通过,虽然小邮件可以,还有,在握 手完成之后,ssh可以但scp不能工作。我们可以用TCPMSS解决这个问题,就是使MSS(Maximum Segment Size)被钳制于PMTU(Path Maximum Transmit Unit)。这个方法可以处理被Netfilter开发者们在内核配置帮助中称作“criminally brain-dead ISPs or servers”的问题。

CONFIG_IP_NF_COMPAT_IPCHAINS - ipchains 的,这只是为内核从2.2转换到2.4而使用的,它会在2.6中删除。

CONFIG_IP_NF_COMPAT_IPFWADM - 同上,这只是 ipfwadm的暂时使用的兼容模式。

上面,我简要介绍了很多选项,但这只是内核2.4.9中的。要想看看更多的选项,建议你去 Netfilter 看看patch-o-matic。在那里,有其他的一些选项。POM可能会被加到内核里,当然现在还没有。这有很多原因,比如,还不稳定,Linus Torvalds没打算或没坚持要把这些补丁放入主流的内核,因为它们还在实验。

把以下选项编译进内核或编译成模块,rc.firewall.txt才能使用。


CONFIG_PACKET

CONFIG_NETFILTER

CONFIG_IP_NF_CONNTRACK

CONFIG_IP_NF_FTP

CONFIG_IP_NF_IRC

CONFIG_IP_NF_IPTABLES

CONFIG_IP_NF_FILTER

CONFIG_IP_NF_NAT

CONFIG_IP_NF_MATCH_STATE

CONFIG_IP_NF_TARGET_LOG

CONFIG_IP_NF_MATCH_LIMIT

CONFIG_IP_NF_TARGET_MASQUERADE

分享到:
评论

相关推荐

    linux iptables防火墙配置

    ### Linux iptables防火墙配置详解 #### 一、iptables与Linux防火墙的演进 Linux系统自诞生以来,其防火墙功能经历了多个阶段的发展。在2.0版内核时代,包过滤机制由`ipfw`承担,配套的管理工具为`ipfwadm`;到了...

    linux iptables搭建及内核升级步骤

    最后,我们需要配置iptables规则,以便使用新的内核和iptables。我们可以使用以下命令来实现: ``` *mangle:PREROUTING ACCEPT [7:336]: INPUT ACCEPT [7:336]: FORWARD ACCEPT [0:0]: OUTPUT ACCEPT [7:280]: ...

    超详细的iptables设置

    目前所有的HOWTO都缺乏Linux 2.4.x 内核中的Iptables和Netfilter 函数的信息,于是作者试图回答一些问题,比如状态匹配。作者会用插图和例子 rc.firewall.txt 加以说明,此处的例子可以在你的/etc/rc.d/使用。最初这...

    附件_Linux系统iptables配置方法.pdf

    在Linux系统中配置iptables是网络安全和系统管理中的一项基本而重要的技能。iptables是一个基于内核的包过滤系统,它允许管理员可以对网络流量实施复杂的访问控制策略。本知识点将详细介绍Linux系统下iptables配置的...

    iptables指南 1.1.19

    内核配置在此过程中至关重要,因为用户需要确保内核支持iptables所需的功能,例如netfilter和相关模块。编译iptables通常涉及到配置选项的选择,以及后续在特定操作系统(例如RedHat7.1)上的安装步骤。 iptables...

    为mini2440开发板移植iptables工具

    4. **配置内核**:使用`make menuconfig`命令打开内核配置界面。需要注意的是,在配置时必须选择所有Netfilter相关的选项为内置[*]而非模块[M],尤其是“IP: Netfilter configuration”中的“FULL NAT”选项。 5. **...

    iptables配置3.pdf

    iptables是Linux系统中的一种强大的网络访问控制工具,它基于netfilter框架实现,主要负责在网络数据包进入、离开...通过熟练掌握iptables的配置和规则设定,可以有效地管理和保护网络环境,确保系统的安全性和稳定性。

    iptables指南1.1.19电子书

    2.2. 内核配置 2.3. 编译与安装 2.3.1. 编译 2.3.2. 在Red Hat 7.1上安装 3. 表和链 3.1. 概述 3.2. mangle 表 3.3. nat 表 3.4. Filter 表 4. 状态机制 4.1. 概述 4.2. conntrack记录 4.3. 数据包在用户...

    iptables配置实例[参考].pdf

    iptables是Linux内核中的一种包过滤工具,用于在网络流量中执行访问控制策略,它通过定义一系列规则来决定数据包是否可以被转发、接受或者丢弃。以下是对iptables配置实例的详细解析: 一、链的基本操作 1. 清除...

    Linux iptables Pocket Refrence

    Linux内核中的网络数据包处理子系统被称为Netfilter,而iptables则是用于配置Netfilter的主要命令工具。本书涵盖了iptables用户空间工具版本1.2.7a,该版本支持Linux内核2.4版本,并且也覆盖了大部分2.6版本的功能。...

    070604iptables应用L71

    然后,使用 make oldconfig 命令生成新的内核配置文件。接着,使用 make menuconfig 命令设定内核参数,包括 Code maturity level options、Networking options 和 IP tables support 等。 编译新内核后,需要重新...

    android流量防火墙iptables原理详解

    Iptables 是与最新的 2.6.x 版本 Linux 内核集成的 IP 信息包过滤系统。当 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器时,该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙...

    squid+iptables透明代理配置詳解

    - **iptables**: Linux内核的一部分,用于在网络层实现数据包过滤功能。它通过定义一系列规则来决定数据包的去向,是实现网络通信安全的重要工具。 - **透明代理**: 无需客户端显式配置代理服务器地址即可使用的代理...

    iptables基本命令规则简介

    iptables 是基于内核的防火墙,功能非常强大,iptables 内置了 filter,nat 和 mangle 三张表。filter 负责过滤数据包,包括的规则链有,input,output 和 forward;nat 则涉及到网络地址转换,包括的规则链有,...

    通过iptables实现端口转发和内网共享上网.docx

    iptables是一个Linux下的优秀的nat+防火墙工具,可以配置灵活强劲的防火墙+nat系统。 首先,需要说明的是,iptables操作的是2.4以上内核的netfilter。因此,需要Linux的内核在2.4以上。其功能与安全性远远比其前辈...

    iptables详解

    iptables内置于Linux内核之中,通过命令行界面操作。 #### 二、iptables基本概念 1. **链(Chain)**: iptables包含五种不同的链,分别对应数据包处理的不同阶段:`INPUT` (接收数据包)、`FORWARD` (转发数据包)、`...

    iptables-1.8.7.tar.bz2

    iptables是一个用户空间命令行工具,用于配置Linux 2.4和更高版本的内核包过滤规则集。

    Iptables速查手册

    - 其他网络管理工具:如iproute2等,可以与iptables协同工作,提供更强大的网络配置和管理功能。 #### 七、总结 Iptables是Linux系统中不可或缺的网络管理工具之一,它提供了丰富的功能和灵活性,能够满足不同...

    iptables和firewall的区别

    1. **共享的内核模块**:无论是iptables还是firewalld,它们都是基于Linux内核中的netfilter框架来实现的。netfilter是一个核心组件,用于处理网络数据包过滤、地址转换等任务。iptables和firewalld都通过调用...

    iptables防火墙应用指南

    iptables作为Linux 2.4及2.6内核的标准组件,相比之前的防火墙管理工具如ipfwadm和ipchains,提供了更加强大且安全的功能。通常认为iptables主要工作在网络模型的第二层(数据链路层)、第三层(网络层)和第四层...

Global site tag (gtag.js) - Google Analytics