1、第第8 8章章 网络安全网络安全通过对本章的学习,读者应该掌握以下主通过对本章的学习,读者应该掌握以下主要内容:要内容: 计算机网络安全的基本概念及计算机网络安全的基本概念及Linux系统安全系统安全 防火墙技术基本知识防火墙技术基本知识 用用iptables实现包过滤型防火墙实现包过滤型防火墙 8.1 计算机网络安全基础知识计算机网络安全基础知识8.1.1 8.1.1 网络安全的含义网络安全的含义 网络安全从其本质上来讲就是网络上的信息安全,其所网络安全从其本质上来讲就是网络上的信息安全,其所涉及的领域相当广泛。这是因为在目前的公用通信网络中存涉及的领域相当广泛。这是因为在目前的公用通信网络
2、中存在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论相关技术和理论,都是网络安全所要研究的领域。下面给出,都是网络安全所要研究的领域。下面给出网络安全的一个通用定义:网络安全的一个通用定义: 网络安全网络安全是指网络系统的硬件、软件及其系统中的数据是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络
3、服务不中断泄露,系统连续可靠正常地运行,网络服务不中断。8.1.1 8.1.1 网络安全的含义网络安全的含义网络安全在不同的环境和应用中会得到不同的解网络安全在不同的环境和应用中会得到不同的解释。释。(1 1)运行系统安全运行系统安全,即保证信息处理和传输系统的安全。,即保证信息处理和传输系统的安全。(2 2)网络上系统信息的安全网络上系统信息的安全。(3 3)网络上信息传播的安全网络上信息传播的安全,即信息传播后的安全。,即信息传播后的安全。(4)网络上信息内容的安全网络上信息内容的安全,即讨论的狭义的,即讨论的狭义的“信息安信息安全全”。8.1.1 8.1.1 网络安全的含义网络安全的含义
4、 计算机网络安全的含义是通过各种计算机、网络、密计算机网络安全的含义是通过各种计算机、网络、密码技术和信息安全技术,保护在公用通信网络中传输、交码技术和信息安全技术,保护在公用通信网络中传输、交换和存储信息的机密性、完整性和真实性,并对信息的传换和存储信息的机密性、完整性和真实性,并对信息的传播及内容具有控制能力。播及内容具有控制能力。 网络安全的结构层次包括:物理安全、安全控制和安网络安全的结构层次包括:物理安全、安全控制和安全服务。全服务。 可见,计算机网络安全主要是从保护网络用户的角度可见,计算机网络安全主要是从保护网络用户的角度来进行的,是针对攻击和破译等人为因素所造成的对网络来进行的
5、,是针对攻击和破译等人为因素所造成的对网络安全的威胁。而不涉及网络可靠性、信息的可控性、可用安全的威胁。而不涉及网络可靠性、信息的可控性、可用性和互操作性等领域。性和互操作性等领域。 8.1.2 8.1.2 网络安全的特征网络安全的特征 网络安全应具有以下四个方面的特征:网络安全应具有以下四个方面的特征:(1 1)保密性是指信息不泄露给非授权的用户、实体或过程,)保密性是指信息不泄露给非授权的用户、实体或过程,或供其利用的特性。或供其利用的特性。(2 2)完整性是指数据未经授权不能进行改变的特性,即信)完整性是指数据未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被修改、不被破坏和丢
6、失的特息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。性。(3 3)可用性是指可被授权实体访问并按需求使用的特性,)可用性是指可被授权实体访问并按需求使用的特性,即当需要时应能存取所需的信息。网络环境下拒绝服务、破即当需要时应能存取所需的信息。网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击。坏网络和有关系统的正常运行等都属于对可用性的攻击。(4)可控性是指对信息的传播及内容具有控制能力。)可控性是指对信息的传播及内容具有控制能力。8.1.3 8.1.3 对网络安全的威胁对网络安全的威胁 与网络连通性相关的有三种不同类型的安全威胁:与网络连通性相关的有三种不同类型
7、的安全威胁:(1 1)非授权访问()非授权访问(Unauthorized AccessUnauthorized Access)指一个非授权)指一个非授权用户的入侵。用户的入侵。(2 2)信息泄露()信息泄露(Disclosure of InformationDisclosure of Information)指造成将有)指造成将有价值的和高度机密的信息暴露给无权访问该信息的人的所价值的和高度机密的信息暴露给无权访问该信息的人的所有问题。有问题。(3)拒绝服务()拒绝服务(Denial of Service)指使系统难以或不能继)指使系统难以或不能继续执行任务的所有问题。续执行任务的所有问题。
8、8.1.4 8.1.4 网络安全的关键技术网络安全的关键技术 从广义上讲,计算机网络安全技术主要有:从广义上讲,计算机网络安全技术主要有:(1 1)主机安全技术:)主机安全技术:(2 2)身份认证技术:)身份认证技术:(3 3)访问控制技术:)访问控制技术:(4 4)密码技术:)密码技术:(5 5)防火墙技术:)防火墙技术:(6 6)安全审计技术:)安全审计技术:(7)安全管理技术:)安全管理技术: 8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 1简介简介 一般认为,计算机网络系统的安全威胁主要来自黑客一般认为,计算机网络系统的安全威胁主要来自黑客攻击和计算
9、机病毒攻击和计算机病毒2个方面。个方面。 如何确保网络操作系统的安全,是网络安全的根本所如何确保网络操作系统的安全,是网络安全的根本所在。只有网络操作系统安全可靠,才能保证整个网络的安在。只有网络操作系统安全可靠,才能保证整个网络的安全。全。8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 2Linux网络操作系统的基本安全机制网络操作系统的基本安全机制 Linux网络操作系统提供了网络操作系统提供了用户帐号用户帐号、文件系统权限文件系统权限和和系统日志文件系统日志文件等基本安全机制,如果这些安全机制配置不等基本安全机制,如果这些安全机制配置不当,就会使系统存在
10、一定的安全隐患。因此,网络系统管当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。理员必须小心地设置这些安全机制。8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 2Linux网络操作系统的基本安全机制网络操作系统的基本安全机制 (1)Linux系统的用户帐号系统的用户帐号 /etc/passwd /etc/shadow (2)Linux的文件系统权限的文件系统权限 只读,可写,可执行,只读,可写,可执行, 允许允许SUID,允许,允许SGID(3)合理利用)合理利用Linux的日志文件的日志文件 /var/log/lastlog
11、:记录最后进入系统的用户信息:记录最后进入系统的用户信息lastlog /var/log/secure:记录系统自开通以来所有用户的登录:记录系统自开通以来所有用户的登录时间和地点时间和地点 /var/log/wtmp:记录用户的登录时间、地点和注销时:记录用户的登录时间、地点和注销时间间last8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 3Linux网络系统可能受到的攻击和安全防范策略网络系统可能受到的攻击和安全防范策略 Linux操作系统是一种公开源码的操作系统,因此比较操作系统是一种公开源码的操作系统,因此比较容易受到来自底层的攻击,系统管理员一定要
12、有安全防范容易受到来自底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的安全措施,这样才能提高意识,对系统采取一定的安全措施,这样才能提高Linux系系统的安全性。统的安全性。(1)Linux网络系统可能受到的攻击类型网络系统可能受到的攻击类型1)“拒绝服务拒绝服务”攻击;攻击;2)“口令破解口令破解”攻击;攻击;3)“欺骗欺骗用户用户”攻击;攻击;4)“扫描程序和网络监听扫描程序和网络监听”攻击。攻击。 8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 3Linux网络系统可能受到的攻击和安全防范策略网络系统可能受到的攻击和安全防范策略 (2)Lin
13、ux网络安全防范策略网络安全防范策略 1)仔细设置每个内部用户的权限;)仔细设置每个内部用户的权限;2)确保用户口令文件)确保用户口令文件/etc/shadow的安全的安全;3)加强对系统运行的监控和记录;)加强对系统运行的监控和记录;4)合理划分子网和设置防火墙;)合理划分子网和设置防火墙;5)定期对)定期对Linux网络进行安全检查网络进行安全检查 ;6)制定适当的数据备份计划确保系统万无一失)制定适当的数据备份计划确保系统万无一失 。8.1.5 Linux8.1.5 Linux系统的网络安全策略系统的网络安全策略 4加强对加强对Linux网络服务器的管理,合理使用各种工具网络服务器的管理
14、,合理使用各种工具 (1)利用记录工具,记录对)利用记录工具,记录对Linux系统的访问系统的访问 (2)慎用)慎用Telnet服务服务 (3)合理设置)合理设置NFS服务和服务和NIS服务服务 (4)小心配置)小心配置FTP服务服务 (5)合理设置)合理设置POP-3和和Sendmail等电子邮件服务等电子邮件服务 (6)加强对)加强对WWW服务器的管理,提供安全的服务器的管理,提供安全的WWW服务服务 (7)最好禁止提供)最好禁止提供finger 服务服务 /usr/bin8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 1sudo sudo是系统管理员用来允许某些用户
15、以是系统管理员用来允许某些用户以root身份运行部身份运行部分分/全部系统命令的程序。一个明显的用途是增强了站点的全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果用户需要每天以安全性,如果用户需要每天以root身份做一些日常工作,经身份做一些日常工作,经常执行固定的几个只有常执行固定的几个只有root身份才能执行的命令,那么用身份才能执行的命令,那么用sudo是非常适合的。是非常适合的。 8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 1sudo 以以Redhat 9.0为例,介绍为例,介绍sudo的安装及设置过程:的安装及设置过程: 一般情况下,一般情况下,
16、Redhat 9.0中都已经缺省安装了当前较新中都已经缺省安装了当前较新的版本的版本sudo-1.6.6-3。如果你的系统中没有安装,你能从下。如果你的系统中没有安装,你能从下面的地址中下载面的地址中下载for Redhat Linux的的rpm package。ftp:/ftp.rediris.es/sites/ #rpm -ivh sudo* /usr/sbin/visudo编辑编辑/etc/sudoers文件文件8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 1sudo sudoers文件是由一个选择性的文件是由一个选择性的主机别名主机别名(host alias)节
17、区,节区,一个选择性的一个选择性的指令别名指令别名(command alias)节区和节区和使用者说明使用者说明(user specification)节区所组成的。节区所组成的。 所有的指令别名或主机别名必须以自己的关键字作为所有的指令别名或主机别名必须以自己的关键字作为开始开始(Host_Alias/Cmnd_Alias)。1sudo 使用者说明节区格式:使用者说明节区格式:使用者使用者 接取群组接取群组 : 接取群组接取群组 .接取群组接取群组 := 主机象征主机象征 = op指令象征指令象征 ,op指令象征指令象征.主机象征主机象征 := 一个小写的主机名称或主机别名。一个小写的主机名
18、称或主机别名。指令象征指令象征 := 一个指令或指令别名。一个指令或指令别名。op := 逻辑的逻辑的 ! 否定运算元。否定运算元。主机别名节区格式:主机别名节区格式:Host_Alias 主机别名主机别名 = 主机列表主机列表Host_Alias := 这是一个关键字。这是一个关键字。 主机别名主机别名 := 一个大写的别名。一个大写的别名。 主机列表主机列表 := 以逗号间隔的一些主机名称。以逗号间隔的一些主机名称。指令别名节区格式:指令别名节区格式:Cmnd_Alias 指令别名指令别名 = 指令列表指令列表Cmnd_Alias := 这是一个关键字。这是一个关键字。 指令别名指令别名
19、:= 一个大写的别名。一个大写的别名。 指令列表指令列表 := 以逗号间隔的一些指令。以逗号间隔的一些指令。 8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 1sudo 例如:例如:#Host alias specification Host_Alias HUB=: REMOTE=merlin,kodiakthorn,spirit Host_Alias MACHINES=kalkan,alpo,milkbones #Command alias specification Cmnd_Alias LPCS=/usr/etc/lpc,/usr/ucb/lprm Cmnd_Ali
20、as SHELLS=/bin/sh,/bin/csh,/bin/tcsh #User specification wyh ALL=ALL,!SHELLS wj =/bin/tcsh, REMOTE=LPCS8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 2Sniffit sniffit 是一个有名的网络端口探测器,可以配置它在后是一个有名的网络端口探测器,可以配置它在后台运行,以检测哪些台运行,以检测哪些TCP/IP端口上用户的输入端口上用户的输入/输出信息。输出信息。最常用的功能是可以用来检测系统的最常用的功能是可以用来检测系统的23(telnet)和和110(pop3
21、)端端口上的数据传送,得到系统的登录口令和口上的数据传送,得到系统的登录口令和mail帐号密码。帐号密码。sniffit 的主页在的主页在 http:/reptile.rug.ac.be/coder/sniffit/sniffit.html 用户在根目录运行:用户在根目录运行: #tar -xvfz sniff*解开所有文件到对应目录,阅读其中的解开所有文件到对应目录,阅读其中的README.FIRST。8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 2Sniffit sniffit -i 以交互式图形界面查看所有在指定网络接口以交互式图形界面查看所有在指定网络接口上的输
22、入上的输入/输出信息输出信息。 例如:为了得到所有用户通过某接口例如:为了得到所有用户通过某接口a.b.c.d接收邮件时接收邮件时所输入的所输入的pop3帐号和密码,帐号和密码,#sniffit -p 110 -t a.b.c.d sniffit -p 110 -s a.b.c.d &8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 2Sniffit 记录文件放在目录记录文件放在目录/usr/doc/sniffit*下面:下面:log file根据访问根据访问者的者的IP地址,随机用高端端口号和用来检测的网络接口地址,随机用高端端口号和用来检测的网络接口IP地地址和检测
23、端口来命名。它利用了址和检测端口来命名。它利用了TCP/IP协议天生的虚弱性,协议天生的虚弱性,因为普通的因为普通的telnet和和pop3所传的用户名和密码信息都是明文,所传的用户名和密码信息都是明文,不带任何方式的加密。不带任何方式的加密。 因此对因此对telnet/ftp,可以用,可以用ssh/scp来替代。来替代。sniffit检测到检测到的的ssh/scp信息基本上是一堆乱码,因此不需要担心信息基本上是一堆乱码,因此不需要担心ssh所传所传送的用户名和口令信息会被第三方所窃取送的用户名和口令信息会被第三方所窃取。 8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具
24、3nmap nmap 是用来对一个比较大的网络进行端口扫描的工是用来对一个比较大的网络进行端口扫描的工具具,它能检测该服务器有哪些,它能检测该服务器有哪些TCP/IP端口目前正处于打开状端口目前正处于打开状态。可以运行它来确保已经禁止掉不该打开的不安全的端态。可以运行它来确保已经禁止掉不该打开的不安全的端口号。口号。nmap的主页在的主页在http:/www.insecure.org/nmap/index.html 8.1.6 8.1.6 LinuxLinux网络安全工具网络安全工具 3nmap 例:例:nmap 211.85.192.1Starting nmap V.3.00(www.ins
25、ecure.org/nmap/)Interesting ports on (211.85.192.1):(The 1588 ports scanned but not shown below are in state:closed)Port State Service 21/tcp open ftp25/tcp open smtp80/tcp open http119/tcp open nntp8.2 8.2 防火墙技术防火墙技术 8.2.1 8.2.1 什么是防火墙什么是防火墙 防火墙是指设置在不同网络(如可信任的企业内部网防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网
26、络安全域之间的一系列部件的组和不可信的公共网)或网络安全域之间的一系列部件的组合,是不同网络或网络安全域之间信息的唯一出入口,能合,是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。防火墙是提供的信息流,且本身具有较强的抗攻击能力。防火墙是提供信息安全服务,实现网络和信息安全的基础设施。信息安全服务,实现网络和信息安全的基础设施。 8.2.1 8.2.1 什么是防火墙什么是防火墙 防火墙逻辑位置示意图防火墙逻辑位置示意图 在逻辑上,防火墙是一个分离器,一个限制器
27、,也是在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和一个分析器,有效地监控了内部网和InternetInternet之间的任何之间的任何活动,保证了内部网络的安全,如下图。活动,保证了内部网络的安全,如下图。8.2.1 8.2.1 什么是防火墙什么是防火墙 使用防火墙地作用如下:使用防火墙地作用如下:(1)(1)防火墙是网络安全的屏障防火墙是网络安全的屏障 (2)(2)防火墙可以强化网络安全策略防火墙可以强化网络安全策略 (3)(3)对网络存取和访问进行监控审计对网络存取和访问进行监控审计 (4)(4)防止内部信息的外泄防止内部信息的外泄 8.2.2 8.2.2
28、 防火墙的三种类型防火墙的三种类型 1数据包过滤型防火墙数据包过滤型防火墙 数据包过滤数据包过滤(Packet Filtering)技术是在网络层对数据包技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制表访问控制表(Access Control Table)。通过检查数据流中每个。通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等数据包的源地址、目的地址、所用的端口号、协议状态等因素,或它们的组合来确定是否允许该数据包通过。因素,或它们的组合来确定是否允许该数据包通过。 数据包过滤防火墙有两个
29、主要缺点:一是非法访问一数据包过滤防火墙有两个主要缺点:一是非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击;旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击;二是数据包的源地址、目的地址以及二是数据包的源地址、目的地址以及IP的端口号都在数据的端口号都在数据包的头部,很有可能被窃听或假冒。包的头部,很有可能被窃听或假冒。8.2.2 8.2.2 防火墙的三种类型防火墙的三种类型 2应用级网关型防火墙应用级网关型防火墙 应用级网关应用级网关(Application Level Gateways)(Application Level Gateways)是在应用是在应用层上建立协议过滤
30、和转发功能。层上建立协议过滤和转发功能。 它针对特定的网络应用它针对特定的网络应用服务协议使用指定的数据过滤逻辑,并在过滤的同时,对服务协议使用指定的数据过滤逻辑,并在过滤的同时,对数据包进行必要的分析、登记和统计,形成报告。应用级数据包进行必要的分析、登记和统计,形成报告。应用级网关型防火墙的工作流程示意图见如下。网关型防火墙的工作流程示意图见如下。 应用级网关型防火墙的工作流程应用级网关型防火墙的工作流程 8.2.2 8.2.2 防火墙的三种类型防火墙的三种类型 2应用级网关型防火墙应用级网关型防火墙 数据包过滤和应用网关防火墙有一个共同的特点,就数据包过滤和应用网关防火墙有一个共同的特点
31、,就是仅仅依靠特定的逻辑判定是否允许数据包通过。一旦满是仅仅依靠特定的逻辑判定是否允许数据包通过。一旦满足逻辑,则防火墙内外的计算机系统建立直接联系,防火足逻辑,则防火墙内外的计算机系统建立直接联系,防火墙外部的用户便有可能直接了解防火墙内部的网络结构和墙外部的用户便有可能直接了解防火墙内部的网络结构和运行状态,这有利于实施非法访问和攻击。运行状态,这有利于实施非法访问和攻击。 8.2.2 8.2.2 防火墙的三种类型防火墙的三种类型 3代理服务型防火墙代理服务型防火墙 代理服务代理服务(Proxy Service)也称链路级网关或也称链路级网关或TCP通道通道(Circuit Level G
32、ateways or TCP Tunnels)。代理服务的特点是。代理服务的特点是将所有跨越防火墙的网络通信链路分为两段。防火墙内外将所有跨越防火墙的网络通信链路分为两段。防火墙内外计算机系统间应用层的计算机系统间应用层的“链接链接”,由两个终止代理服务器,由两个终止代理服务器上的上的“链接链接”来实现,外部计算机的网络链路只能到达代来实现,外部计算机的网络链路只能到达代理服务器。代理服务也对过往的数据包进行分析、注册登理服务器。代理服务也对过往的数据包进行分析、注册登记,记, 形成报告,同时当发现被攻击迹象时会向网络管理员形成报告,同时当发现被攻击迹象时会向网络管理员发出警报并保留攻击痕迹。
33、发出警报并保留攻击痕迹。 代理服务型防火墙的网络结构代理服务型防火墙的网络结构 8.2.2 8.2.2 防火墙的三种类型防火墙的三种类型 3代理服务型防火墙代理服务型防火墙代理服务型防火墙的网络结构示意图如下。代理服务型防火墙的网络结构示意图如下。8.2.3 8.2.3 防火墙体系结构防火墙体系结构 1双重宿主主机体系结构双重宿主主机体系结构 双重宿主主机体系结构围绕双重宿主主机构筑。双重双重宿主主机体系结构围绕双重宿主主机构筑。双重宿主主机至少有两个网络接口。外部网络能与双重宿主主宿主主机至少有两个网络接口。外部网络能与双重宿主主机通信,内部网络也能与双重宿主主机通信。但是外部网机通信,内部
34、网络也能与双重宿主主机通信。但是外部网络与内部网络不能直接通信,它们之间的通信必须经过双络与内部网络不能直接通信,它们之间的通信必须经过双重宿主主机的过滤和控制。重宿主主机的过滤和控制。 双重宿主主机体系结构双重宿主主机体系结构 2被屏蔽主机体系结构被屏蔽主机体系结构 被屏蔽主机体系结构防火墙则使用一个路由器把内部被屏蔽主机体系结构防火墙则使用一个路由器把内部网络和外部网络隔离开。在这种体系结构中,主要的安全网络和外部网络隔离开。在这种体系结构中,主要的安全由数据包过滤提供。由数据包过滤提供。 被屏蔽主机体系结构被屏蔽主机体系结构 8.2.3 8.2.3 防火墙体系结构防火墙体系结构 2被屏蔽
35、主机体系结构被屏蔽主机体系结构 这种体系结构涉及到堡垒主机。堡垒主机是因特网上这种体系结构涉及到堡垒主机。堡垒主机是因特网上的主机能连接到的唯一内部网络上的主机。任何外部的系的主机能连接到的唯一内部网络上的主机。任何外部的系统要访问内部的系统或服务都必须先连接到这台主机。因统要访问内部的系统或服务都必须先连接到这台主机。因此堡垒主机要保持更高等级的主机安全。此堡垒主机要保持更高等级的主机安全。 8.2.3 8.2.3 防火墙体系结构防火墙体系结构 3被屏蔽子网体系结构被屏蔽子网体系结构 被屏蔽子网体系结构添加额外的安全层到被屏蔽主机被屏蔽子网体系结构添加额外的安全层到被屏蔽主机体系结构,即通过
36、添加周边网络更进一步的把内部网络和体系结构,即通过添加周边网络更进一步的把内部网络和外部网络隔开。被屏蔽子网体系结构的最简单的形式为:外部网络隔开。被屏蔽子网体系结构的最简单的形式为:两个屏蔽路由器,每一个都连接到周边网。一个位于周边两个屏蔽路由器,每一个都连接到周边网。一个位于周边网与内部网络之间,另一个位于周边网与外部网络之间。网与内部网络之间,另一个位于周边网与外部网络之间。如下图。如下图。 被屏蔽子网体系结构被屏蔽子网体系结构 8.2.3 8.2.3 防火墙体系结构防火墙体系结构 8.2.4 8.2.4 包过滤技术包过滤技术 包过滤包过滤(Packet Filter)(Packet F
37、ilter)技术是在网络层中对数据包实技术是在网络层中对数据包实施有选择的通过。根据系统内事先设定的过滤逻辑,检查施有选择的通过。根据系统内事先设定的过滤逻辑,检查数据流中每个数据包后,根据数据流中每个数据包后,根据数据包的源地址、目的地址、数据包的源地址、目的地址、TCP/UDP源端口号、源端口号、TCP/UDP目的端口号及数据包头中的各目的端口号及数据包头中的各种标志位种标志位等因素来确定是否允许数据包通过,其核心是等因素来确定是否允许数据包通过,其核心是安安全策略即过滤算法的设计全策略即过滤算法的设计。 例如,用于特定的因特网服务的服务器驻留在特定的例如,用于特定的因特网服务的服务器驻留
38、在特定的端口端口号的事实(如号的事实(如TCP端口端口23用于用于Telnet连接),使包过滤连接),使包过滤器可以通过简单的规定适当的端口号来达到阻止或允许一器可以通过简单的规定适当的端口号来达到阻止或允许一定类型的连接的目的,并可进一步组成一套数据包过滤规定类型的连接的目的,并可进一步组成一套数据包过滤规则。则。 包过滤技术作为防火墙的应用包过滤技术作为防火墙的应用三类:三类:一是一是路由设备路由设备在完成路由选择和数据转发之外,同时进行包在完成路由选择和数据转发之外,同时进行包过滤,这是目前较常用的方式;过滤,这是目前较常用的方式;二是在二是在工作站上使用软件工作站上使用软件进行包过滤,
39、这种方式价格较贵;进行包过滤,这种方式价格较贵;三是在一种称为三是在一种称为屏蔽路由器的路由设备屏蔽路由器的路由设备上启动包过滤功能。上启动包过滤功能。8.2.4 8.2.4 包过滤技术包过滤技术 8.3 使用使用Linux架构包过滤防火墙架构包过滤防火墙 8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 1什么是包过滤什么是包过滤 包过滤就是用一个软件查看所流经的数据包的包过滤就是用一个软件查看所流经的数据包的包头包头(header),由此决定整个数据包是否允许通过。它可能会决,由此决定整个数据包是否允许通过。它可能会决定定丢弃丢弃(DROP)这个包,可能会这个包,可
40、能会接受接受(ACCEPT)这个包,也可这个包,也可能执行其他更复杂的动作。能执行其他更复杂的动作。 在在Linux系统下,包过滤功能是系统下,包过滤功能是内建于核心内建于核心的,同时还有的,同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定是否允许通过。查看包头以决定是否允许通过。2包过滤防火墙的工作层次包过滤防火墙的工作层次 包过滤防火墙示意图如图包过滤防火墙示意图如图8-7所示。包过滤是一种内置所示。包过滤是一种内置于于Linux内核路由功能之上的防火墙类型,其防火墙工作在内核路由功能之上的防火墙类型,其防火墙工作在
41、网络层。网络层。网络层网络层数据数据应用层应用层物理层物理层数据链数据链路层路层网络层网络层传输层传输层应用层应用层物理层物理层数据链数据链路层路层网络层网络层传输层传输层数据数据数据链路层数据链路层物理层物理层包过滤防火墙示意图包过滤防火墙示意图 8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 3包过滤防火墙的工作原理包过滤防火墙的工作原理 (1)使用过滤器。数据包过滤用在内部主机和外部主机之使用过滤器。数据包过滤用在内部主机和外部主机之间,间,过滤系统过滤系统是一台路由器或是一台主机。过滤系统根据过是一台路由器或是一台主机。过滤系统根据过滤规则来决定是否让数据包通
42、过。如下图所示,用于过滤数滤规则来决定是否让数据包通过。如下图所示,用于过滤数据包的路由器被称为据包的路由器被称为过滤路由器过滤路由器。8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 用过滤路由器过滤数据包用过滤路由器过滤数据包 3包过滤防火墙的工作原理包过滤防火墙的工作原理 数据包过滤是通过对数据包的数据包过滤是通过对数据包的IP头和头和TCP或或UDP头的检头的检查来实现的,主要信息有:查来实现的,主要信息有: IP源地址源地址IP目的地址目的地址协议协议(TCP包、包、UDP包和包和ICMP包包) TCP或或UDP包的源端口包的源端口 TCP或或UDP包的目的端
43、口包的目的端口ICMP消息类型消息类型 TCP包头中的包头中的ACK位位数据包到达的端口数据包到达的端口数据包送出的端口数据包送出的端口 8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 3包过滤防火墙的工作原理包过滤防火墙的工作原理 (2)过滤器的实现。过滤器的实现。数据包过滤一般使用数据包过滤一般使用过滤路由器过滤路由器来来实现,这种路由器与普通的路由器有所不同。实现,这种路由器与普通的路由器有所不同。 普通的路由器只检查数据包的目的地址,并选择一个普通的路由器只检查数据包的目的地址,并选择一个达到目的地址的最佳路径。它处理数据包是以达到目的地址的最佳路径。它处理数
44、据包是以目的地址目的地址为为基础的,存在着基础的,存在着两种可能性两种可能性:若路由器可以找到一条路径:若路由器可以找到一条路径到达目的地址则发送出去;若路由器不知道如何发送数据到达目的地址则发送出去;若路由器不知道如何发送数据包则发送一个包则发送一个“数据不可达数据不可达”的数据包给发送者。的数据包给发送者。 过滤路由器会进一步地检查数据包,除了决定是否有过滤路由器会进一步地检查数据包,除了决定是否有到达目的地址的路径外,还到达目的地址的路径外,还要决定是否应该发送数据包要决定是否应该发送数据包,“应该与否应该与否”是由路由器的是由路由器的过滤策略过滤策略决定并强行执行的。决定并强行执行的。
45、8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 3包过滤防火墙的工作原理包过滤防火墙的工作原理路由器的过滤策略主要有:路由器的过滤策略主要有:拒绝来自某主机或某网段的所有连接拒绝来自某主机或某网段的所有连接。允许来自某主机或某网段的所有连接允许来自某主机或某网段的所有连接。 拒绝来自某主机或某网段的指定端口的连接拒绝来自某主机或某网段的指定端口的连接。 允许来自某主机或某网段的指定端口的连接允许来自某主机或某网段的指定端口的连接。拒绝本地主机或本地网络与其他主机或其他网络的所有连接拒绝本地主机或本地网络与其他主机或其他网络的所有连接。 允许本地主机或本地网络与其他主机
46、或其他网络的所有连接允许本地主机或本地网络与其他主机或其他网络的所有连接。 拒绝本地主机或本地网络与其他主机或其他网络的指定端口的拒绝本地主机或本地网络与其他主机或其他网络的指定端口的连接连接。 允许本地主机或本地网络与其他主机或其他网络的指定端口的允许本地主机或本地网络与其他主机或其他网络的指定端口的连接连接。8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 4、包过滤器操作的基本过程、包过滤器操作的基本过程 下面给出包过滤器的操作流程图,如下图。下面给出包过滤器的操作流程图,如下图。8.3.1 8.3.1 包过滤型防火墙的一般概念包过滤型防火墙的一般概念 存储包过滤
47、规则存储包过滤规则分析包报头字段分析包报头字段IP、UDP、TCP应用下一个包规则应用下一个包规则包规则是否允许包规则是否允许传输传输包规则是否阻止包规则是否阻止传输传输是否是最后一个是否是最后一个包规则包规则否否是是否否否否允许包允许包阻止包阻止包是是是是包过滤操作流程图包过滤操作流程图 1Linux下的包过滤防火墙管理工具下的包过滤防火墙管理工具 从从1.1内核开始,内核开始,Linux就已经具有包过滤功能了,随着就已经具有包过滤功能了,随着Linux内核版本的不断升级内核版本的不断升级Linux下的包过滤系统经历了如下下的包过滤系统经历了如下3个阶段:个阶段: 在在2.0的内核中,采用的
48、内核中,采用ipfwadm来操作内核包过滤规则。来操作内核包过滤规则。 在在2.2的内核中,采用的内核中,采用ipchains来控制内核包过滤规则。来控制内核包过滤规则。 在在2.4的内核中,采用一个全新的内核包过滤管理工具的内核中,采用一个全新的内核包过滤管理工具iptables。8.3.2 Netfilter/iptables8.3.2 Netfilter/iptables简介简介1Linux下的包过滤防火墙管理工具下的包过滤防火墙管理工具 现在最新现在最新Linux内核版本是内核版本是2.6,在新内核中不再使用,在新内核中不再使用ipchains,而是采用一个全新的内核包过滤管理工具,而
49、是采用一个全新的内核包过滤管理工具iptables。这个全新的内核包过滤工具将使用户更易于理解。这个全新的内核包过滤工具将使用户更易于理解其工作原理,更容易被使用,当然也将具有更为强大的功其工作原理,更容易被使用,当然也将具有更为强大的功能。能。 iptables作为一个管理内核包过滤的工具,作为一个管理内核包过滤的工具,iptables 可以可以加入、插入或删除核心包过滤表格加入、插入或删除核心包过滤表格(链链)中的规则。实际上真中的规则。实际上真正来执行这些过滤规则的是正来执行这些过滤规则的是Netfilter及其相关模块。及其相关模块。8.3.2 Netfilter/iptables8.
50、3.2 Netfilter/iptables简介简介2Netfilter的工作原理的工作原理 Netfilter是是Linux 核心中的一个通用架构,它提供了一系核心中的一个通用架构,它提供了一系列的列的“表表”(tables),每个表由若干,每个表由若干“链链”(chains)组成,而组成,而每条链中可以有一条或数条规则每条链中可以有一条或数条规则(rule)组成。组成。 因此,可以理解因此,可以理解netfilter是表的容器,表是链的容器,是表的容器,表是链的容器,而链又是规则的容器,如下图。而链又是规则的容器,如下图。8.3.2 Netfilter/iptables8.3.2 Netf