您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Iptables-指南-1.1.19
Iptables指南1.1.19OskarAndreassonoan@frozentux.netCopyright©2001-2003byOskarAndreasson本文在符合GNUFreeDocumentation许可版本1.1的条件下,可以拷贝、分发、更改,但必须保留绪言和所有的章节,如印刷成书,封面要包括“原著:OskarAndreasson”,且书背不准有文字。本文附录有“GNUFreeDocumentationLicense”的详细内容。文中的所有脚本均置于GNUGeneralPublicLicense版本2下,可以自由地分发、更改。给出这些脚本是希望它们有所作用,但没有任何保证,也没有商业可用性或某些特殊用途的内在保证。参见GNUGeneralPublicLicense本文附带一份GNUGeneralPublicLicense,在章节“GNUFreeDocumentationLicense”中,如没有,请联系theFreeSoftwareFoundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA献辞首先,我要把本文献给我那wonderful的女友Ninel(她给我的帮助远远胜过我给她的):希望我能让你幸福,就象你给我的。(译者注:我没有想到合适的词能表达作者女友的wonderful,你就自己想去吧。还有,不知他们现在是否结婚了:))其次,我要把这篇文章献给所有Linux的开发者和维护者,就是他们完成了令人无法相信的艰难工作,使这么优秀的操作系统成为可能。目录译者序关于作者如何阅读必备知识本文约定1.序言1.1.为什么要写这个指南1.2.指南是如何写的1.3.文中出现的术语2.准备阶段2.1.哪里能取得iptables2.2.内核配置2.3.编译与安装2.3.1.编译2.3.2.在RedHat7.1上安装3.表和链3.1.概述3.2.mangle表3.3.nat表3.4.Filter表4.状态机制4.1.概述4.2.conntrack记录4.3.数据包在用户空间的状态4.4.TCP连接4.5.UDP连接4.6.ICMP连接4.7.缺省的连接操作4.8.复杂协议和连接跟踪5.保存和恢复数据管理规则5.1.速度5.2.restore的不足之处5.3.iptables-save5.4.iptables-restore6.规则是如何练成的6.1.基础6.2.Tables6.3.Commands6.4.Matches6.4.1.通用匹配6.4.2.隐含匹配6.4.3.显式匹配6.4.4.针对非正常包的匹配6.5.Targets/Jumps6.5.1.ACCEPTtarget6.5.2.DNATtarget6.5.3.DROPtarget6.5.4.LOGtarget6.5.5.MARKtarget6.5.6.MASQUERADEtarget6.5.7.MIRRORtarget6.5.8.QUEUEtarget6.5.9.REDIRECTtarget6.5.10.REJECTtarget6.5.11.RETURNtarget6.5.12.SNATtarget6.5.13.TOStarget6.5.14.TTLtarget6.5.15.ULOGtarget7.防火墙配置实例rc.firewall7.1.关于rc.firewall7.2.rc.firewall详解7.2.1.参数配置7.2.2.外部模块的装载7.2.3.proc的设置7.2.4.规则位置的优化7.2.5.缺省策略的设置7.2.6.自定义链的设置7.2.7.INPUT链7.2.8.FORWARD链7.2.9.OUTPUT链7.2.10.PREROUTING链7.2.11.POSTROUTING链8.例子简介8.1.rc.firewall.txt脚本的结构8.1.1.脚本结构8.2.rc.firewall.txt8.3.rc.DMZ.firewall.txt8.4.rc.DHCP.firewall.txt8.5.rc.UTIN.firewall.txt8.6.rc.test-iptables.txt8.7.rc.flush-iptables.txt8.8.Limit-match.txt8.9.Pid-owner.txt8.10.Sid-owner.txt8.11.Ttl-inc.txt8.12.Iptables-saverulesetA.常用命令详解A.1.查看当前规则集的命令A.2.修正和清空iptables的命令B.常见问题于与解答B.1.模块装载问题B.2.未设置SYN的NEW状态包B.3.NEW状态的SYN/ACK包B.4.使用私有IP地址的ISPB.5.放行DHCP数据B.6.关于mIRCDCC的问题C.ICMP类型D.其他资源和链接E.鸣谢F.HistoryG.GNUFreeDocumentationLicense0.PREAMBLE1.APPLICABILITYANDDEFINITIONS2.VERBATIMCOPYING3.COPYINGINQUANTITY4.MODIFICATIONS5.COMBININGDOCUMENTS6.COLLECTIONSOFDOCUMENTS7.AGGREGATIONWITHINDEPENDENTWORKS8.TRANSLATION9.TERMINATION10.FUTUREREVISIONSOFTHISLICENSEHowtousethisLicenseforyourdocumentsH.GNUGeneralPublicLicense0.Preamble1.TERMSANDCONDITIONSFORCOPYING,DISTRIBUTIONANDMODIFICATION2.HowtoApplyTheseTermstoYourNewProgramsI.示例脚本的代码I.1.rc.firewall脚本代码I.2.rc.DMZ.firewall脚本代码I.3.rc.UTIN.firewall脚本代码I.4.rc.DHCP.firewall脚本代码I.5.rc.flush-iptables脚本代码I.6.rc.test-iptables脚本代码ListofTables3-1.以本地为目标(就是我们自己的机子了)的包3-2.以本地为源的包3-3.被转发的包4-1.数据包在用户空间的状态4-2.内部状态6-1.Tables6-2.Commands6-3.Options6-4.Genericmatches6-5.TCPmatches6-6.UDPmatches6-7.ICMPmatches6-8.Limitmatchoptions6-9.MACmatchoptions6-10.Markmatchoptions6-11.Multiportmatchoptions6-12.Ownermatchoptions6-13.Statematches6-14.TOSmatches6-15.TTLmatches6-16.DNATtarget6-17.LOGtargetoptions6-18.MARKtargetoptions6-19.MASQUERADEtarget6-20.REDIRECTtarget6-21.REJECTtarget6-22.SNATtarget6-23.TOStarget6-24.TTLtarget6-25.ULOGtargetC-1.ICMP类型译者序译者sllscn是中国Linux公社里的“Linux新鲜社员”,一个Linux爱好者,在实际工作中使用iptables构造防火墙时,发现有关iptables的中文资料太少,故而不得已参考英文版的材料。为了今后参考的方便,也为了广大使用者,不怕自己的英文水平太差,翻着字典翻译了本文。翻译只为了能看懂,达不到“好看”,勿怪!第一章序言部分除了第三小节介绍的术语要看看,其他都没什么。第二章对想要亲自编译iptables的兄弟们是有些帮助的。第三、第四两章可以使我们理解、掌握iptables工作方式和流程。第五章和第六章是iptables命令使用方法的详细介绍。第七章与第八章是实例讲解,对我们编写自己的规则很有指导意义的,强烈建议你看一看。附录里有一些资源链接是很好的,相信你一定会喜欢。因为术语的缘故,目录部分有一些未翻译,但正文的内容都翻译了。附录F是本文的更新历史,附录G是GNUFreeDocumentationLicense,附录H是GNUGeneralPublicLicense,它们对理解iptables没有什么作用,故未翻译。在阅读本文时,你可能会发现有重复的地方,这不是原作者的水平不高,反而恰恰是他为我们考虑的结果。你可以把这篇文章的任何一章抽出来阅读,而不需要反复地参照其他章节。在此,再次向作者表示敬意!因译者水平有限,对原文的理解不敢保证完全正确,如有意见或建议,可以联系译者slcl@sohu.com郑重声明:翻译得到了原文作者OskarAndreasson的许可。对于本文(不是原文),可自由使用、修改、传播、转载,但对以盈利为目的使用,保留所有权利。/DIV关于作者我的局域网里有很多“年老的”计算机,他们也想连接到Internet上,还要保证安全。做到这一点,iptables是的ipchains的一个很好的升级。使用ipchains你可以通过丢弃所有“目的端口不是特定端口”的包来建立一个安全的网络。但这将导致一些服务出现问题,比如被动FTP,还有在IRC中流出的DCC。它们在服务器上分配端口,并告知客户端,然后再让客户连接。但是,iptables的代码中也有一些小毛病,在某些方面我发现这些代码并没有为作为完整的产品发布做好准备,但我仍然建议使用ipchains或更老的ipfwadm的人们进行升级,除非他们对正在使用的代码满意,或它们足以满足他们的需要。/DIV如何阅读本文介绍了iptables,以便你可以领会iptables的精彩,文中不包含iptables或Netfilter在安全方面的bug。如果你发现iptables(或其组成部分)任何bug或特殊的行为,请联系Netfiltermailinglists,他们会告诉你那是否是bug或如何解决。iptables或Netfilter中几乎没有安全方面的bug,当然偶尔也会出些问题,它们能在Netfilter主页中找到。文中用到的脚本不能解决Netfilter内部的bug,给出它们,只是为了演示如何构造规则,以便我们能解决遇到的数据流管理问题。但本文没有包括象“如何关闭HTTP端口,因为Apache1.2.12偶尔会被攻击”这样的问题。本指南会告诉你如何通过iptables关闭HTTP端口,但不是因为Apache偶尔会被攻击。本文适合于初学者,但也尽可能完善。因为有太多的targets或matches,所以没有完全收录。如果你需要这方面的信息,可以访问Netfilter主页。必备知识阅读本文,要具备一些基础知识,如Linux/Unix,shell脚本编写,内核编译,最好还有一些简单的内核知识。我尝试着尽可能使读者不需要这些知识也能完全弄懂这篇文章,但要理解扩展部分是不行的。所以还是要有点基础的:)本文约定以下的约定会在文中用到:代码和命令输出使用定宽字体,命令用粗体。[blueflux@work1neigh]$lsdefaulteth0lo[blueflux@work1neigh]$所有的命令和程序名都用粗体。所有的系统部件,如硬件、内核部件、loopback使用斜体。计算机文本输出用这种字体。文件名和路径名象这样/usr/local/bin/iptables。1.序言1.1.为什么要写这个指南我发现目前所有的HOWTO都缺乏Linux2.4.x内核中的Iptables和Netfilter函数的信息,于是我试图回答一些问题,比如状态匹配。我会用插图和例子rc.firewall.txt加以说明,此处的例子可以在你的
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:Iptables-指南-1.1.19
链接地址:https://www.777doc.com/doc-4620610 .html