NAT服务器与防火墙_第1页
NAT服务器与防火墙_第2页
NAT服务器与防火墙_第3页
NAT服务器与防火墙_第4页
NAT服务器与防火墙_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NAT服务器与防火墙-NAT服务器与防火墙I浅谈IP|NAT原理及主要功能INAT服务器的安装与使用Iiptables在防火墙上的运用I实例练习I防火墙的简单设置|iptables设置文件参考范例Squid服务器有着快速读取功能,减少了客户端直接连接Internet的机会,不足,这在目前以IPv4为主流的网络环境中,的确困扰着许多系统及网络设计人员。因此本章将使用NAT的方式来提供这一问题的解决方案。除此之外,利用NAT概念的扩展,我们也将介绍防火墙的基本概念以及它对企业网络安全性的影响。♦浅谈IP因为NAT的使用主要是为了解决IP地址不足的问题,所以在学习NAT的内容前,必须先对IP地址的意义及功能要有基本的了解。本节将就IP的基本特性逐一介绍以帮助读者建立正确的概念。IP的定义IP是位于OSI网络模型中的网络层(NetworkLayer)能信协议,它也是TCP/IP通信协议,它也是TCP/IP通信协议组件中最重要的两个通信协议之一,目前Internet中使用的版本是IPv4,有关它的标准都定义在RFC791中。IP主要定义3个基本概念:•在TCP/IP网络中定义数据传输的基本单位--数据报(Datagram),所有数据在网络上传递都有特定的格式。IP运行路由(Routing)的功能,它会选择一条最佳路径供数据传输之用。•订立数据报在不可靠(Unreliable)的网络上传递时应该遵循的原则。通常IP是利用以下的运作模式将数据发送到网络上的:源主机IP层之上的传输服务会选将数据以TCP或UDP的格式发送到IP层上。IP层再将来源及目地的地信息(用来在网络上路由的数据)与IP数据报组合。接下来IP层将数据报向下发送到网络接口层,在这一层中,数据链路服务会将IP数据报转换成框架,以便在物理网络中的特定媒体上进行传递。因为每个IP数据报都包含来源及目的的地址,然后将这个地址与区域维护的路由表相比较,再判定需进一步采取的转送动作,而在目的地主机上则要运行反向处理。IP寻址除了路由之外,IP的另一项重要功能为寻址(Addressing)目前Internet上都使用这套标准来表示主机和网络点的逻辑地址,而通过这个管理模式,可以确定每台主机或网络都拥有惟一的识别方法,这可避免地址重复问题的发生。有一点请大家注意的,每个网络设备的物理地址(MAC)也具有惟一性,可以用来精确表示网络上的主机位置,但因为无法利用其地址来建立一套管理方法,所以通常无法达到寻址的功能所以才设计出IP的寻址方法。在IPv4中,每台主机所使用的IP地址都是以32个二进制的数字来表示,如011110101011001010010110101101111,这种表示法可以确保Internet上的每台主机都有惟一的地址,因为这些地址都需要经过InterNIC的授权才可以使用。如果知道特定的IP地址,就可以利

用这个地址来连接到此主机。以上的例子中使用32个二进制的数字来表示IP地址,当然也可以使用十六进制(75652D6F)或十进制(196965039)来表示,但这些表示法都很难让一般用户记忆。所以IP地址通常使用DottedDecimalNotation(DDN)表示法,它是将32个二进制的位分为4个字节(有时也称为Octet),然后将每个字节以十进制来表示,而每个字节之间以一具句点(.)来分隔。因此,上例中的IP地址DDE表示法为11,这个表示法并没有什么特殊意义,只是利于识别的方便,如图1-1所示。7S652D6F图牝1不同的IP地址表示法510D1D10D101157S652D6F图牝1不同的IP地址表示法510D1D10D10115Qll&lllj117.10145111DDN表示法二进制林法十六进制表示法根据IP的定义,每个IP地址都是由两个部分所组成:网络识别码(NetworkID)及主机识别码(HostID)。例如,网络识别码包含8位,则主机识别码就有32-8=24个位。而用来判断网络识别码的主机识别码包含的位数,就必须使用子网掩码(SubetMask)和IP地址来运算,举例来说,在一般情形下,IP地址为6的网络识别码是150.23,而主机识别码为51.36,如图1-2所示。IP地址图1-2IP地址是由网络识别码及主机识别码组成32位网络标识码主机标识码网络识别码在网络中是相当重要的概念,因为它可用来识别TCP/IP网络中的网络节点,而所有位于同一具网络节点中的主机,都拥有相同的网络识别码。换句话说,如果两台主机的IP地址中包含相同的网络识别码,则它们可以互相传递信息,而无需通过路由器或网关转送。反之,如果两台主机的IPIP地址图1-2IP地址是由网络识别码及主机识别码组成32位网络标识码主机标识码而主机识别码是用来识别TCP/IP网络中的节点(可能是工作站、服务器、路由器或其他TCP/IP设备),每台设备的主机识别码在本地的网络节点都必须惟一,如果同一个网络节点中的两台主

机具有相同的主机识别码,则它们会发生无法连接网络的问题,但是在不同网络节点中的两台主机可以使用相同的主机识别码。例如,1和1不以同时存在网络中,因为它们的网络识别码和主机识别码都相同,但是1和1可以同时存在不同的网络中,因为它们的主机识别码虽然相同,但是网络识别码却不同。♦IP地址类别因为每个IP地址都是由32个二进制的数字组成,所以理论上来说,应该会存在2的32次方个合法IP地址(232=4294967296),但是事实上并没有如此多的IP地址。目前InterNIC利用控制IP地址中的第一个字节(前8个位)来区分为5个IP类别,我们称它们为ClassA、ClassB、ClassC、ClassD、和ClassE、如图1-3所示。12345678C13ssD1110参点传输旧地址图牝3IP地址类别•ClassA在ClassA的网络中,每个网络都是利用前8个位来定义,因此有时也称为“/8网络”。因为第一个位已被事先定义为二进制的0,所以ClassA的第1个字节是由00000001-01111111,也就是十进制的1〜127,但因为127是个特殊的网络识别码(LookbackAddress),所以目前Internet上具有126个ClassA网络。12345678C13ssD1110参点传输旧地址ClassA使用最后3个字节(24个位)来表示主机识别码,因此每个ClassA网络可以包含的主机数目为224,也就是16777216台主机。但是主机识别码全为1和0表示广播网络地址,因此每个ClassA网络实际的主机机数目为16777214,由此可知,所有VlassA的主机数目是126*16777214=2113928964。•ClassB在ClassB网络中,每个网络都是利用前16个位来定义,因此有时也称为“/16网络”。因为前2个位已被事先定义为二进制的10,所以ClassB的第一个字节是由10000001〜10111111也就是十进制的128-191,而第二个字节也是网络识别码,所以Internet上具有64*28=16384个ClassB网络。ClassB使用最后2个字节(16个位)来表示主机识别码,因此每个ClassB网络可以包含的主机数目为216,也就是65536台主机。但是主机识别码,因此每个ClassB网络可以包含的主机数目为65534,由此可知,所有ClassB的主机数目是167384*65534=1073709056。ClassC在ClassC的网络中,每个网络都是利用前24个位来定义,因此有时也称为—/24网络”。因为前3个位已被事先定义为二进制的110,所以ClassC的第一具个字节是由11000001-11011111,也就是十进制的192-223,而第2和第3个字节也是网络识别码,所以目前Internet上具有32*216=2097152个ClassC网络。ClassC使用最后1个字节(8个位)来表示主机识别码,因此每个ClassC网络可以包含的主机数目为28,也就是256台主机。但是主机识别码全为1和0表示广播及网络地址因此实际的主机数目为254,而所有ClassC的主机数目是254*2097152=532676608。ClassDClassD的IP地址只供多点发送(Multicast)的群组计算机使用,也就是说以这些地址发送的信息可以同时发送到多台主机,这些地址是用在某些特殊的软件组或服务。ClassD网络的前4个位已被事先定义为二进制的1110,所以ClassD的第一个字节是由11100001-1101111,也就是十进制224-239,所以目前有16个ClassD网络,但这些地址并不提供给一般的Internet主机使用,它可以不具有子网掩码。ClassEClassE的IP地址是属于实验用的地址,这些地址并不提供给一般的Internet主机使用,它的前5个位已被子事先定义为二进制的11110,所以ClassE的第一个字节是由11110001-11110111,也就是十进制的240-254,所以目前有15个ClassE网络。•私有IP地址(PrivateIPAddress)如果用户的网络不不连接Internet,那么无湎为了使用TCP/IP通信协议而向InterNIC或ISP取得已登录的IP地址使用权,在此情形下,IANA(InternetAssignedNumbersAuthority)建议使用"私有IP地址”。这些地址都是由IANA所保留,主要是提供在TCP/IP网络上的私人使用,Internet上的主机也不可使用这些地址,而这些私有IP地址正是NAT运作上所使用的地址。这些私有IP地址的范围如表1-2所示私人陶络识别码子幽掩码IP地址泡围-54-541P2.16S.0.0192.16S.0.1-192.16S.255.254注:有些人习惯将这些IANA保留IP地址称为虚拟IP,而开放在Internet上的地址则称为物理IP地址,但是作者认为这些名称并不合适。因为这些保留的IP地址也是由RFC正式定义的IP地址,何称“虚拟”呢?所以我们将用“内部IP”表示从IANA所保留的IP地址,而在Internet上使用的IP地址则是以“外部IP”来表示。♦子网掩码(SubnetMask)子掩码和一般的IP地址相同,都是由32个二进制的数字所组成,它的惟一功能就是辨别IP地址中网络识别码和主机识别码部分为什么,这在网络传输上相当重要,因为具有相同网络识别码的主机要以直接地通信,而不同网络识别码的主机就需要通过网关来转送信息。在利用子网掩码判断IP地址的网络识别码和主机识别码的部分时,要按以下的步骤来运算我们在此以一个ClassB的IP地址——5和ClalssB默认的子网掩码---为例。将IP地址转换为二进制表示法

在所有的子网掩码运算和子网分割运算中,所有的IP地址及子网掩码都必须先转换为二进制表示法。在本例中5的二进制表示法为10010110000101110011100000011001注:在转换为二进制表示法时须注意一点,如果不足8位时须以0补足,例如56的二进制表示法应写成00111000”,而不是111000”。将子网掩码转换为二进制表示法在本例中子网掩码的二进制表示法为1111111111111110000000000000000而各种类型网络默认的子网掩码如表1-3所示。地址类型子幽掩码的位子幽掩码ClalssA地址类型子幽掩码的位子幽掩码ClalssA11111111000000000000000000000000ClalssB11111111111111110000000000000000ClalssC11111111111111111111111100000000将以二进制表示法的IP地址和子网掩码利用AND”运算所谓AND”运算是指真值表中与”的运算,只要二者其中有一个是0,则运算后值就为0,只有在二者都为1的情形下才会为1。有关AND”运算的结果如下所示:1AND1=11AND0=00AND1=00AND0=0在了解AND”运算后,就可以将以二进制表示法的IP地址和子网掩码利用AND”来运算,运算的过程及结果如图1-4所示。IP地址=子网捕码=1001011000010111001110000001100111111111111111110000000000000000AND冒结臬10010110000101110000000000000000图1-4IP地址和子网掩码利用“AND”运算过程及结果运算结果中非0的部分为网络识别码在IP地址和子网掩码利用AND”运算后,它的结果中不是0的部分就是网络识别码,在本例中为150.23,但是通常习惯用0来将它写成类似IP地址的形态,如。在发送信息前,IP即是以这种方法来判断目的地的主机是否存在本地网络,如果目的地主机位于远程网络,IP就会将此信息发送到路由或默认的网关,如图1-5所示。IP地址=1000000100010111011000101111101011000100010110000000000101100001子网呻1111111111111111000000000000000011111111111111111111111100000000IAND果:1000000100010111000000000000000011000100010110000000000100000000尹19B.8B.1.0图1-5判断两台主机是否位于同一网络节点由以上的结果可知,如果要避免寻址及路由问题,应该确保在同一网络区域上的所有TCP/IP主机都使用相同的子网掩码。♦NAT原理及主要功能前面内容介绍了IP的基本概念,接下来将开始介绍有关NAT的内容。所谓网络地址转换(NetworkAddressTranslation,NAT),它是定义于RFC1631中的Internet标准,主要是用来简化及保存IP地址,它可让原本无法上网,但是可以使用内部IP地址的主机可以成功地连接Interneto这可大大减少IP地址的需求,因为基本上整个内部网络都可凭借NAT上的一具外部IP来连接Internet,如图1-6所示。

当NAT作用于路由器时,通常可连接两组以上的网络上在转送数据包到其他网络前,将内部IP地址转换为Internet上合法的外部IP地址。此外,NAT还可以对外只用一个地址代表整个网络,这样可以提供更高的安全性,将整个内部网络隐藏在该地址后,将这种安全性及地址保存的双重功能的程序通常安装在远程访问的环境。目前许多的路由器支持NAT这项功能,其他如Linux中的IP伪装(IPMasquerade),FreeBSD中的NATD或Windows上的Sygate软件都具有相同的功能。使用NAT的优点如下:•减少IP地址使用量。在使用NAT以后,Internet上的主机会误以为它正与NAT服务器进行通信,因为它们并不知在NAT主机后包含一个局域网。于是,回传的数据包会直接发送到NAT服务器,然后NAT服务器再将这个数据包头文件目的地的IP地址更为局域网里真正发出信息的计算机。•可在NAT服务器上的外部IP上建立多个“IPAlias”,当收到传给那些IPAlias的请求时,NAT可以把这些请示求转送给内部网络中提供服务的服务器。•负载平衡(LoadBalancing),也就是说,将同一个IPAlias请求分别导向到其他运行相同服务的服务器,可减少单一服务器的工作量。虽然使用NAT具有以上的优点,但是在某些情况下,必须注意NAT潜藏的缺点,以下举出几个例子以供读者参考:•理论上,NAT服务器只使用一个IP地址,就可涵盖无数个内部IP地址,但是许多网络通信协议或应用程序都需要真正点对点的连接。•有些数据包是从出发地到目的地过程中的过程中都不能修改,像IP安全体系结构就不可以使用NAT进行映射,因为数据包的头文件中含有数字签名,如果头文件被更改(即使是任何一个字),这个数字签名便从此失去效力。•虽然NAT对于无法取得足够IP地址的企业组织来说,它是一个极佳的解决方案,但当该组织必须合并多个局域网时,必须仔细重新规划IP分配,否则很容易产生IP重复的情况(因为每个局域网都使用内部IP地址)。NAT通常被人视为增加计算机安全性的保护措施,但是如果入侵者可以控制NAT服务器,那么整个局域网就会暴露在Internet当中,因此NAT并不能拿来代替防火墙使用。NAT依其作用的方向性可区分两种类型:SourceNAT(SNAT):所谓的SourceNAT就是改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。DestinationNAT(DNAT):DestinationNAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载就是属于DNAT。图不同愁的NATNAT服务器的安装与使用经过以上两个小节的说明,想必各位读者现在对于IP及NAT服务器的原理一定有所了解,接下来将实际进行NAT服务器的安装。本书中的环境假设NAT服务器目前只具备一张网卡(负责连接Internet),而且这张网卡使用以下的外部IP地址配置:•网卡名称:eth0。IP地址:18。•子网掩码:。而为了连接内部网络(本书假设为192.168.1.x)必须再新建一张网卡,它使用内部IP地址配置:•网卡名称:eth1。IP地址:.子网掩码:。图1-8所示是本书范例使用的网络体系结构。图网络体系结构范例iptables安装在安装NAT服务器前,必须确定系统上已安装iptables程序,如果不知是否已经安装iptables,可以使用以下的方法来判断:[root@nslroot]#rpm-qaiptablesIptables-1.2.7a-2如果尚未安装iptables,可以在第一张安装光盘中的/RedHat/RPMS目录下,找到名为iptables-1.2.7a-2.i386.rpm”的安装程序,然后按照以下的方法进行安装:[root@nslroot]#rpm-ivhiptables-1.2.7a-2.i386.rpm为使开机时能自动运行iptablas,可以在终端机窗口中输入ntsysv”指令,然后在出现的画面中,利用上下方向键将光标移到菜单中的iptables”项目(同时确定ipchains选项没有被选中),然后按空格键以选择,最后利用Tab键将光标移到确定”按钮并按Enter键即完成设置,如图1-9所示。网卡安装在安装iptables程序后,接下来我们将安装第二张网卡连接内部网络,以下是逐步的安装说明。为了避免安装时的失败,建议先准备一张Linux支持的网卡,如果不确定这张网卡是否可用,可到以下网址查阅(本书以RedHat为例):/插入网卡并启动电源后,Linux会自动检测这张网卡,然后Linux会要求输入IP地址、子网掩码、网关和DNS服务器IP地址等配置信息。启动第二张卡。[root@nslroot]#ifupethl使用IPForwarding功能在安装第二张网卡后,接下来须使用IPForwarding的功能,代替内部网络的主机发送数据包,以下是使用的步骤及说明:修改/etc/sysctl.conf文件内容,将net.ipv4.ip_forward="这行设置为T'。[root@nslroot]#vi/etc/sysctl.confNet.ipv4.ip_forward=1使用IPForwarding功能。在此介绍两种使用IPForwarding功能方法,可以直接运行以下的指令:[root@nslroot]#echo1>/proc/sys/net/ipv4/ip_forward或在/etc/sysconfig/network文件中,加入以下的记录:[root@nslroot]#vi/etc/sysconfig/network最后重新加载/etc/rc.d/init.d/xinetd,以便设置生效:[root@nslroot]#/etc/rc.d/init.d/xinetdreload

重新加载配置设置:确定]④在此可以先忽略安全性的考虑,等安装完成并测试成功后,再进行安全管理。以下的指令表示允许所有内部网络的主机连接到Internet,这也是一般所称的IP伪装”(IPMasquerading):[root@nslroot]#iptables-tnat-APOSTROUTING-s/24-jMASQUERADE但有时使用以上的指令后,FTP会无法正常运作,此时可以尝试以下的指令:[root@nslroot#modprobeip_conntrack_ftp[root@nslroot]#modprobeip_nat_ftp客户端设置在NAT服务器设置后,最后的步骤就是客户端的设置,本书在此以Windows2000客户端为例。以下是设置的步骤与说明:选择桌面上的网上邻居”图标,然后右击并选择菜单中的属性”选项,系统即会出现网络和拨号连接”窗口,如图1-10所示。图1-11“网络和拨号连接”窗口文件史)编常也杏肴GO,飙总王臭/高级图1-11“网络和拨号连接”窗口文件史)编常也杏肴GO,飙总王臭/高级⑪料剧(W国色建一i•并痂推壬同艳''与曾宣“由”防火也泰臣此棋建役毛%fcvimisW重此名龙注接心兰看r彪接的忒六也史汶定报机迁S3"-T1壬1.-lrIF地连1111太己胡丈]0m麟勺同上拆0我的苴璀4碰攻■1394连丢3湖翻:在出现的网络和拨号连接”窗口中选择本地连接”图标,然后右击并选择要菜单中的属性选项,系统会随即出现本地连接属性”窗口,如图9-11所示。连蒯便用■EtWLinkXL1D/IQC1KI:配置敏),,此浮撞使用下掘目如:5crwdft网站客户端回恒附e『om性网路敝件和打E|W1共享向哲=GMm砒协议(TCF/IP)建®一..属性®说明TCP/IF是默认的广域硼成。它提供跨藤多种互联礁的通讯.匚连接后在通知区域显示困袱(!)旧此煌接装限制或题接时通旬我四图1・11“本地连接属性♦窗口在出现的本地连接属性窗口中,选择Internet协议(TCP/IP)选项,并单击右下角的属性按钮,系统会随即出现Internet协议(TCP/IP)属性窗口,如图1-12所示。

在出现Internet协议(TCP/IP)属性”窗口中,首先选择使用下面的IP地址”选项,然后输入以下的信息:IP地址”字段:输入192.168.1.X,本书在此以为例。•子网掩码”字段:输入,必须与NAT服务器内部IP使用的子网掩码相同。•默认网关”字段:这是最重要的设置,必须输入NAT服务器的内部IP(此处是),千万不可填入NAT服务器的外部IP,否则数据包永远也无法传到NAT服务器(因为网络ID”不同即无法通信)。•首选DNS服务器”字段:如果网络中有DNS服务器,就可以在此输入DNS服务器的IP地址。完成客户端的设置。iptables在防火墙上的运用介绍安装NAT服务器时简要地说明了iptables程序,其实它还有许多功能尚未说明,因此本节将再进一步说明iptables程序在防火墙上的运用。iptables体系结构与处理流程iptables”程序的功能都是属于数据包(Packet)层的工作,而这些工作都是利用不同的规则表”(RuleTable)来定义的。在iptables中包含3个默认的RuleTable:FilterTable、NATTable与MangleTable,而每一个RuleTable又是由数个链”(Chain)所组成。举例来说,在FilterTable中除了定制的链之外,还包含3个内置的链:INPUTChain、OUTPUTChain和FORWARDChain,如图1-13所法。

iptables图1』3默认的RuleTable和ChainFilterTable是iptables中的默认RuleTable,也就是说,在运行时如果没有指定其他参数,则iptables会套用FilterTable中的规则,令外两种RuleTable都需要配合指令参数使用。而在防火墙的运用上,iptables主要是使用默认的FilterTable功能,所以有人就称为包过滤器(PacketFilter)。FilterTable可以先检索到数据包,然后通过预选取一义的规则(Rule)来判断是否发送此数据包。由于它运行于网络层,所以不论是否发送数据包,都不会影响到数据包中的数据内容。iptables注:所谓包过滤是指利用一具软件查看经过数据包的表头(Header),而由此决定整个数据包的处理,可能的处理方式有:丢弃这个数据包(DROP)、接受这个数据包(ACCEPT),或其他更复杂的动作。数据包过滤原理图1-14是在FilterTable中内置的3个链与防火墙发送数据包之间的流程图。丢弃丢弃图1-14防火墙发送数据包的流程图图1-14表示,当一个数据包抵达图9-13中的任何一个链,则这个链就会开始检查这个数据包,以决定后续的处理,如丢弃或接受。其实每个链都是一个检查列表,它会利用预先设置的规则来对数据包进行判断,如果判断的结果不符合(Mach),就会交给链中的下一个规则继续处理。如果到最后已没有任何规则可供判断,那内核就会利用链的规则(Policy)来作出决定,但是为了安全起见,规则通常会要求内核丢弃此数据包。以下就是防火墙发送数据包的流程说明:当防火墙拦截到数据包后,内核首先会检查此数据包的目的地(Destination),而这个检查的过程便称为路由(Routing)。如果目的地址为本机,则此数据包就会流向INPUT链,而由本机程序来负责接管。然后由OUTPUT链处理,如果此数据包可被此处的规则接受,则这个数据包可送到它所指向的接口。此时如果内核没有启动转送功能(Forwarding),或不知道如何转送此数据包,则这个数据包就会被丢弃。如果转送功能已启动,那么此数据包就会被指向另一个网络接口,而流向FORWARD链,如果此数据包可被此处的规则接受,这个数据包就可送到它所指向的接口。iptables程序使用在了解iptables程序的基本原理后,接下来的内容将介绍iptables程序的使用方法以及各个选项与参数。Iptable的语法结构如表1-4所示。表1顼iptabl£的语法结构Iptabl?语法ipcabl-tTable类型指令链名称参数选项Table类型Table类型"是指目前内核的RuleTable类型,而在指定Table类型时必须配合--table"或-丁参数的使用,表1-5列出了可供设置的Table类型及说明。表1-5可供设宣的Table建及说明Table类型说明—table刖改或-tfilter表示使用默认的FikerTable,如果未指定此项,系统也会以FilterTabl?来处理,它|内置的链包括:EvPUTCham•、OUTPUTChain和FORWARDChain等—tablenat或-tnat表示命名用NATTable7它内置的疑包括:PREROUnXGCham和OUTPUTChain等指令(Command)指令”表示要求iptables程序运行的工作,而在每一个iptables指令中,只允许使用一个指令。除了help"指令之外,所有的指令都必须用大写(Upper-Case)字母来表示,表1-6列出了可供使用的指令名称及说明。

表1-6可供使用的指令名称及说明命令蹒—append或纣将一个或一多个ipLables规则附加到链中,如果来源或目的地包含多个地址,则此规则会新建到每个可能的地址组合--delete或~D由选择的他中,删除一个或多个iptabl?s规则,可利用数字或指定规则全名方式来进行删除--rename-chain或-E修改由用户定义的薄名称,这并不会影响Table的结构--insert或-I由选择的建中插入一个或多具iptables规则,其插入需指定规则中的数字,如果数字为1表示为第一个(默认值)--help或-h列出描述命令语法的说明--flu业或-F将■某个iptables规则清除,如InpukOutput或Forward,这相当于去除规则的功能--1心|:或』列出所选择设置的iptables规则,如果没有指定规则,则会列出所有的规则--neur-chain或-X新建用户定义(Usay-Defmed)规则-■policy或-F设置目标的规则,但只限于InputsFoiuraid和Output规则可以设置--replaceSt-R取代所选择的规则,需指定规则中的数字--delete-chain或-X删除用户定义的规则,但不包括内置的规则--zero或捋所有规则中的数据包和字节计数器归零,它也可以配合-L或-listS项的便用,列出之前的数据,再列出归零的数据参数在指定iptables参数选项时,如果在选项前加入惊叹号!则表示否定的意思,例如-s!localhost是表示除了localhost的来源地址都可以。可以命名用如表1-7所示的参数。表]-,参数表参数说明-<?t-munt&rs或-重新设置规则的计数器,这个参数可接受“PKT等和"BYTES-选项,以指定要重新设置规则的计数器-destination-d指字套用规则的目的地主机名称、IP地址或幽络地址。如果指定的是幽络地址时,必须同时设置子幽插码的值-in-inCerface或-指定数据包进出的屈络接口君称,如职号也。和咂1等,如果没指定则表示命君用所有的适配器Tump或-j指定规则的目标,如果没有指定则表示此规则没有任何效果--protocol指定规则中检查的通信协议,可在此设为icmp、Bp.udp或疝,如果没有指定就表不此规则适用于所有的通信协议--wourcs或与指定套用规则的源主机名称、IP地址或幽络地址。如果指定的是屈络地址时,必、须同时设置子网掩码的值注:在来源(-s)和目的地(-d)的表示法有以下3种:使用完整的主机名称,如或localhosto使用IP地址,如26o使用网络地址,如/24或/,两者都是包含-55的IP地址。斜线后的数字表示子网掩码的位数,例如/8表示。选项在iptables指令最后一部分为选项,但这部分的可设置项目会随着前面的参数而变,因此本书在此分别介绍不同情形下的选项说明:

通信协议选项在参数部分如果使用--protocol或-p,可以指定使用的通信协议种类,其中包括TCP、UDP、ICMP或全部(all)。此处的写法没有区分大小写,而且能以数学代替,如果要知道每种通信协议代表的数字,可以查阅/etc/protocols文件中的内容,例如tcp为6、udp为17而icmp为1。表1-8列出了在选择不同通信协议时可用的选项名称及说明。表H不同诵信协议时可用的蛔名稼及说明参数:TCP通信协议选项说明--souice-pori:或一sport指定来源的连接端口,此处允许输入服务名称或连接端口号码。也可以在此定制一个连接端曰池例,例如如果允讦来源数据包由连接端口xx芯到yyy进入,那么可以设为"w:yyy七如果xxx的部分不写,那么表不甬注接端口编号。开始,而如窠vw的部分不写,就表不结束的连接端口端号为E5535--destination-pore®;一dporc指定发送数据包的目的地连接端口,此处允讦输入服务名称、连接端口号码或某一范围的连接端口~syn表芯此规则只适用于已设置村g位的TCP数据包,此类的数据包是在请求TCF连接的初始阶段--cep-option这个选项后需接一个数字,用来匹配TCF选项等于该数字的数据包。如果需要捡查TCP®项,那么TCP表头不完整的数据就会被自动删除--cep-flags此选项后需接:个参数,以对TCP标志进行席选。第一个参数表示屏蔽(Mamk),它可用来指定数据包中需要检查的TCF标志,而第—个参数表示需要设置的标准,可用的标志包括:SYN.ACK、FIX、RST、URG、PSH、ALL和NQXE等,如果指定多个标志,则每个标志间需以逗号(J分隔口以下范例表示所有标志都要检查,但只有SXY和ACK被设胃Iptables-AKPUT—protocoltcp—tcp-fla^sALLSYX.ACK-iDEXY参数:UDP能信协议(-pudp)选项说明--source-port或一sport指定来源的连接端口,此处允许输入服务名称或连接端口号码。也可以在此定制一个连接端曰泡例,例如,如果允讦来源数据包由连接端口必;到竺7进入,那么可以设为“如果xx\的部分不写,就表不由连繇端口编号。开始:如果竺y菌馥分不与',就表正结束的连接端口编号为155535--deBtination-porc^c--dpoit指定发送数据包的目的地连接端口,此处允许输入服务名称、号码或某一范围的连接端口参数:ICMP通信协议(-picmp)选项说明-■icmp-type这个选项后需接一下ICMP名称类型(如host-unr?achable)、、数字类型(如3),或一对用¥分隔的数字类型和端码(如*3)。以下指令可荻得ICMP类型名称列表:Iptables-picmp-h•目标选项在参数部分如果使用-j或--jump,就可设置此规则的目标(Target),这可说是最重要的设置项目,如果少了这个选项,此规则就形同虚设。在此选项后必须使用大写来指定规则的目标,其中可用的目标选项及说明如表1-9所示。

表1-P可用的目^目标选项(标准)说明用户定义蒲名称将数据包转遇到用户自定义的链中检验,该斑事先必须用-N选项建立。如果在定制中找不到符合的规则,则会自动返回原来链的下一行规则,继续检验ACCEPT允讦这个数据包通过DROP丢弃这个数据包RETUKX直接跳离目前的链。如果是用户自定义的链,就会返回房链的下—个规则继续检验,如果是内宣的薄,那会参考规则来处理数据包QUEUE将数据包重导入本机的队列中目标选项(扩展)说明LOG启动内核记录功能并且记录此数据包的链接内容为数据进行标记,供其他规则或数据包处理程序便用,此选项只在使用Mangl?Table时才有效REJECT删除通过的数据包,但会产生ICMP响应以告之源主机,此数据包无法到达的端口(DestinationPortUnreac±iabl?)TOS这是用来设置IP表头中&位长度的TOE(T?peofServer)字段,但是此选项只在使用MangleTable时有敷♦保存iptables设置因为使用iptables程序所建立的规则只会保存在内存中,因此如果要重新启动计算机,那么这些设置都将消失。如果希望某些规则可以在每次开机后都生效,则必须将此规则保存在/etc/sysconfig/iptables文件中。要将规则保存在/etc/sysconfig/iptables文件中并不需要手动输入,可利用以下的指令进行:[root@nslroot]#/etc/rc.d/init.d/iptablessave保存目前的设置到/etc/sysconfig/iptables:确定]或[root@nslroot]#/sbin/serviceiptablessave保存目前的设置到/etc/sysconfig/iptables:确定]在运行以上的指令后,iptables初始指令文件会运行/sbin/iptables-save程序,并且将结果写入/etc/sysconfig/iptables文件中。以下是/etc/sysconfig/iptables文件的范例内容:'root@ns1root]-xi-etc-sysctptables-Generatedbyiptables-s3X7ev1.2.5onWedApr91324392003*natTREKOUTINGACCEFT[2446:190334]:POSTROUTINGAACCEPT[97:7160]OUTPUTACCEPT[卯:了ISO][1599:84845]-APOSTROUTENG-s--255.255755.0-jMASQUERADECOMMIT-CompletedonW&dApr813:24:392003T^Generatedbyiptables-savev1.2.5onW&dApr81.324392003^filter:INPUTACCEPT[16975575149]FORWARDACCEP1{39848933018&269]OUTPUTACCEPT[W37:6565811]COMMIT-CompletedonW&dApr813:24:392003因为/etc/sysconfig/iptables文件只允许管理员读取,所以不必担心有关数据包筛选规则的内容会泄露到其他用户。[root@nslroot]#ls-l/etc/sysconfig/iptables-rwlrootroot4904月913:24/etc/sysconfig/iptables在将iptables规则存入/etc/sysconfig/iptables文件后,下次主机重新启动时,iptables初始指令文件会运行/sbin/iptables-restore程序来使用保存规则。♦范例练习以下将通过各种不同类型的范例来说明iptables的实际设置,读者可以先由这些练习开始尝试,待熟练后再加以修改其中的内容,以符合实际环境的需求。新建链以下的范例将新建一个简单链,可以定制链的名称,不过最多不可超过31个字符,本书在此chain-1为例。在新建后,才可以开始将规则加入其中,在此应该使用"-N”或"--new-chain”选项:[root@nslroot]#iptables-Nchain-n或[root@nslroot]#iptables-new-chainchain-1如果使用的链名已经存在,系统会出现以下的错误信息:iptables:Chainalreadyexists删除链以下的范例将删除一个链,这里应该用“-X”或“--delete-chain”选项,同时指定要删除的链名:[root@nslroot]#iptables-Xchain-1或[root@nslroot]#iptables--delete-chainchain-]但是在删除链时需注意以下几个重点:•在此链中必须没有存在任何规则。•此链不可为任何规则的目标。•不可删除任何内置链。•如果没有指定链名,可能会误删所有用户定义的链。清空链的内容以下的范例清空一个链的内容,在此应该使用*”或--flush”选项,同时指定要清空的链名,否则会清空所有链的内容:[root@nslroot]#iptables-Fchain-l或[root@nslroot]#iptables-flushchain-l列出链的内容以下的范例将列出链的内容,在此应该使用-L,或--list”选项,同时指定要列出内容的链名,否则会列出所有链的内容:[root@nslroot]#iptables-Lchain-l或[root@nslroot]#iptables--listchain-l因为目前范例为新建的链,因此列出的内容中只包含字段名称,如果希望得到较详细的内容,可以同时使用-V”选项:Chainchain-1(0references)Targetprotoptsourcedestination关闭所有服务为了达到最高的安全性,可以禁止所有进出INPUTChain、FORWARDChain和OUTPUTChain的数据包,但因为此举具有最高的优选权,即如果选设置禁止服务,此后的所有允许的规则都将失效,所以建议将此步骤列为最后的步骤。以下是关闭所有服务的方法:[root@nslroot]#-PINPUTDENY[root@nslroot]#-PFORWARDKENY[root@nslroot]#-POUPPUTDENY提醒读者一点,在设置任何的规则后,千万不可重新启动iptables服务,否则所有的设置都会被清空。[root@nslroot]#/etc/rc.d/init.d/iptablesrestart释放所有目前的设置与用户定义的chains:确定]清除所有的设置和用户定义的chains:确定]套用iptables防火墙设置:确定]开放特定服务如果主机上提供某些服务,可以利用启动该服务的连接端口,允许客户端使用该服务,以下的范例表示开放FTP服务,因为FTP使用连接端口20和21,所以必须使用两行指令:[root@nslroot]#iptables-AINPUT-iethl-ptcp--dport20-jACCEPT[root@nslroot]#iptables-AINPUT-iethl-ptcp--dport21-jACCEPT注:也可以直接使用服务名称来替代连接商品号码,请参考/etc/services文件内容。关闭特定服务关闭原本提供的服务,其设置方法和开放服务时很相似,只是将-JACCEPT”修改为-jDROP”,以下的范例表示关闭原来开放的FTP服务:[root@nslroot]#iptables-AINPUT-iethl-ptcp-dport20-jDROP[root@nslroot]#iptables-AINPUT-iethl-ptcp--dport21-jDROP数据包过滤如果希望禁止网络上某台主机或某个网络节点发送数据包,可以使用数据包过滤”功能。以下的范例会禁止所有来自/24网络区段的主机,连接IP地址为6的Web服务器:[root@nslroot]#iptables-AFORWARD-pTCP-s/24-d6—dportwww-jDROP♦防火墙简单设置除了以上利用iptables程序的方式来设置防火墙外,在RedHatLinux中也包含了名为Tokki/的防火墙设置程序,它最大的好处是允许用户利用预先设置的选项来进行防火墙设置,虽然它的功能不如iptables程序强大,但是它极易上物的特性,确实获得了许多用户的青睐。所以在这个小节中,将介绍Toddik”程序的使用与设置时的选项说明。要启动Tokkit”程序,可以在XWindow或文字模式下输入Tokkit”,系统就会启动“FirewallConfiguration"画面,如图1-15所示。在—FirewallConfiguration"画面的—SecurityLevel"选项中,共包含3种内置的安全性设置,即High、Medium和Nofirewall。以下是这些内置安全性设置的说明:Hige这是安全性最高的选项,如果选择此选项,在默认的情形下,防火墙只会开放以下两种服务的功能:DNS回应。DHCP请求。如果主机目前已连接到Internet,但是并不想提供任何的服务,这是最好的选项。Medium这是RedHatLinux默认的防火墙设置,如果选择此选项,在默认情况下系统会禁止以下服力:所有连接端口号码小于1023的服务,如FTP、SSH、telnet和HTTP。•NFS服务(连接端口2049)。X字型服务器(连接端口7100)XWindow连接服务(连接端口6000~6009)。注:在高安全性和中等安全性的防火设置下,NIS与LDAP等网络验证方式将无法使用。Nofirewall这个选项表示没有启动防火墙的功能,也就是说,系统可以提供客户端所有服务,而且不作任何安全性的检查,它比较适合使用在内部的网络环境(不连接Internet)或系统测试时。如果这些内置的安全性设置无法实际需求,那也可以利用定制的方式来设置。首先需将光标移到"Custom"按钮并按Ente

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论