手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Iptables 指南 1.1.19(中文版)(一)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

文档名和路径名象这样 /usr/local/bin/iptables


1. 序言

1.1. 为什么要写这个指南

我发现现在任何的HOWTO都缺乏Linux 2.4.x 内核中的Iptables和Netfilter 函数的信息,于是我试图回答一些问题,比如状态匹配。我会用插图和例子 rc.firewall.txt 加以说明,此处的例子能够在您的/etc/rc.d/使用。最初这篇文章是以HOWTO文档的形式书写的,因为许多人只接受HOWTO文档。

更有一个小脚本rc.flush-iptables.txt,我写他只是为使您在配置他的时候能象我相同有成功的感觉。


1.2. 指南是如何写的

我请教了Marc Boucher 及netfilter团队的其他核心成员。对他们的工作连同对我在为boingworld.com 书写这个指南时的帮助表示极大的谢意,现在这个指南在我自己的站点frozentux.net上进行维护。这个文档将一步一步教您setup过程,让您对iptables包有更多的了解。这大部分的东西都基于例子rc.firewall 文档,因为我发现这是学习iptables的一个好方法。我决定自顶向下地跟随rc.firewall 文档来学习 iptables。虽然这样会困难一些,但更有逻辑。当您碰到不懂的东西时再来查看这个文档。


1.3. 文中出现的术语

文中包含了一些术语,您应该有所了解。这里有一些解释,并说明了本文中如何使用他们。

DNAT - Destination Network Address Translation 目的网络地址转换。 DNAT是一种改变数据包目的 ip地址的技术,经常和SNAT联用,以使多台服务器能共享一个ip地址连入Internet,并且继续服务。通过对同一个ip地址分配不同的端口,来决定数据的流向。

Stream - 流 是指发送和接收的数据包和通信的双方都有关系的一种连接(译者注:本文中,作者把连接看作是单向的,流表示双向的连接)。一般的,这个词用于描述在两个方向上发送两个或三个数据包的连接。对于TCP,流意味着连接,他发送了一个SYN,然后又回复SYN/ACK。但也可能是指这样的连接,发送一个SYN,回复ICMP主机不可达信息。换句话说,我使用这个词很随意。

SNAT - Source Network Address Translation源网络地址转换。这是一种改变数据包源ip地址的技术,经常用来使多台电脑分享一个Internet地址。这只在IPv4中使用,因为IPv4的地址已快用完了,IPv6将解决这个问题。

State - 状态 指明数据包处于什么状态。状态在RFC 793 - Transmission Control Protocol中定义,或由用户在Netfilter/iptables中自定义。需要注意的是Netfilter设定了一些关于连接和数据包的状态,但没有完全使用使用RFC 793的定义。

User space - 用户空间,指在内核外部或发生在内核外部的任何东西。例如,调用 iptables -h 发生在内核外部,但iptables -A FORWARD -p tcp -j ACCEPT (部分地)发生在内核内部,因为一条新的规则加入了规则集。

Kernel space - 内核空间 ,和用户空间相对,指那些发生在内核内部。

Userland - 参见用户空间

target - 这个词在后文中有大量的应用,他表示对匹配的数据包所做的操作。


2. 准备阶段

这一章是学习iptables的开始,他将帮助您理解Netfilter和iptables在Linux中扮演的角色。他会告诉您如何配置、安装防火墙,您的经验也会随之增长。当然,要想达到您的目标,是要花费时间,还要有毅力。( 译者注:听起来很吓人的:) )


2.1. 哪里能取得iptables

iptables 能够从www.netfilter.org 下载,网站中的FAQs也是很好的教程。iptables 也使用一些内核空间,能够在用make configure配置内核的过程中配置,下面会介绍必要的步骤。


2.2. 内核配置

为了运行iptables,需要在内核配置期间,选择以下一些选项,不管您用make config或其他命令。

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

Note

严格地说,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。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!