Linux 防火墙与 NAT 主机.doc_第1页
Linux 防火墙与 NAT 主机.doc_第2页
Linux 防火墙与 NAT 主机.doc_第3页
Linux 防火墙与 NAT 主机.doc_第4页
Linux 防火墙与 NAT 主机.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

Linux 防火墙与 NAT 主机Linux 防火墙与 NAT 主机 最近更新日期:2006/09/15 在谈完了基本的网络安全观念之后,这个章节主要就要针对防火墙来进行介绍了!目前的防火墙机制 主要是以 Linux Kernel 2.6 版的 iptables 为主的,而 iptables 可以使用指令来下达,也可以透过编写 shell script 来进行指令的整合。鸟哥本人比较习惯使用 scripts 来进行 iptables 的机制规划呢!除了 iptables 之 外,事实上,比较简单的还有 TCP Wrappers 这个玩意儿,他则主要是针对某些服务来进行管理的吶!本 章的内容主要就是在介绍这两个重要的防火墙软件了! 1. 本章的行前准备工作 2. 认识防火墙 2.1 为何需要防火墙 2.2 Linux 系统上防火墙的主要类别 2.3 防火墙的一般线路布线与抵挡技巧 2.4 防火墙的使用限制 3. Linux 的封包过滤机制: iptables 3.1 不同 Linux 核心版本的防火墙软件 3.2 iptables 的表格与封包进入流程 3.3 本机的 iptables 语法 规则的清除与观察 定义预设政策 (policy) 封包的基础比对 IP/netmask I/O 装置 TCP, UDP 的规则比对 状态模块:MAC 与 RELATED ICMP 封包规则的比对 3.4 防火墙的记录、回复与测试 3.5 IPv4 的核心管理功能:/proc/sys/net/ipv4/* 4. 本机防火墙的一个实例 4.1 规则草拟 4.2 实际设定 5. NAT 主机的设定 5.1 什么是 NAT? SNAT? DNAT? 5.2 最阳春 NAT 主机: IP 分享功能 5.3 iptables 的额外核心模块功能 5.4 在防火墙后端之网络服务器 DNAT 设定 6. 重点回顾 7. 课后练习 8. 参考数据 9. 针对本文的建议:/viewtopic.php?p=114475 本章的行前准备工作 由于这个章节里面谈到非常多的封包概念,包括 MAC, IP, TCP, UDP, ICMP 等协议, 以及如何抵挡外部 IP 来源的防火墙基础,还有 IP/netmask 的整体网域写法等等。 而鸟哥对于您学习防火墙的建议是希望你可 - Page 1079-以使用 shell script 来撰写脚本,如此一来可以让你的防火墙规则比较清晰一点。所以在您开始了解底 下的资料之前, 希望你可以先阅读过相关的数据了: ? 已经认识 Shell 以及 Shell script; ? 已经阅读过网络基础那一个章节的内容; ? 已经阅读过前一篇认识网络安全; ? 已经阅读过 路由器那一章节的内容,了解路由的概念; ? 最好拥有两部主机以上的小型局域网络环境,以方便测试防火墙; ? Linux 主机上最好有两张网卡,可以进行多种测试,并架设 NAT 主机; ? 使用 uname -r 确认你的核心是 2.4 或 2.6 版; 若准备妥当了,赶紧来开始进行吧! 认识防火墙 网络安全除了随时注意套件的漏洞,以及网络上的安全通报之外,你最好能够依据自己的环境来订定防火 墙机制, 这样对于你的网络环境,会比较有保障一点喔!那么什么是防火墙呢? 其实防火墙就是在管制 进入到我们网域内的主机(或者可以说是网域)的资料封包的一种机制, 例如我们在前一章节认识网络安全 当中提到的 iptables 就是一种防火墙机制了。当然了,更广义的来说, 只要能够分析与过滤进出我们管 理之网域的封包数据,就可以称为防火墙。 而这个防火墙又可以分为硬件防火墙与本机的软件防火墙。硬件防火墙是由厂商设计好的主机硬件, 这部 硬件防火墙内的操作系统主要以提供封包数据的过滤机制为主,并将其它的功能拿掉。因为单纯作为防火 墙功能而已, 因此封包过滤的速度与效率较佳。至于软件防火墙呢?那就是我们这个章节要来谈论的啊! 软件防火墙本身就是在保护系统网络安全的一套软件(或称为机制),例如 iptables 与 TCP Wrappers 都 可以称为软件防火墙。 无论怎么分,反正防火墙就是用来保护我们网络安全的咚咚就对啦!呵呵!我们这个章节主要在介绍 Linux 系统本身提供的软件防火墙的功能,那就是 iptables 。至于 TCP Wrappers 请前往基础篇的 认识系统服 务 参考参考喔! 为何需要防火墙 基本上,如果你的系统 (1)已经关闭不需要而且危险的服务; (2)已经将整个系统的所有套件都保持在最 新的状态; (3)权限设定妥当且定时进行备份工作; (4)已经教育使用者具有良好的网络、系统操作习惯。 那么你的系统实际上已经颇为安全了!要不要架设防火墙?那就见仁见智啰! 不过,毕竟网络的世界是很复杂的,而 Linux 主机也不是一个简单的东西, 说不定哪一天你在进行某个 软件的测试时,主机突然间就启动了一个网络服务, 如果你没有管制该服务的使用范围,那么该服务就等 于对所有 Internet 开放, 那就麻烦了!因为该服务可能可以允许任何人登入你的系统,那不是挺危险? 所以啰,防火墙能作什么呢?防火墙最大的功能就是帮助你限制某些服务的存取来源! 举例来说: (1) 你可以限制档案传输服务 (FTP) 只在子网域内的主机才能够使用,而不对整个 Internet 开放; (2)你可 - Page 1080-以限制整部 Linux 主机仅可以接受客户端的 WWW 要求,其它的服务都关闭; (3)你还可以限制整部主机 仅能主动对外联机,对我们主机主动联机的封包状态 (TCP 封包的 SYN flag) 就予以抵挡等等。 这些就 是最主要的防火墙功能了! 所以鸟哥认为,防火墙最重要的任务就是在规划出: ? 切割被信任(如子网域)与不被信任(如 Internet)的网段; ? 划分出可提供 Internet 的服务与必须受保护的服务; ? 分析出可接受与不可接受的封包状态; 当然啦,咱们 Linux 的 iptables 防火墙软件还可以进行更细部深入的 NAT (Network Address Translation) 的设定,并进行更弹性的 IP 封包伪装功能,不过,对于单一主机的防火墙来说, 最简单 的任务还是上面那三项就是了!所以,你需不需要防火墙呢?理论上,当然需要! 而且你必须要知道你 的系统哪些数据与服务需要保护,针对需要受保护的服务来设定防火墙的规则吧! 底下我们先来谈一谈, 那在 Linux 上头常见的防火墙类型有哪些? Linux 系统上防火墙的主要类别 除了以软件及硬件作为防火墙的分类之外,我们也可以使用 防火墙对于数据封包的取得方式来进行分类。 主要可以分为两大类, 分别是代理服务器 (Proxy) 以及 IP Filter。在代理服务器方面, 由名称我们就 可以知道,代理服务器仅是代理 Client 端去向 Internet 要求数据,所以 Proxy 其实已经将可代理的协 议限制的很少很少,并且由于内部与外部计算机的并不能直接互通, 所以可以达到良好的保护效果;另一 种则是上面提到的 IP fileter 啦!利用封包过滤的方式来达到防火墙的目的! ? IP filter (封包过滤机制) 直接使用进入本机的 TCP/IP 上面的封包协议来进行过滤分析,例如利用 TCP/IP 封包表头的 IP 来源、 Port number 等数据进行过滤,以判断该封包是否能够进入本机取得本机资源。由于这种方式可以直接分 析最底层的封包表头数据, 所以包括硬件地址(MAC), 软件地址 (IP), TCP, UDP, ICMP 等封包的信息都 可以进行过滤分析的功能, 因此用途非常的广泛。 在 Linux 上面我们使用核心内建的 iptables 软件来作为防火墙封包过滤的机制, 由于 iptables 是核 心内建的功能,因此他的效率非常的高!非常适合于一般小型环境的设定呢! 他利用一些封包过滤的规则 设定,来定义出什么数据可以接收,什么数据需要剔除,以达到保护主机的目的喔! ? Proxy (代理服务器) 其实代理服务器是一种网络服务 (service, daemon),他可以代理使用者的需求, 而代为前往服务器 取得相关的资料。就有点像底下这个图示吧: - Page 1081- 图一、Proxy Server 的运作原理简介 以上图为例,当 Client 端想要前往 Internet 取得 WWW 的数据时,他取得数据的流程是这样的: 1. 他会向 proxy server 要求数据,请 proxy 帮忙处理; 2. Proxy 可以分析使用者的 IP 来源是否合法?使用者想要去的 WWW 服务器是否合法? 如果这个 client 的要求都合法的话,那么 Proxy 就会主动的帮忙 client 前往 WWW 服务器取得数据; 3. Internet 所回传的数据是传给 Proxy server 的喔,所以 WWW 服务器上面看到的是 Proxy Server 的 IP 啰; 4. 最后 Proxy 将 client 的要求传回给 client。 这样了解了吗?没错, client 并没有直接连上 Internet ,所以在实线部分(步骤 1, 4)只要 Proxy 与 Client 可以联机就可以了!此时 client 甚至不需要拥有 public IP 哩!而当有人想要攻击 client 端 的主机时, 除非他能够攻破 Proxy server ,否则是无法与 client 联机的啦! 另外,一般 proxy 主机通常仅开放 port 80, 21, 20 等 WWW 与 FTP 的埠口而已, 而且通常 Proxy 就 架设在 Router 上面,因此可以完整的掌控局域网络内的对外联机! 让你的 LAN 变的更安全啊!更详细 的 Proxy 设定我们会在后续的 代理服务器 章节当中提及的! 在这个章节中,我们先不谈 Proxy 这个东西,而是介绍过滤机制的 iptables 啰! 防火墙的一般线路布线与抵挡技巧 由前面的说明当中,您应该可以了解到一件事,那就是防火墙除了可以 保护防火墙机制 (iptables) 本 身所在的那部主机之外,还可以 保护防火墙后面的主机或 PC。呵呵! 也就是说,防火墙除了可以 防备主机被入侵之外, 他还可以架设在路由器上面藉以控管进出本地端网域 (LAN) 的网络封包。 这种规 划对于内部私有网域的安全也有一定程度的保护作用呢!底下我们稍微谈一谈目前常见的防火墙配置吧: ? 单一 Linux 主机兼任防火墙功能: 防火墙除了可以作为 Linux 本机的基本防护之外,他还可以架设在路由器上面以管控整个局域网络的封包 进出。 因此,在这类的防火墙上头通常至少需要有两个接口,将可信任的内部与不可信任的 Internet 分 开, 所以可以分别设定两块网络接口的防火墙规则啦!整个环境如同下列图二所示。 在图二中,由于防火墙是设定在所有网络封包都会经过的路由器上头, 因此这个防火墙可以很轻易的就掌 控到局域网络内的所有封包, 而且你只要管理这部防火墙主机,就可以很轻易的将来自 Internet 的不良 网络封包抵挡掉吶。 只要管理一部主机就能够造福整的 LAN 里面的 PC,很划算的啦。 - Page 1082-如果你想要将局域网络控管的更严格的话,那你甚至可以在这部 Linux 防火墙上面架设更严格的代理服务 器, 让客户端仅能连上你所开放的 WWW 服务器而已,而且还可以透过代理服务器的登录文件分析功能, 明 确的查出来那个使用者在某个时间点曾经连上哪些 WWW 服务器,您瞧瞧!厉害吧! 如果在这个防火墙上 面再加装类似 MRTG 的流量监控软件,还能针对整个网域的流量进行监测。 这样配置的优点是: ? 因为内外网域已经分开,所以安全维护在内部可以开放的权限较大! ? 安全机制的设定可以针对 Linux 主机来维护即可! ? 对外只看的到 Linux 主机,所以对于内部可以达到有效的安全防护! 图二、单一 Linux 防火墙主机 ? 单一 Linux 防火墙,但 LAN 内另设防火墙 一般来说,我们的防火墙对于 LAN 的防备都不会设定的很严格,因为是我们自己的 LAN 嘛!所以是信任 网域之一啰!不过,最常听到的入侵方法也是使用这样的一个信任漏洞! 因为您不能保证所有使用企业内 部计算机的使用者都是公司的员工,也无法保证您的员工不会搞破坏! 更多时候是由于某些外来访客 利用移动式装置 (笔记型计算机) 连接到公司内部的无线网络来加以窃取企业内部的重要信息。 呵呵!所以,如果您有特别重要的部门需要更安全的保护网络环境,那么将 LAN 里 面再加设一个防火墙, 将安全等级分类,那么将会让您的重要数据获得更佳的保护喔! 整个架构有点像下图三所示。 - Page 1083- 图三、单一 Linux 防火墙主机,但 LAN 内另设防火墙 ? 在防火墙后端的主机设定 还有一种更有趣的设定,那就是将提供网络服务的服务器放在防火墙后面,这有什么好处呢? 如下图四所 示,Web, Mail 与 FTP 都是透过防火墙连到 Internet 上面去,所以, 底下这四部主机在 Internet 上 面的 Public IP 都是一样的! (这个观念我们会在本章底下的 NAT 主机的时候再次的强调)。 只是透过 防火墙的封包分析后,将 WWW 的要求封包转送到 Web 主机,将 Mail 送给 Mail Server 去处理而已(透 过 port 的不同来转递)。 好了,因为四部主机在 Internet 上面看到的 IP 都相同,但是事实上却是四部不同的主机, 而当有攻击 者想要入侵您的 FTP 主机好了,他使用各种分析方法去进攻的主机,其实是防火墙那一部, 攻击者 想要攻击您内部的主机,除非他能够成功的搞定您的防火墙,否则就很难入侵您的内部主机呢! 而且,由于主机放置在两部防火墙中间,内部网络如果发生状况时 (例如某些使用者不良操作导致中毒啊、 被社交工程攻陷导致内部主机被绑架啊等等的) ,是不会影响到网络主机的正常运作的。 这种方式适用在 比较大型的企业当中,因为对这些企业来说,网络主机能否提供正常稳定的服务是很重要的! 不过,这种架构下所进行的设定就得包含 port 的转递,而且要有很强的逻辑概念, 可以厘清封包双向沟 通时的流动方式。对于新手来说,设定上有一定的难度, 鸟哥个人不太建议新手这么做,还是等以后有经 验之后再来玩这种架构吧! - Page 1084- 图四、架设在防火墙后端的主机服务器 通常像上图四的环境中,将网络服务器独立放置在两个防火墙中间的网络, 我们称之为非军事区域 (DMZ)。 DMZ 的目的就如同前面提到的,重点在保护服务器本身, 所以将 Internet 与 LAN 都隔离开来,如此一 来不论是服务器本身,或者是 LAN 被攻陷时, 另一个区块还是完好无缺的! 好了,那么我们 Linux 防火墙软件 iptables 是可以进行封包过滤的,他可以分析网络封包的 socket pair , 还可以分析不同网络协议的状态,例如 TCP 封包的旗标 (flags) ,甚至可以分析网络卡的卡号 呢! 经由分析这些数据后,咱们的 iptables 至少可以有底下这几种抵挡封包的方式: ? 拒绝让 Internet 的封包进入 Linux 主机的某些 port 这个应该不难了解吧!例如您的 port 20-21 这个 FTP 相关的 port , 您只要开放给内部网络 的话,所以不对 Internet 开放,那么当 Internet 来的封包想要进入您的 port 20-21 的话, 就可以将该数据封包丢掉!因为我们可以分析的到该封包所带有的 port 号码呀! ? 拒绝让某些来源 IP 的封包进入 例如您已经发现某个 IP 主要都是来自攻击行为的主机,那么只要来自该 IP 的数据封包,就将 他丢弃!这样也可以达到基础的安全呦! ? 拒绝让带有某些特殊旗标( flag )的封包进入 最常拒绝的就是带有 SYN 的主动联机的旗标了!只要一经发现,嘿嘿!您就可以将该封包丢弃呀! ? 分析硬件地址(MAC)来提供服务 如果您的局域网络里面有比较捣蛋的但是又具有比较高强的网络功力的高手时,如果您使用 IP - Page 1085- 来抵挡他使用网络的权限,而他却懂得反正换一个 IP 就好了,都在同一个网域内嘛! 同样还是 在搞破坏怎么办?没关系,我们可以死锁他的网络卡硬件地址啊!因为 MAC 是焊在网络卡上面 的,所以您只要分析到该使用者所使用的 MAC 之后,可以利用防火墙将该 MAC 锁住,呵呵!除 非他能够一换再换他的网络卡来取得新的 MAC,否则换 IP 是没有用的啦! 当然还有更多的使用技巧,你可以参考本章最后列出的参考数据, 里头有更多可用的小技巧喔。我们这里 仅会真对简单的本机防火墙,以及作为类似 IP 分享器的 NAT 主机作简单的介绍而已啦! _!好了,开 始来玩一玩那个 iptables 吧! 防火墙的使用限制 什么?!设定防火墙之后还不安全啊?!那当然啦!谁说设定了防火墙之后您的系统就一定安全? 防火墙 虽然可以防止不受欢迎的封包进入我们的网络当中,不过,某些情况下, 他并不能保证我们的网络一定就 很安全。举几个例子来谈一谈: ? 防火墙并不能很有效的抵挡病毒或木马程序 假设您已经开放了 WWW 的服务,那么您的 WWW 主机上面,防火墙一定得要将 WWW 服务的 port 开放给 Client 端登入才行吧!否则您的 WWW 主机设定了等于没有用对吧!也就是说,只要进入 您的主机的封包是要求 WWW 数据的,就可以通过您的防火墙。那好了,万一您的 WWW 服务器 软件有漏洞,或者本身向您要求 WWW 服务的该封包就是病毒在侦测您的系统时,您的防火墙可 是一点办法也没有啊! 因为本来设定的规则就是会让他通过啊。 ? 防火墙对于来自内部 LAN 的攻击较无承受力 一般来说,我们对于 LAN 里面的主机都没有什么防火墙的设定,因为是我们自己的 LAN 啊,所 以当然就设定为信任网域了!不过, LAN 里面总是可能有些网络小白啊,虽然他们不是故意要搞 破坏, 但是他们就是不懂嘛!所以就乱用网络了。这个时候就很糟糕,因为防火墙对于内部的规 则设定通常比较少, 所以就容易造成内部员工对于网络误用或滥用的情况。 所以啦,在您的 Linux 主机实地上网之前,还是得先: ? 关闭几个不安全的服务; ? 升级几个可能有问题的套件; ? 架设好最起码的安全防护-防火墙- 其它相关的讯息请到 认识网络安全 里面去看一看怎么增加自身的安全吧! Linux 的封包过滤机制:iptables 上面谈了这么多,主要还是希望您能了解到防火墙是什么这个议题!而且也希望您知道防火墙并非万能的。 好了,那么底下我们终于可以来瞧一瞧,那目前我们的 2.6 版这个 Linux 核心到底使用什么核心功能来 进行防火墙设定? 不同 Linux 核心版本的防火墙软件 - Page 1086-Linux 的防火墙为什么功能这么好?这是因为他本身就是由 Linux kernel 所提供, 由于直接经过核心来 处理,因此效能非常好!不过,不同核心版本所使用的防火墙软件是不一样的! 因为核心支持的防火墙是 逐渐演进来的嘛! ? Version 2.0:使用 ipfwadm 这个防火墙机制; ? Version 2.2:使用的是 ipchains 这个防火墙机制; ? Version 2.4 与 2.6 :主要是使用 iptables 这个防火墙机制,不过在某些早期的 Version 2.4 版本的 distributions 当中,亦同时支持 ipchains (编译成为模块),好让使用者仍然可以使用 来自 2.2 版的 ipchains 的防火墙规划。不过,不建议在 2.4 以上的核心版本使用 ipchains 喔! 因为不同的核心使用的防火墙机制不同,且支持的软件指令与语法也不相同, 所以在 Linux 上头设定属 于你自己的防火墙规则时,要注意啊,先用 uname -r 追踪一下你的核心版本再说! 如果你是安装 2004 年 以后推出的 distributions ,那就不需要担心了,因为这些 distributions 几乎都使用 kernel 2.6 版 的核心啊! _ iptables 的表格与封包进入流程 前面的几个小节里面我们一直谈到:防火墙规则,咦!啥是规则啊?因为 iptables 是利用封包过滤 的机制, 所以他会分析封包的表头数据。根据表头数据与定义的规则来决定该封包是否可以进入主机 或者是被丢弃。 意思就是说:根据封包的分析资料 比对 你预先定义的规则内容, 若封包数据与规 则内容相同则进行动作,否则就继续下一条规则的比对! 重点在那个比对与分析顺序上。 举个简单的例子,假设我预先定义 10 条防火墙规则好了,那么当 Internet 来了一个封包想要进入我的 主机, 那么防火墙是如何分析这个封包的呢?我们以底下的图示来说明好了: - Page 1087- 图五、封包过滤的规则动作及分析流程 当一个网络封包要进入到主机之前,会先经由 NetFilter 进行检查,那就是 iptables 的规则了。 检查 通过则接受 (ACCEPT) 进入本机取得资源,如果检查不通过,则可能予以丢弃 (DROP) ! 上图五主要的目 的在告知您:规则是有顺序的!例如当网络封包进入 Rule 1 的比对时, 如果比对结果符合 Rule 1 , 此时这个网络封包就会进行 Action 1 的动作,而不会理会后续的 Rule 2, Rule 3. 等规则的分析了。 而如果这个封包并不符合 Rule 1 的比对,那就会进入 Rule 2 的比对了!如此一个一个规则去进行比对 就是了。 那如果所有的规则都不符合怎办?此时就会透过预设动作 (封包政策, Policy) 来决定这个封包 的去向。 所以啦,当您的规则顺序排列错误时,就会产生很严重的错误了。 怎么说呢?让我们看看底下 这个例子: 假设您的 Linux 主机提供了 WWW 的服务,那么自然就要针对 port 80 来启用通过的封包规则,但是您发 现 IP 来源为 00 老是恶意的尝试入侵您的系统,所以您想要将该 IP 拒绝往来,最后,所 有的非 WWW 的封包都给他丢弃,就这三个规则来说,您要如何设定防火墙检验顺序呢? 1. Rule 1 先抵挡 00 ; 2. Rule 2 再让要求 WWW 服务的封包通过; 3. Rule 3 将所有的封包丢弃。 这样的排列顺序就能符合您的需求,不过,万一您的顺序排错了,变成: - Page 1088- 1. Rule 1 先让要求 WWW 服务的封包通过; 2. Rule 2 再抵挡 00 ; 3. Rule 3 将所有的封包丢弃。 此时,那个 00 可以使用您的 WWW 服务喔!因为只要他对您的主机送出 WWW 要求封包, 就可以使用您的 WWW 主机功能了,因为您的规则顺序定义第一条就会让他通过, 而不去考虑第二条规则! 这样可以理解规则顺序的意义了吗!现在再来想一想,如果 Rule 1 变成了将所有的封包丢弃,Rule 2 才设定WWW 服务封包通过,请问,我的 client 可以使用我的 WWW 服务吗?呵呵!答案是否想 通了吗? _ ? iptables 的表格与链 (chain) 事实上,那个图五所列出的规则仅是 iptables 众多表格当中的一个链 (chain) 而已。 什么是链呢?这 得由 iptables 的名称说起。为什么称为 iptables 呢? 因为这个防火墙软件里面有多个表格 (table) ,每个表格都定义出自己的预设政策与规则, 且每个表格都用途都不相同。我们可以使用底下这 张图来稍微了解一下: 图六、iptables 的表格示意图 刚刚图五的规则内容仅只是图六内的某个 chain 而已! 而预设的情况下,咱们 Linux 的 iptables 至少 就有三个表格,包括管理本机进出的 filter 、管理后端主机 (防火墙内部的其它计算机) 的 nat 、 管 理特殊旗标使用的 mangle (较少使用) 。更有甚者,我们还可以自订额外的链呢! 真是很神奇吧!每个 表格与其中链的用途分别是这样的: - Page 1089- ? filter:主要跟 Linux 本机有关,这个是预设的 table 喔! o INPUT:主要与封包想要进入我们 Linux 本机有关; o OUTPUT:主要与我们 Linux 本机所要送出的封包有关; o FORWARD:这个咚咚与 Linux 本机比较没有关系,他可以封包转递到后端的计算机 中,与 nat 这个 table 相关性很高。 ? nat:这个表格主要在用作来源与目的之 IP 或 port 的转换, 与 Linux 本机较无关,主要与 Linux 主机后的局域网络内的计算机较有相关。 o PREROUTING:在进行路由判断之前所要进行的规则(DNAT/REDIRECT) o POSTROUTING:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE) o OUTPUT:与发送出去的封包有关 ? mangle:这个表格主要是与特殊的封包的路由旗标有关, 早期仅有 PREROUTING 及 OUTPUT 链, 不过从 kernel 2.4.18 之后加入了 INPUT 及 FORWARD 链。 由于这个表格与特殊旗标相关性较 高,所以像咱们这种单纯的环境当中,较少使用 mangle 这个表格。 那么各个表格与链的相关性可以使用下图来表示: 图七、iptables 内建各表格与链的相关性 - Page 1090- 上面的图示很复杂喔!不过基本上你依旧可以看出来,我们的 iptables 可以控制两种封包的流向: ? 如上图的 A ,封包主要是要读取我们 Linux 本机内的数据,会经过 filter 的 INPUT 链, 而 数据的输出则是经过 filter 的 OUTPUT 链; ? 如上图的 B ,封包主要是要透过防火墙而去后端,也就是说,该封包的目标并非我们的 Linux 本 机。 主要经过的链是 filter 的 FORWARD 以及 nat 的 POSTROUTING, PREROUTING。 由于 mangle 这个表格很少被使用,如果将图七的 mangle 拿掉的话,那就容易看的多了: 图八、iptables 内建各表格与链的相关性(简图) 透过图八你就可以更轻松的了解到,事实上与本机最有关的其实是 filter 这个表格内的 INPUT 与 OUTPUT 这两条链,如果你的 iptables 只是用来防备 Linux 主机本身的话,那 nat 的规则根本就不需要 理他,直接设定为开放即可。 不过,如果你的防火墙事实上是用来管制 LAN 内的其它主机的话,那么你就必须要再针对 filter 的 FORWARD 这条链,还有 nat 的 PREROUTING, POSTROUTING 以及 OUTPUT 进行额外的规则订定才行。 nat 表格的使用需要很清晰的路由概念才能够设定的好,建议新手先不要碰! 最多就是先玩一玩最阳春的 nat 功能IP 分享器的功能就好了! _! 这部份我们在本章的最后一小节会介绍的啦! 本机的 iptables 语法 理论上,当你安装好 Linux 之后,系统应该会主动的帮你启动一个阳春的防火墙规则才是。 不过如果您 是依照鸟哥的建议来安装 Linux 时,那么安装完毕后,你的系统应该是没有防火墙的啦。 另外,某些早 期的版本 (例如 Red Hat 9) 本身同时提供 iptables 及 ipchains 这两个防火墙模块, 不过这两个模块 是无法同时存在的!所以你仅能启动其中一个,那当然是启动 iptables 才对啊! 如果不小心启动了 ipchains 的话 (新版的 Linux 都不会有这个困扰) ,那请使用 rmmod 来移除吧! - Page 1091- 不过,在开始进行底下的练习之前,鸟哥这里有个很重要的事情要告知一下。 因为 iptables 的指令会将 网络封包进行过滤及抵挡的动作,所以 请不要在远程主机上进行防火墙的练习,因为您很有可能一不小心 将自己关在家门外! 尽量在本机前面登入 tty1-tty6 终端机进行练习,否则常常会发生悲剧啊! 鸟哥以 前刚刚在玩 iptables 时,就常常因为不小心规则设定错误,导致常常要请远程的朋友帮忙重新开机. 刚刚提到咱们的 iptables 至少有三个预设的 table (filter, nat, mangle),较常用的是本机的 filter 表格, 这也是预设表格啦。另一个则是后端主机的 nat 表格,至于 mangle 较少使用,所以这个章节我 们并不会讨论 mangle。 由于不同的 table 他们的链不一样,导致使用的指令语法或多或少都有点差异。 在这个小节当中,我们主要将针对 filter 这个预设表格的三条链来做介绍。底下就来玩一玩吧! Tips: 防火墙的设定主要使用的就是 iptables 这个指令而已。而防火墙 是系统管理员的主要任务之一, 且对于系统的影响相当的大,因 此只能让 root 使用 iptables ,不论是设定还是观察防火墙 规则喔! ? 规则的清除与观察 如果你在安装的时候选择没有防火墙的话,那么 iptables 在一开始的时候应该是没有规则的,不过, 可 能因为你在安装的时候就有选择系统自动帮您建立防火墙机制,那系统就会有预设的防火墙规则了! 无论 如何,我们先来看看目前本机的防火墙规则是如何吧! rootlinux # iptables -t tables -L -nv 参数: -t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用预设的 filter -L :列出目前的 table 的规则 -n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多! -v :列出更多的信息,包括通过该规则的封包总位数、相关的网络接口等 范例:列出 filter table 三条链的规则 rootlinux # iptables -L -n C

温馨提示

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

评论

0/150

提交评论