917620计算机系统与网络安全技术标准实验报告6防火墙入侵检测系统的安装配置和使用.docx
《917620计算机系统与网络安全技术标准实验报告6防火墙入侵检测系统的安装配置和使用.docx》由会员分享,可在线阅读,更多相关《917620计算机系统与网络安全技术标准实验报告6防火墙入侵检测系统的安装配置和使用.docx(24页珍藏版)》请在冰豆网上搜索。
917620计算机系统与网络安全技术标准实验报告6防火墙入侵检测系统的安装配置和使用
电子科技大学计算机科学与工程学院
标准实验报告
电子科技大学教务处制表
电实
孑斜蛊丈蓉
验
报
告
学生姓名:
学号:
指导教师:
实验地点:
实验时间:
一、实验室名称:
计算机学院计算中心
二、实验项目名称:
防火墙、入侵检测系统的安装、配置和使用
3.
实验学时:
4学时
防火墙、入侵检测系统的工作原理
五、实验目的:
目的:
掌握一种防火墙和入侵检测系统的安装、配置和使用
六、实验内容:
选择一种开源防火墙和入侵检测系统,设计其网络拓扑结构,并进行安装、配置、验证。
a)3~5人一组
b)安装和配置防火墙(或其他防火墙系统):
c)安装配置Snort入侵检测系统。
d)修改防火墙或入侵检测系统的部分源代码,实现防火墙和入侵检测系统
的联动(增强实验,可选)
七、实验器材(设备、元器件):
PC微机三台
八、实验步骤:
1netfilter防火墙配置
netfilter/iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。
如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配RoMugdliaVairagade将介绍netfilter/iptables系统、它是如何匸作的、它的优点、安装和配置以及如何使用它來配置Linux系统上的防火墙以过滤IP信息包。
Linux因其健壮性、可靠性、灵活性以及好象无限范闱的可定制性而在IT业界变得非常受欢迎。
Linux具有许多内置的能力,使开发人员可以根据|;|己的需要定制其工具、行为和外观,而无需昂贵的第三方工具。
如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,所要用到的一种内置能力就是针对网络上Linux系统的防火墙配置。
可以在netfilter/iptablesIP信息包过滤系统(它集成在2.4.x版本的Linux内核中)的帮助下运用这种能力。
在如ip仙adm和ipchains这样的Linux信息包过滤解决方案中,netfilter/iptablesIP信息包过滤系统是最新的解决方案,而且也是第一个集成到Linux内核的解决方案。
对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求來配置防火墙、在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,netfilter/iptables系统十分理想。
理解防火墙配置和信息包过滤
对于连接到网络上的Linux系统來说,防火墙是必不可少的防御机制,它只允许合法的网络流最进出系统,而禁止其它任何网络流最。
为了确定网络流最是否合法,防火墙依靠它所包含的由网络或系统管理员预定义的一组规则。
这些规则告诉防火墙某个流量是否合法以及对于來白某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。
术语“配置防火墙”是指添加、修改和除去这些规则。
稍后,我将详细讨论这些规则
网络流最由IP信息包(或,简称信息包)一以流的形式从源系统传输到目的地系统的一些小块数据一组成。
这些信息包有头,即在每个包前面所附带的一些数据位,它们包禽有关信息包的源、目的地和协议类型的信息。
防火墙根据一组规则检査这些头,以确定接受哪个信息包以及拒绝哪个信息包。
我们将该过程称为信息包过滤。
为什么要配置自己的防火墙?
出于各种因素和原因,需要根据特定需求來配置防火墙。
或许,最重要的原因是安全性。
管理员可能想让他们的防火墙能够阻上XX的源访问其Linux系统,例如通过Telnet。
他们可能还想限制进出其系统的网络流臺,以便只有來口可信源的流量才可以进入其系统,以及只有授权的流量才可以出去。
家庭用户可能通过允许所有的出站信息包都可以通过,将防火墙配置成较低的安全性级别。
另一个背后的原因是,通过阻塞來口类似广告站点之类的源的多余流量,可以节省带宽。
因而,可以定制防火墙配置来满足任何特定需求和任何安全性级别需求。
这就是netfilter/iptables系统的用武之处。
netfilter/iptables系统是如何工作的?
netfilter/iptablesIP信息包过滤系统是一种功能强大的匸具,可用「添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。
这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。
在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。
我马上会详细讨论这些规则以及如何建立这些规则并将它们分组在琏中。
虽然netfilter/iptablesIP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。
netfilter组件也称为内核空间(kenielspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用來控制信息包过滤处理的规则集。
iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
除非您正在使用RedHatLinux7.1或更高版本,否则需要从netfilter.org下载该工具并安装使用它。
通过使用用户空间,可以构建白己的定制规则,这些规则存储在内核空间的信息包过滤表中。
这些规则具有目标,它们告诉内核对來自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。
如果某个信息包与规则匹配,那么使用目标ACCEPT允许该信息包通过。
还可以使用目标DROP或REJECT來阻塞并杀死信息包。
对于可对信息包执行的其它操作,还有许多其它目标。
根据规则所处理的信息包的类型,可以将规则分组在链中。
处理入站信息包的规则被添加到INPUT链中。
处理出站信息包的规则被添加到OUTPUT链屮。
处理正在转发的信息包的规则被添加到FORWARD链中。
这三个链是基本信息包过滤表中内置的缺省主链。
另外,还有其它许多可用的链的类型(如PREROUTING和POSTROUTING),以及提供用户定义的链。
每个链都可以有一个策略,它定义“缺省目标”,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。
建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了。
这时内核空间从用户空间接管工作。
当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。
我们将这个过程称为路由。
如果信息包源口外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的INPUT链。
如果信息包源白系统内部或系统所连接的内部网上的其它源,并且此信息包要前往另一个外部系统,那么信息包被传递到OUTPUT链。
类似的,源自外部系统并前往外部系统的信息包被传递到FORWARD链。
接下来,将信息包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。
如果信息包与某条规则匹配,那么内核就对该信息包执行由该规则的目标指定的操作。
但是,如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。
最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。
理想的策略应该告诉内核DROP该信息包。
安装netfilter/iptables系统
因为netfilter/iptables的netfilter组件是与内核2.4.x集成在一起的,所以只需要下载并安装iptables用户空间工具。
下面是安装netfilter/iptables系统的需求:
硬件:
要使用netfilter/iptables,需要有一个运行LinuxOS并连接到因特网、LAN或WAN的系统。
软件:
带有内核2.4或更高版本的任何版本的LinuxOS。
可以从http:
//www.kernel.org卜载最新版本的内孩。
还需要从iilter.org下载iptables这个用八空间工具,因为这个工具不是内核的一部分。
但对于RedHatLinux版本7.1或更高版本,不需要下载此工具,因为在版本7.1或更高版本中,标准安装中已经包含了此工具。
用户:
至少对LinuxOS有中等水平的了解,以及具备配置Linux内核的经验。
安装前的准备
在开始安装iptables用户空间工具之前,需要对系统做某些修改。
首先,需要使用makeconfig命令来配置内核的选项。
在配置期间,必须通过将CONFIG_NETFILTER和CONFIGJDP—NF—IFIABLES选项设置为Y來打开它们,因为这是使netfilter/iptablesI作所必需的。
下面是可能要打开的其它选项:
CONFIG_PACKET:
如果要使应用程仔和程序直接使用某些网络设备,那么这个选项是有用的。
CONFIG_IP_NF_MATCH_STATE:
如果要配置有状态的防火墙,那么这个选项非常重要而且很有用。
这类防火墙会记得先前关于信息包过滤所做的决定,并根据它们做出新的决定。
我将在netfilter/iptables系统的优点一节中进一步讨论这方面的问题。
CONFIG_IP_NF_FILTER:
这个选项提供一个基本的信息包过滤框架。
如果打开这个选项,则会将一个基本过滤表(带有内置的INPUT、FORWARD和OUTPUT链)添加到内核空间。
CONFIGIPNFTARGETREJECT:
这个选项允许指定:
应该发送ICMP错误消息来响应已被DROP掉的入站信息包,而不是简单地杀死它们。
现在,可以准备安装这个用户空间工具了。
安装用户空间工具
在下载iptables用户空间匸具的源代码(它类似于iptables-1.2.6a.tar.bz2)之后,可以开始安装。
您需要以root身份登录來执行安装注:
如果您有RedHatLinux版本7.1或更高版本,就不需要执行这里说明的前两个步骤。
正如我们所知道的,该Linux分发版(distribution)的标准安装中包禽了iptables用户空间工具。
建立规则和链
通过向防火墙提供有关对來自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。
通过使用netfilter/iptables系统提供的特殊命令iptables,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。
关于添加/除去/编辑规则的命令的一般语法如下:
$iptables[-ttable]command[match][target]
表(table)
[-ttable]选项允许使用标准表之外的任何表。
表是包含仅处理特定类型信息包的规则和链的信息包过滤表。
有三种可用的表选项:
filter,nat和mangle。
该选项不是必需的,如果未指定,则filtei■用作缺省表。
filter表用于一般的信息包过滤,它包含INPUT、OUTPUT和FORWARD链。
nat表用于要转发的信息包,它包含PREROUTING、OUTPUT和POSTROUTING链。
如果信息包及其头内进行了任何更改,则使用mangle表。
该表包含一些规则來标记用于高级路由的信息包,该表包含PREROUTING和OUTPUT链。
注:
PREROUTING链由指定信息包一到达防火墙就改变它们的规则所组成,而POSTROUTING链由指定正当信息包打算离开防火墙时改变它们的规则所组成。
命令(conunand)
上面这条命令中具有强制性的command部分是iptables命令的最重要部分。
它告诉iptables命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。
以下是最常用的一些命令:
・A或-append:
该命令将一条规则附加到链的末尾。
示例:
$iptables-AINPUT-s205.16&0.1-jACCEPT
该示例命令将一条规则附加到INPUT链的末尾,确定来自源地址205.168.0.1的信息包可以ACCEPTo
・D或-delete:
通过用-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则。
下面的示例显示了这两种方法。
示例:
$iptables-DINPUT-dport80-jDROP
$iptables-DOUTPUT3第一条命令从INPUT链删除规则,它指定DROP前往端口80的信息包。
第二条命令只是从OUTPUT链删除编号为3的规则。
・P或-policy:
该命令设置链的缺省目标,即策略。
所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略。
示例:
$iptables-PINPUTDROP
该命令将INPUT链的缺省目标指定为DROPo这意味着,将丢弃所有与INPUT链中任何规则都不匹配的信息包。
-N或-new-chain:
用命令屮所指定的名称创建一个新链。
示例:
$iptables-Nallowed-chain-F或-flush:
如果指定链名,该命令删除链中的所有规则,如果未指定链爼,该命令删除所有链中的所有规则。
此参数用于快速淸除。
示例:
$iptables-FFORWARD
$iptables-F
・L或“list:
列出指定链中的所有规则。
示例:
$iptables-Lallowed-chain匹配(match)
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。
匹配分为两大类:
通用匹配和特定于协议的匹配。
这里,我将研究可用于采用任何协议的信息包的通用匹配。
下面是一些重要的且常用的通用匹配及其示例和说明:
•p或-protocol:
该通用协议匹配用于检査某些特定协议。
协议示例有TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及ALL(用于所有协议)。
ALL是缺省匹配。
可以使用!
符号,它表示不与该项匹配。
示例:
$iptables-AINPUT-pTCP,UDP
$iptables-AINPUT-p!
ICMP在上述示例中,这两条命令都执行同一任务一它们指定所有TCP和UDP信息包都将与该规则匹配。
通过指定IICMP,我们打算允许所有其它协议(在这种情况下是TCP和UDP),而将ICMP排除在外。
・s或-source:
该源匹配用于根据信息包的源IP地址来与它们匹配。
该匹配还允许对某一范围内的IP地址进行匹配,可以使用!
符号,表示不与该项匹配。
缺省源匹配与所有IP地址匹配。
示例:
$iptables-AOUTPUT-s192.16&1.1
$iptables-AOUTPUT-s192.16&0.0/24
$iptables-AOUTPUT-s!
203.16.1.89第二条命令指定该规则与所有来自192.168.0.0到192.168.0.24的IP地址范围的信息包匹配。
第三条命令指定该规则将与除来白源地址203.16.1.89外的任何信息包匹配。
■d或-destination:
该目的地匹配用于根据信息包的目的地IP地址來与它们匹配。
该匹配还允许对某一范围内IP地址进行匹配,可以使用!
符号,表示不与该项匹配。
示例:
$iptables・AINPUT・d192.16&1.1
$iptables・AINPUT-d192.168.0.0/24
$iptables-AOUTPUT・d!
203.16.1.89
目标(target)
我们己经知道,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。
除了允许用户定义的目标之外,还有许多可用的目标选项。
下面是常用的一些目标及其示例和说明:
ACCEPT:
当信息包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。
该目标被指定为-jACCEPTo
DROP:
当信息包与具有DROP目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。
该目标被指定为-jDROPo
REJECT:
该目标的工作方式与DROP目标相同,但它比DROP好。
和DROP不同,REJECT不会在服务器和客户机上留下死套接字。
另外,REJECT将错误消息发回给信息包的发送方。
该目标被指定为-jREJECTo示例:
$iptables-AFORWARD-pTCP-dport22-jREJECT
RETURN:
在规则中设置的RETURN目标让与该规则匹配的信息包停ll:
遍历包含该规则的链。
如果链是如INPUT之类的主链,则使用该链的缺省策略处理信息包。
它被指定为-jumpRETURNa示例:
$iptables-AFORWARD・d203.16.1.89寸umpRETURN还有许多用于建立高级规则的其它目标,如LOG、REDIRECT、MARK、MIRROR和MASQUERADE等。
保存规则
现在,您己经学习了如何建立基本的规则和链以及如何从信息包过滤表中添加或删除它们。
但是,您应该记住:
用上述方法所建立的规则会被保存到内核中,当重新引导系统时,会丢失这些规则。
所以,如果您将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用这些规则,那么必须将该规则集保存在文件中。
可以使用iptables-save命令来做到这一点:
$iptables-save>iptables-script现在,信息包过滤表中的所有规则都被保存在文件iptables-script中。
无论何时再次引导系统,都可以使用iptables-restore命令将规则集从该脚本文件恢复到信息包过滤表,如下所示:
$iptables-restoreiptables-script如果您愿意在每次引导系统时自动恢复该规则集,则可以将上面指定的这条命令放到任何一个初始化shell脚本中。
netfilter/iptables系统的优点
netfilter/iptables的最大优点是它可以配置有状态的防火墙,这是ipfwadin和ipchains等以前的匸具都无法提供的一种重要功能。
有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。
防火墙可以从信息包的连接跟踪状态获得该信息。
在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。
这里有四种有效状态,名称分别为ESTABLISHED.INVALID.NEW和RELATED。
状态ESTABLISHED指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。
INVALID状态指出该信息包与任何已知的流或连接都不相关联,它可能包禽错误的数据或头。
状态NEW意味着该信息包己经或将启动新的连接,或考它与尚未用于发送和接收信息包的连接相关联。
最后,RELATED表示该信息包正在启动新连接,以及它与已建立的连接相关联。
netfilter/iptables的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。
您可以定制自己的规则來满足您的特定需求,从而只允许您想要的网络流量进入系统。
另外,netfilter/iptables是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。
2snort入侵检测系统配置
e)入侵检测系统(IDS)是对计算机和网络系统资源上的恶意使用行为进行识别和响应的处理系统,它像雷达警戒一样,在不影响网络性能的前提下,对网络进行警戒、检测,从计算机网络的若干关键点收集信息,通过
g)分析这些信息,查看网络中是否有违反安全策略的行为和遭到攻击的迹象,从而扩展了系统管理员的安全管理能力,提高了信息安全基础结构的完整性。
一般來说,ms是作为防火墙的补充,所以ids—般处于防火墙之后,可以对网络活动进行实时检测,并根据情况记录和禁止网络活动。
11)入侵检测系统IDS根据工作的重点不同,可分为基于主机的入侵检测系统和基于网络的入侵检测系统。
入侵检测系统构成一般分为,两个部分一个部分是检测的部分(Sensor),一部分是处理报警结果的控制台。
不同的入侵检测的构成也不太一样大致都具有控制台和Sensor两个基本部分,基于主机的入侵检测多半在主机上安装一个代理程字来收集系统信息向Sensor汇报。
入侵检测系统的检测信息来源都是通过白身的检测部分Sensor得到的。
基于网络的入侵检测,主要是通过对网络数据包的截取分析,來查找具有攻击特性和不良企图的数据包的。
在网络里基于网络的入侵检测系统的检测部分Sensor一般被布置在一个交换机的镜象端口(或者一个普通的HUB任意端口),听取流经网络的所有数据包,查找匹配的包,來得到入侵的信息源。
基于主机的入侵检测系统的Sensor不可能直接从系统内部获取信息的,它是要通过一个事先做好的代理程序,安装在盂耍检测的主机里的,这些代理程序主要收集系统和网络11志文件,目录和文件中的不期望的改变,程仔执行中的不期卑行为,物理形式的入侵信息。
i)基于网络的入侵检测系统的检测端Sensor-般被布置在网络的核心交换机,或者部门交换的交换机的镜彖端口(采取把Sensor放在核心交换机器的镜像端口还是部门交换机的镜像端口,主要由网络的流量和客户机的数最,以及入侵检测的处理能力和网络发生攻击的频繁程度來定的)在网管的机器上,安装上入侵检测系统的控制台,做报警处理,在重要的服务器或者有必要的客户端安装代理程序收集系统和网络口志等系统信息,寻找具有攻击特性的数据包。
技术人员对来自主机的和网络的检测信息进行分析和监控。
j)Snort是目前应用最为广泛的一个IDS产品,它被定位为一个轻量级的入侵检测系统,它具有以下儿个特点:
(1)它是一个轻暈级的网络入侵检测系统,所谓轻量级是指该软件在运行时只占用极少的网络资源,对原有网络性能影响很小。
(2)从数据來源上看,它是一个基于网络入侵的检测软件,即它作为嗅探器对发往同一网络的其他主机的流量进行捕获,然后进行分析。
(3)它的工作采用误用检测模型,即首先建立入侵行为特征哭,然后在检测过程中,将收集到的数据包和特征代码T进行比较,以得出是否入侵的结论。
(4)它是用c语言编写的开放源代码网络入侵检测系统。
其源代码可以被自由的读取、传播和修改,任何一个程序员都可以自由地为其添加功能,修改错误,任意传播。
这使它能迅速发展完善并推广应用。
(5)它是一个跨平台的软件,所支持的操作系统非常广泛,比如windows,linux,sunos等都支持。
在windowsF安装比较简单:
首先下载windows卜网络数据包捕获匸具wi叩cap(www.winpcap.org),然后b*载snort安装包,直接双击安装即可。
(6)Snort有三种主要模式:
信息包嗅探器、信息包记录器或成熟的入侵探测系统。
Snort的一些功能:
实时通信分析和信息包记录。
A
九包装有效载荷检査。
协议分析和内容查询匹配。
九
探测缓冲溢出、秘密端口扫描、CGI攻击、SMB探测、