1、 南 昌 工 程 学 院网络安全实验指导书胡旻 ,王文丰编 2010 年 7 月前言信息安全是目前社会关注的一个焦点问题,在计算机专业当中开设信息安全课程有利于学生掌握信息安全的最新动向,有利于学生建立起信息安全的基本思想,而本实验指导书是根据信息安全课程实验教学大纲编写,通过四个小的实验揭示信息安全的作用和处理手段。目录绪论.4实验一 传统加密方式实验6实验二 DES 加密实验.7实验三 信息隐藏实验9实验四 防火墙的配置与实现12第一部分 绪论本实验指导书是根据信息安全课程实验教学大纲编写,适用于计算机本科专业。一、 本课程实验的作用与任务本实验课程的教学作用:通过四个实验让同学们建立起信
2、息安全的基本思想和一些应对方法。本实验课程教学任务:根据实验指导书的要求完成 4 个实验,以此达到检验所学知识的目的和掌握处理信息安全问题的最基本的手段二、 本课程实验的基础知识本课程实验应该掌握计算机网络原理知识三、 本课程实验教学项目及要求序号实验项目名称学时实验类别实验要求实验类型每组人数实验室名称主要设备名称是否为网络实验1传统加密方式实验2专业必修 验证 1计算机网络实验室计算机否2 DES 加密实验 2专业必修 验证 1计算机网络实验室计算机否3 信息隐藏实验 2专业必修 验证 1计算机网络实验室计算机,网络是4防火墙的配置与实现2专业必修 验证 2计算机网络实验室计算机,PIX是
3、实验项目目的和要求:1. 传统加密方式实验:目的在于让学生对加密技术有一个初步的了解,要求能够根据实验指导书的要求对一段明文进行加密处理。2.DES 加密实验:目的在于让同学们对目前在使用的加密技术有一个了解,要求能够根据实验指导书的要求对 8 个字符进行 DSE 算法的加密并得出最终结果。3.信息隐藏实验:目的在于让同学们对目前流行的信息隐藏技术有所了解和掌握,要求能够根据实验指导书的要求将一段信息隐藏在图像当中并能够与原图比较且可以从中把信息提取处理。4.防火墙的配置与实现:目的在于让同学们了解防火墙技术的关键点,要求能够根据实验指导书对 PIX 进行配置以达到防火墙的功能实现。第二部分
4、基本实验指导实验一 传统加密方式实验1) 实验目的在于让学生对加密技术有一个初步的了解,要求能够根据实验指导书的要求对一段明文进行加密处理。2) 实验原理凯撒加密是传统加密手段的代表,它的加密原理为 f(x)=f(x)+k;其中 k 为密钥,这是一个简单的函数,通过替换的方法来达到加密的效果。3) 主要仪器及耗材计算机,C 语言;4) 实验内容和步骤1、确定明文:一段不少于 64 个字母的英文警句(空格不算);2、设置密钥 K=3;3、利用 C 语言编写将以上明文通过 f(x)=f(x)+k 转变为密文,以达到加密的效果5) 数据处理与分析1、对比明文和加密后的密文;2、直接观察密文看看是否可
5、以手工的分析出明文。6) 实验注意事项程序编写简洁;7) 思考题这种加密方式的安全度高吗?实验二 DES 加密实验1) 实验目的让同学们对目前在使用的加密技术有一个了解2) 实验原理DES 加密算法是一个比较复杂的算法,但它的工作原理非藏的简单,加密的过程如下图所示:3) 主要仪器及耗材计算机,C 语言或 JAVA;4) 实验内容和步骤1、确定明文:8 字符明文2、设置密钥 key 为 computer;3、利用 C 语言编写程序以实现将明文转变为密文,以达到加密的效果加密程序:http:/ 数据处理与分析1、对比明文和加密后的密文;2、要求调试以上加密程序。3、要求得到每次迭代的结果6) 实
6、验注意事项程序调试实验三 信息隐藏实验1) 实验目的让同学们对目前流行的信息隐藏技术有所了解和掌握2) 实验原理将秘密的信息隐藏在海量数据中,使得黑客忽略信息。这种海量的数据可以是图像,音频或视频数据。由于这些媒体数据量庞大,所以把机密信息隐藏在大量信息中不让窃密者发现3) 主要仪器及耗材计算机,C 语言或 JAVA;4) 实验内容和步骤1、将信息隐藏在像素点我们也知道点阵类图像是由像素点构成的,像素点是图像的最小的单位。一个像素点分别代表 R(红)、G(黄)、B(蓝),可以表示 16,777,216 种不同的颜色,但人的肉眼是不可能分辨出这么多的颜色。如果改变像素颜色值的最低位, 则人眼是无
7、法感知的, 因此, 我们可以利用像素的最低位来携带信息。例如纯红色,其颜色值以 16 进制方式显示为 FF0000,在调色板中分别用 RGB 值显示,如下图。我们又知道计算机是采用二进制进行运算的,在计算机中任何的文件或数据最终都会以“0”和“1”的方式存在。也就是说图像像素点的 RGB 值最终都会转换成二进制以“0”和“1”的方式贮存在计算机中。我们可以通过修改图像中每个像素点的 RGB 值从而对信息进行隐藏。例如纯红色像素点的 RGB 值分别为: R255, G0, B0,将其转换成二进制数值为:R= 11111111,G= 00000000, B= 00000000,我们又会把要隐藏的信
8、息(一系列的字符串)转换成二进制的形式,如我们提取其中的一段为“ 011”,若我们要将这三个二进制值隐藏到像素点的RGB 值中可以通过这样的方法实现:(为了简化步骤我们将采用直接修改 RGB 的十进制数值从而修改其二进制值的方式。)如 R255,要将“0”隐藏其中,可以通过运算 R-1 即 2551254,将 254 转换成二进制值为 11111110。实质上就是 111111110000000111111110又如 B=0,要将“1”隐藏其中,其运算为 B1 即 011,将 1 转换成二进制为00000001。实质上就是 000000000000000100000001因为通过上述的运算,像
9、素点的 RGB 值只不过是相差1,变化非常小,所以图象显示的颜色与原来不会有太大的区别,可以说用肉眼观察不会发现其有过任何改变。如下图在调色板的实验:2、采用以上的算法来隐藏信息,我们就称这中方法为图象 LSB 隐藏法(LSB 指象素点颜色二进制值的最低一位)上图是使用 LSB 隐藏法隐藏信息前后两幅图像的视觉对照,由于图像被修改的信号是极其微弱的,用肉眼根本不能分辨出来。5) 数据处理与分析1、根据信息隐藏的原理和步骤编制 C 语言程序2、将字符串“administrator”隐藏到图像中去3、比较隐藏前和隐藏后图像的变化是否明显6) 实验注意事项程序编制7)思考题这样的信息隐藏是否可以抗压
10、缩呢?实验四 防火墙的配置和实现1) 实验目的让同学们了解防火墙技术的关键点并对 PIX 进行配置2) 实验原理防火墙是隔绝内网和外网的关键设备,它可以是软件防火墙也可以是硬件防火墙。一个完整的防火墙是由一个屏蔽路由器和代理服务器共同组成的,隔绝的关键实际是进行防火墙设置过滤的规则。3) 主要仪器及耗材计算机,网络,PIX;4) 实验内容和步骤1、配置静态 IP 地址翻译(static)如果从外网发起一个会话,会话的目的地址是一个内网的 ip 地址,static 就把内部地址翻译成一个指定的全局地址,允许这个会话建立。static 命令配置语法:static (internal_if_name
11、,external_if_name) outside_ip_address inside_ ip_address 其中 internal_if_name 表示内部网络接口,安全级别较高。如 inside. external_if_name 为外部网络接口,安全级别较低。如 outside 等。outside_ip_address 为正在访问的较低安全级别的接口上的 ip 地址。inside_ ip_address 为内部网络的本地 ip 地址。 例 1. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.8 表示 ip
12、 地址为 192.168.0.8 的主机,对于通过 pix 防火墙建立的每个会话,都被翻译成 61.144.51.62 这个全局地址,也可以理解成 static 命令创建了内部 ip 地址192.168.0.8 和外部 ip 地址 61.144.51.62 之间的静态映射。 例 2 Pix525(config)#static (inside, outside) 192.168.0.2 10.0.1.3 例 3 Pix525(config)#static (dmz, outside) 211.48.16.2 172.16.10.8 注释同例 1。通过以上几个例子说明使用 static 命令可以让
13、我们为一个特定的内部 ip地址设置一个永久的全局 ip 地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。2. 管道命令(conduit) 前面讲过使用 static 命令可以在一个本地 ip 地址和一个全局 ip 地址之间创建了一个静态映射,但从外部到内部接口的连接仍然会被 pix 防火墙的自适应安全算法(ASA) 阻挡,conduit 命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到 DMZ 或内部接口的入方向的会话。对于向内部接口的连接,static 和conduit 命令将一起使用,来指定会话的建
14、立。 conduit 命令配置语法: conduit permit | deny global_ip port protocol foreign_ippermit | deny 允许 | 拒绝访问 global_ip 指的是先前由 global 或 static 命令定义的全局 ip 地址,如果 global_ip 为 0,就用 any 代替 0;如果 global_ip 是一台主机,就用 host 命令参数。 port 指的是服务所作用的端口,例如 www 使用 80,smtp 使用 25 等等,我们可以通过服务名称或端口数字来指定端口。 protocol 指的是连接协议,比如:TCP、UD
15、P、ICMP 等。 foreign_ip 表示可访问 global_ip 的外部 ip。对于任意主机,可以用 any 表示。如果foreign_ip 是一台主机,就用 host 命令参数。例 1. Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any 这个例子表示允许任何外部主机对全局地址 192.168.0.8 的这台主机进行 http 访问。其中使用 eq 和一个端口来允许或拒绝对这个端口的访问。Eq ftp 就是指允许或拒绝只对 ftp的访问。例 2. Pix525(config)#conduit deny tcp a
16、ny eq ftp host 61.144.51.89表示不允许外部主机 61.144.51.89 对任何全局地址进行 ftp 访问。例 3. Pix525(config)#conduit permit icmp any any 表示允许 icmp 消息向内部和外部通过。 例 4. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3 Pix525(config)#conduit permit tcp host 61.144.51.62 eq www any3. 配置内外网卡的 IP 地址(ip address)Pix
17、525(config)#ip address outside 61.144.51.42 255.255.255.248 Pix525(config)#ip address inside 192.168.0.1 255.255.255.0 很明显,Pix525 防火墙在外网的 ip 地址是 61.144.51.42,内网 ip 地址是 192.168.0.1 4. 指定要进行转换的内部地址(nat) 网络地址翻译(nat)作用是将内网的私有 ip 转换为外网的公有 ip.Nat 命令总是与global 命令一起使用,这是因为 nat 命令可以指定一台主机或一段范围的主机访问外网,访问外网时需要利
18、用 global 所指定的地址池进行对外访问。nat 命令配置语法:nat (if_name) nat_id local_ip 其中(if_name)表示内网接口名字,例如 inside. Nat_id 用来标识全局地址池,使它与其相应的 global 命令相匹配, local_ip 表示内网被分配的 ip 地址。例如 0.0.0.0 表示内网所有主机可以对外访问。表示内网 ip 地址的子网掩码。 例 1Pix525(config)#nat (inside) 1 0 0 表示启用 nat,内网的所有主机都可以访问外网,用 0 可以代表 0.0.0.0 例 2Pix525(config)#nat
19、 (inside) 1 172.16.5.0 255.255.0.0 表示只有 172.16.5.0 这个网段内的主机可以访问外网。 5. 指定外部地址范围(global) global 命令把内网的 ip 地址翻译成外网的 ip 地址或一段地址范围。 Global 命令的配置语法:global (if_name) nat_id ip_address-ip_address其中(if_name)表示外网接口名字,例如 outside.。Nat_id 用来标识全局地址池,使它与其相应的 nat 命令相匹配,ip_address-ip_address 表示翻译后的单个 ip 地址或一段 ip 地址范
20、围。表示全局 ip 地址的网络掩码。 例 1 Pix525(config)#global (outside) 1 61.144.51.42-61.144.51.48表示内网的主机通过 pix 防火墙要访问外网时, pix 防火墙将使用 61.144.51.42-61.144.51.48 这段 ip 地址池为要访问外网的主机分配一个全局 ip 地址。 例 2 Pix525(config)#global (outside) 1 61.144.51.42表示内网要访问外网时,pix 防火墙将为访问外网的所有主机统一使用 61.144.51.42 这个单一 ip 地址。 例 3. Pix525(con
21、fig)#no global (outside) 1 61.144.51.42 表示删除这个全局表项。 6. 设置指向内网和外网的静态路由(route)定义一条静态路由。route 命令配置语法:route (if_name) 0 0 gateway_ip 其中(if_name)表示接口名字,例如 inside,outside。Gateway_ip 表示网关路由器的ip 地址。表示到 gateway_ip 的跳数。通常缺省是 1。 例 1 Pix525(config)#route outside 0 0 61.144.51.168 1表示一条指向边界路由器(ip 地址 61.144.51.16
22、8)的缺省路由。 例 2 Pix525(config)#route inside 10.1.1.0 255.255.255.0 172.16.0.1 1 Pix525(config)#route inside 10.2.0.0 255.255.0.0 172.16.0.1 1 如果内部网络只有一个网段,按照例 1 那样设置一条缺省路由即可;如果内部存在多个网络,需要配置一条以上的静态路由。上面那条命令表示创建了一条到网络 10.1.1.0 的静态路由,静态路由的下一条路由器 ip 地址是 172.16.0.17. 配置 fixup 协议fixup 命令作用是启用,禁止,改变一个服务或协议通过
23、pix 防火墙,由 fixup 命令指定的端口是 pix 防火墙要侦听的服务。见下面例子: 例 1 Pix525(config)#fixup protocol ftp 21启用 ftp 协议,并指定 ftp 的端口号为 21 例 2 Pix525(config)#fixup protocol http 80Pix525(config)#fixup protocol http 1080 为 http 协议指定 80 和 1080 两个端口。 例 3 Pix525(config)#no fixup protocol smtp 80禁用 smtp 协议。 8. 设置 telnet telnet 有一
24、个版本的变化。在 pix OS 5.0(pix 操作系统的版本号)之前,只能从内部网络上的主机通过 telnet 访问 pix。在 pix OS 5.0 及后续版本中,可以在所有的接口上启用telnet 到 pix 的访问。当从外部接口要 telnet 到 pix 防火墙时, telnet 数据流需要用 ipsec 提供保护,也就是说用户必须配置 pix 来建立一条到另外一台 pix,路由器或 vpn 客户端的ipsec 隧道。另外就是在 PIX 上配置 SSH,然后用 SSH client 从外部 telnet 到 PIX 防火墙,PIX 支持 SSH1 和 SSH2,不过 SSH1 是免费
25、软件,SSH2 是商业软件。相比之下 cisco 路由器的 telnet 就作的不怎么样了。 telnet 配置语法:telnet local_ip local_ip 表示被授权通过 telnet 访问到 pix 的 ip 地址。如果不设此项,pix 的配置方式只能由 console 进行。下面给出一个配置实例供大家参考,配置实例说明如下,pix 防火墙直接摆在了与internet 接口处,此处网络环境有十几个公有 ip,可能会有朋友问如果我的公有 ip 很有限怎么办?你可以添加 router 放在 pix 的前面,或者 global 使用单一 ip 地址,和外部接口的 ip地址相同即可。另外
26、有几个维护命令也很有用,show interface 查看端口状态,show static查看静态地址映射,show ip 查看接口 ip 地址,ping outside | inside ip_address 确定连通性。Welcome to the PIX firewallType help or ? for a list of available commands. PIX525 en Password: PIX525#sh config : Saved : PIX Version 6.0(1) - PIX 当前的操作系统版本为 6.0 Nameif ethernet0 outside
27、security0 Nameif ethernet1 inside security100 - 显示目前 pix 只有 2 个接口 Enable password 7Y051HhCcoiRTSQZ encrypted Passed 7Y051HhCcoiRTSQZ encrypted - pix 防火墙密码在默认状态下已被加密,在配置文件中不会以明文显示,telnet 密码缺省为 cisco Hostname PIX525 - 主机名称为 PIX525 Domain-name - 本地的一个域名服务器 ,通常用作为外部访问 Fixup protocol ftp 21 Fixup protoc
28、ol http 80fixup protocol h323 1720fixup protocol rsh 514 fixup protocol smtp 25fixup protocol sqlnet 1521fixup protocol sip 5060 - 当前启用的一些服务或协议 ,注意 rsh 服务是不能改变端口号 names - 解析本地主机名到 ip 地址,在配置中可以用名字代替 ip 地址,当前没有设置,所以列表为空 pager lines 24 - 每 24 行一分页 interface ethernet0 autointerface ethernet1 auto - 设置两个
29、网卡的类型为自适应 mtu outside 1500mtu inside 1500 - 以太网标准的 MTU 长度为 1500 字节ip address outside 61.144.51.42 255.255.255.248ip address inside 192.168.0.1 255.255.255.0 - pix 外网的 ip 地址 61.144.51.42,内网的 ip 地址 192.168.0.1 ip audit info action alarmip audit attack action alarm - pix 入侵检测的 2 个命令。当有数据包具有攻击或报告型特征码时,p
30、ix 将采取报警动作(缺省动作) ,向指定的日志记录主机产生系统日志消息;此外还可以作出丢弃数据包和发出 tcp 连接复位信号等动作,需另外配置。 pdm history enable - PIX 设备管理器可以图形化的监视 PIX arp timeout 14400 - arp 表的超时时间 global (outside) 1 61.144.51.46 - 如果你访问外部论坛或用 QQ 聊天等等,上面显示的 ip 就是这个 nat (inside) 1 0.0.0.0 0.0.0.0 0 0 static (inside, outside) 61.144.51.43 192.168.0.8
31、 netmask 255.255.255.255 0 0 conduit permit icmp any anyconduit permit tcp host 61.144.51.43 eq www anyconduit permit udp host 61.144.51.43 eq domain any- 用 61.144.51.43 这个 ip 地址提供 domain-name 服务,而且只允许外部用户访问 domain 的 udp 端口route outside 0.0.0.0 0.0.0.0 61.144.51.61 1 - 外部网关 61.144.51.61timeout xlate
32、 3:00:00 - 某个内部设备向外部发出的 ip 包经过翻译(global) 后,在缺省 3 个小时之后此数据包若没有活动,此前创建的表项将从翻译表中删除,释放该设备占用的全局地址 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 rpc 0:10:00 h323 0:05:00 sip 0:30:00 sip_media 0:02:00timeout uauth 0:05:00 absolute - AAA 认证的超时时间, absolute 表示连续运行uauth 定时器,用户超时后,将强制重新认证aaa-server TACAC
33、S+ protocol tacacs+ aaa-server RADIUS protocol radius - AAA 服务器的两种协议。AAA 是指认证,授权,审计。Pix 防火墙可以通过 AAA 服务器增加内部网络的安全 no snmp-server location no snmp-server contactsnmp-server community public - 由于没有设置 snmp 工作站,也就没有 snmp工作站的位置和联系人 no snmp-server enable traps - 发送 snmp 陷阱 floodguard enable - 防止有人伪造大量认证请求,将 pix 的 AAA 资源用完 no sysopt route dnattelnet timeout 5 ssh timeout 5 - 使用 ssh 访问 pix 的超时时间 terminal width 80Cryptochecksum:a9f03ba4ddb72e1ae6a543292dd4f5e7PIX525# PIX525#write memory - 将配置保存5) 数据处理与分析1、NAT 配置;2、协议过滤。6) 实验注意事项配置的正确性