最近更新日期:2011/07/22
9.1 认识防火墙
9.1.1 开始之前来个提醒事项 9.1.2 为何需要防火墙 9.1.3 Linux 系统上防火墙的主要类别 9.1.4 防火墙的一般网络布线示意 9.1.5 防火墙的使用限制 9.1 认识防火墙 网络安全除了随时注意相关软件的漏洞以及网络上的安全通报之外,你最好能够依据自己的环境来订定防火墙机制! 这样对于你的网络环境,会比较有保障一点喔!那么什么是防火墙呢?其实防火墙就是透过订定一些有顺序的规则,并管制进入到我们网域内的主机 (或者可以说是网域) 数据封包的一种机制!更广义的来说,只要能够分析与过滤进出我们管理之网域的封包数据, 就可以称为防火墙。 防火墙又可以分为硬件防火墙与本机的软件防火墙。硬件防火墙是由厂商设计好的主机硬件, 这部硬件防火墙内的操作系统主要以提供封包数据的过滤机制为主,并将其他不必要的功能拿掉。因为单纯作为防火墙功能而已, 因此封包过滤的效率较佳。至于软件防火墙呢?那就是我们这个章节要来谈论的啊! 软件防火墙本身就是在保护系统网络安全的一套软件(或称为机制),例如 Netfilter 与 TCP Wrappers 都可以称为软件防火墙。 无论怎么分,反正防火墙就是用来保护我们网络安全的咚咚就对啦!我们这个章节主要在介绍 Linux 系统本身提供的软件防火墙的功能,那就是 Netfilter 。至于 TCP Wrappers 虽然在基础篇的第十八章认识系统服务里面谈过了,我们这里还会稍微简单的介绍啦! 9.1.1 开始之前来个提醒事项 由于本章主要的目的在介绍 Netfilter 这种封包过滤式的防火墙机制,因此网络基础里面的许多封包与讯框的概念要非常清楚, 包括网域的概念, IP 网域的撰写方式等,均需有一定的基础才行。请到第二章加强一下 MAC, IP, ICMP, TCP, UDP 等封包表头数据的认识,以及 Network/Netmask 的整体网域 (CIDR) 写法等。 另外,虽然 Netfilter 机制可以透过 iptables 指令的方式来进行规则的排序与修改,不过鸟哥建议你利用 shell script 来撰写属于你自己的防火墙机制比较好,因为对于规则的排序与汇整有比较好的观察性, 可以让你的防火墙规则比较清晰一点。所以在你开始了解底下的资料之前,希望你可以先阅读过相关的数据了:
9.1.2 为何需要防火墙 仔细分析第七章的图 7.1-1 可以发现, 封包进入本机时,会通过防火墙、服务器软件程序、SELinux与文件系统等。所以基本上,如果你的系统 (1)已经关闭不需要而且危险的服务; (2)已经将整个系统的所有软件都保持在最新的状态; (3)权限设定妥当且定时进行备份工作; (4)已经教育用户具有良好的网络、系统操作习惯。 那么你的系统实际上已经颇为安全了!要不要架设防火墙?那就见仁见智啰! 不过,毕竟网络世界是很复杂的,而 Linux 主机也不是一个简单的东西,说不定哪一天你在进行某个软件的测试时, 主机突然间就启动了一个网络服务,如果你没有管制该服务的使用范围,那么该服务就等于对所有 Internet 开放, 那就麻烦了!因为该服务可能可以允许任何人登入你的系统,那不是挺危险? 所以啰,防火墙能作什么呢?防火墙最大的功能就是帮助你『限制某些服务的存取来源』! 举例来说: (1)你可以限制文件传输服务 (FTP) 只在子域内的主机才能够使用,而不对整个 Internet 开放; (2)你可以限制整部 Linux 主机仅可以接受客户端的 WWW 要求,其他的服务都关闭; (3)你还可以限制整部主机仅能主动对外联机。反过来说,若有客户端对我们主机发送主动联机的封包状态 (TCP 封包的 SYN flag) 就予以抵挡等等。这些就是最主要的防火墙功能了! 所以鸟哥认为,防火墙最重要的任务就是在规划出:
当然啦,咱们 Linux 的 iptables 防火墙软件还可以进行更细部深入的 NAT (Network Address Translation) 的设定,并进行更弹性的 IP 封包伪装功能,不过,对于单一主机的防火墙来说, 最简单的任务还是上面那三项就是了!所以,你需不需要防火墙呢?理论上,当然需要! 而且你必须要知道『你的系统哪些数据与服务需要保护』,针对需要受保护的服务来设定防火墙的规则吧! 底下我们先来谈一谈,那在 Linux 上头常见的防火墙类型有哪些? 9.1.3 Linux 系统上防火墙的主要类别 基本上,依据防火墙管理的范围,我们可以将防火墙区分为网域型与单一主机型的控管。在单一主机型的控管方面,
主要的防火墙有封包过滤型的 Netfilter 与依据服务软件程序作为分析的 TCP Wrappers 两种。若以区域型的防火墙而言,
由于此类防火墙都是当作路由器角色,因此防火墙类型主要则有封包过滤的 Netfilter 与利用代理服务器 (proxy server)
进行存取代理的方式了。
9.1.4 防火墙的一般网络布线示意 由前面的说明当中,你应该可以了解到一件事,那就是防火墙除了可以『保护防火墙机制本身所在的那部主机』之外,还可以『保护防火墙后面的主机』。也就是说,防火墙除了可以防备本机被入侵之外, 他还可以架设在路由器上面藉以控管进出本地端网域的网络封包。 这种规划对于内部私有网域的安全也有一定程度的保护作用呢!底下我们稍微谈一谈目前常见的防火墙与网络布线的配置吧:
9.1.5 防火墙的使用限制 从前面的分析中,我们已经知道过封包滤式防火墙主要在分析 OSI 七层协议当中的 2, 3, 4 层,既然如此的话, Linux 的 Netfilter 机制到底可以做些什么事情呢?其实可以进行的分析工作主要有:
虽然 Netfilter 防火墙已经可以做到这么多的事情,不过,还是有很多事情没有办法透过 Netfilter 来完成喔! 什么?设定防火墙之后还不安全啊!那当然啦!谁说设定了防火墙之后你的系统就一定安全? 防火墙虽然可以防止不受欢迎的封包进入我们的网络当中,不过,某些情况下,他并不能保证我们的网络一定就很安全。 举几个例子来谈一谈:
所以啦,还是回到第七章的图 7.1-1 的说明去看看,分析一下该图示,你就会知道,在你的 Linux 主机实地上网之前,还是得先:
其他相关的讯息还是请到第七章认识网络安全里面去看一看怎么增加自身的安全吧! |
||
本网页主要以Firefox配合解析度 1024x768 作为设计依据 鸟哥自由软件整合应用研究室