网文收集
基于TCP/IP协议的服务很多,人们比较熟悉的有WWW服务、FTP服务、电子邮件服务,不太熟悉的有TFTP服务、NFS服务、Finger服务等等。这些服务都存在不同程度上的安全缺陷,当用户构建安全可信网络时,就需要考虑,应该提供哪些服务,应该禁止哪些服务。同时,在使用这些服务的时候,你可能没有想到,TCP/IP从一开始设计的时候就没有考虑到安全设计。 TCP/IP存在脆弱性 IP层的主要曲线是缺乏有效的安全认证和保密机制,其中最主要的因素就是IP地址问题。TCP/IP协议用IP地址来作为网络节点的惟一标识,许多 TCP/IP服务,包括Berkeley中的R命令、NFS、X Window等都是基于IP地址对用户进行认证和授权。当前TCP/IP网络的安全机制主要是基于IP地址的包过滤(Packet Filtering)和认证(Authentication)技术,它的有效性体现在可以根据IP包中的源IP地址判断数据的真实性和安全性。然而IP地址存在许多问题,协议的最大缺点就是缺乏对IP地址的保护,缺乏对IP包中源IP地址真实性的认证机制与保密措施。这也就是引起整个TCP/IP协议不安全的根本所在。 由于UDP是基于IP协议之上的,TCP分段和UDP协议数据包是封装在IP包中在网络上传输的,因此同样面临IP层所遇到的安全威胁。现在人们一直在想办法解决,却仍然无法避免的就是根据TCP连接建立时“三次握手”机制的***(如图1)。这些***总结起来包括: 源地址欺骗(Source Address Spoofing)或IP欺骗(IP Spoofing); 源路由选择欺骗(Source Routing Spoofing); 路由选择信息协议***(RIP Attacks); 鉴别***(Authentication Attacks); TCP序列号欺骗(TCP Sequence number spoofing); TCP/IP协议数据流采用明文传输; TCP序列号轰炸***(TCP SYN Flooding Attack),简称SYN***; 易欺骗性(Ease of spoofing)。
图1 比如网管员都熟悉的因特网控制信息协议(ICMP),它是TCP/IP协议组的一个基本网络管理工具,在帮助网络管理人员排除网络故障中立下了汗马功劳,同时ICMP***却十分猖狂。最明显的是ICMP重定向报文,它被网关用来为主机提供好的路由,却不能被用来给主机的路由表进行主动的变化。如果***者已经攻破一个对目标主机来说可利用的次要网关,而不是基本网关,***者就可以通过有危险的次要网关给信任主机设置一个错误的路由。多数的服务主机在TCP重定向报文上不实行有效检查,这种***的影响和基于RIP的***相似。 另外,ICMP也可以被用来进行拒绝服务***(如图2)。个别的报文如目标不可达或者超时,就可以用来重置目前的连接,如果***者知道TCP 连接的本地及远端的端口号,将生成该连接的ICMP 报文。有时这样的信息可以通过NETSTAT服务来实现。一个更普遍的拒绝服务***是发送伪造的子网掩码回应报文。无论主机是否查询,它们都将接受该报文,一个错误的报文就可能阻塞目标主机的所有连接。
图2 应用服务不容乐观 1.文件传输协议 FTP经久不衰的原因在于它可以在互联网上进行与平台无关的数据传输,它基于一个客户机/服务器架构。FTP 将通过两个信道(端口)传输,一个传输数据(TCP 端口 20),另一个传输控制信息(TCP 端口 21)。在控制信道之上,双方(客户机和服务器)交换用于发起数据传输的命令。一个 FTP 连接包含4个步骤:用户鉴权→建立控制信道→建立数据信道→关闭连接。FTP 的连接控制使用 TCP (Transmission Control Protocol, 传输控制协议),它保障了数据的可靠传输。因此,FTP 在数据传输中不需要关心分组丢失和数据错误检测。 匿名FTP作为互联网上广泛应用的服务,安全等级的低下受到了***的频繁光顾。匿名FTP 是真的匿名,并没有记录谁请求了什么信息,谁下载了什么文件,上传了什么东西(有可能是***)。FTP存在着致命的安全缺陷,FTP使用标准的用户名和口令作为身份验证,缺乏有效的访问权限的控制机制,而其口令和密码的传输也都是明文的方式。 2.Web服务 Web服务器位于宿主基础结构的前端,它与Internet直接相连,负责接收来自客户端的请求,创建动态Web页并响应请求数据。最初WWW服务只提供静态的HTML页面,为改变人们对网络互动请求的愿望,开始引入了CGI程序,CGI程序让主页活动起来。CGI程序可以接收用户的输入信息,一般用户是通过表格把输入信息传给CGI程序的,然后CGI程序可以根据用户的要求进行一些处理,一般情况下会生成一个HTML文件,并传回给用户。很多CGI 程序都存在安全漏洞,很容易被***利用做一些非法的事情。现在很多人在编写CGI程序时,可能对CGI软件包中的安全漏洞并不了解,而且大多数情况下不会重新编写程序的所有部分,只是对其加以适当的修改,这样很多CGI程序就不可避免的具有相同的安全漏洞。很多 SQL Server 开发人员并没有在代码编写开始的时候就从安全防护基础开始,这样就无法确保您开发的代码的安全性,其结果就造成了无法将应用程序的运行控制在所需的最低权限之内。 如果Web 服务需要输出敏感的、受限的数据,或者需要提供受限的服务,则它需要对调用方进行身份验证。如果客户访问都是在一个可信的域中,我们就完全可以放心使用,但在实际应用中是不可能实现的。所以,系统级的身份验证也就无法实现,至少在现阶段无法实现。例如:可以使用IIS为基本身份验证配置Web服务的虚拟目录。通过这种方式,使用者必须配置代理,并提供用户名和密码形式的凭据。然后在每次Web服务通过代理请求的时候由代理传递它们。这些凭据是以明文形式传递的,所以应该只在SSL中使用基本身份验证(如图3),但很少有管理员这样做。
图3 另外,Web服务本身不提供容错机制。如果Web服务采用了软件冗余技术,就可以保证一个版本出错,另一个版本就很少有机会出现相同的错误。代码的重复利用不能保证错误的完全避免,因此在某个模块发生某个物理故障时,其他模块也就完全瘫痪。 随着Java Applet、ActiveX、Cookie等技术的大量应用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,就可能窃取、改变或删除客户机上的信息。对于恶意程序的侵害,用户很难实时判断程序性质,因此,在获得高度交互的Web服务时,如何抵御这些安全威胁绝非简单的客户端设置就可以解决的。 提高网络可信度 前面我们已经提到了IPv4存在的弊端,很多安全防范技术被忽略了,它不可避免地被新一代技术IPv6取代。IPsec安全协议就是事后发展的一种协议(如图4),而NAT(网络地址转换,Network Address Translation)解决了IP地址短缺的问题,却增加了安全风险,使真正的端到端的安全应用难以实现。端到端安全性的两个基本组件——鉴权和加密都是IPv6协议的集成组件;而在IPv4中,它们只是附加组件,因此,采用IPv6安全性会更加简便、一致。
图4 在现在的网络环境中,尤其是园区网当中,由于不存在NAT地址转换的问题,所以IPSec具备允许部署可信计算基础架构的基本特征。IPSec数据包验证能够确保整个IP报头、下一层协议(例如TCP、UPD或ICMP)报头以及数据包有效负载的数据完整性。 另外,针对数据包的单向Hash算法用以提供校验和。通信发起方计算校验和并在发送之前将其附加到数据包中;响应方则在收到数据包后为其计算校验和。如果响应方所计算出的校验和与数据包中附带的校验和完全匹配,则证明数据包在传输过程中未被修改。校验和的单向计算特性意味着其取值无法在传输过程中进行修改,这也就保证了端到端的数据传输过程的可信程度。 ---------------------------------------------------------------------------------------------------------------------- 1. 前言 TCP通信时,如果发送序列中间某个数据包丢失,TCP会通过重传最后确认的包开始的后续包,这样原先已经正确传输的包也可能重复发送,急剧降低了TCP性能。为改善这种情况,发展出SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到等。 2. SACK选项 SACK信息是通过TCP头的选项部分提供的,信息分两种,一种标识是否支持SACK,是在TCP握手时发送;另一种是具体的SACK信息。 2.1 SACK允许选项
类型值: 4+---------+---------+| Kind=4 | Length=2|+---------+---------+ |
+--------+--------+| Kind=5 | Length |+--------+--------+--------+--------+| Left Edge of 1st Block |+--------+--------+--------+--------+| Right Edge of 1st Block |+--------+--------+--------+--------+| |/ . . . /| |+--------+--------+--------+--------+| Left Edge of nth Block |+--------+--------+--------+--------+| Right Edge of nth Block |+--------+--------+--------+--------+ |
5000-5499 (该包丢失)5500-5999 5500-5999 5000, SACK=5500-60006000-6499 6000-6499 5000, SACK=5500-65006500-6999 6500-6999 5000, SACK=5500-70007000-7499 7000-7499 5000, SACK=5500-7500 |
3000-3499 3000-3499 3500 (ACK包丢失)3500-3999 3500-3999 4000 (ACK包丢失)4000-4499 (该包丢失)4500-4999 4500-4999 4000, SACK=4500-5000 (ACK包丢失)3000-3499 3000-3499 4000, SACK=3000-3500, 4500-5000---------此为D-SACK |
500-999 500-999 10001000-1499 (延迟)1500-1999 (该包丢失)2000-2499 2000-2499 1000, SACK=2000-25001000-2000 1000-1499 1500, SACK=2000-25001000-2000 2500, SACK=1000-1500---------此为D-SACK |
500-999 500-999 10001000-1499 (延迟)1500-1999 (该包丢失)2000-2499 (延迟)2500-2999 (该包丢失)3000-3499 3000-3499 1000, SACK=3000-35001000-2499 1000-1499 1500, SACK=3000-35002000-2499 1500, SACK=2000-2500, 3000-35001000-2499 2500, SACK=1000-1500, 3000-3500---------此为部分D-SACK |
Switch# copy tftp://172.16.2.155/tokyo-confg system:running-config /多了个system Switch# copy system:running-config tftp://172.16.2.155/tokyo-confg /多了个system |
Directory of flash:/
5 drwx 192 Mar 01 1993 00:03:52 c3750-i9-mz.121-19.EA1d
15998976 bytes total (9545728 bytes free)
Switch#
Switch#sh ver
Cisco Internetwork Operating System Software
IOS (tm) C3750 Software (C3750-I9-M), Version 12.1(19)EA1d, RELEASE SOFTWARE (fc
1)
Copyright (c) 1986-2004 by cisco Systems, Inc.
Compiled Mon 05-Apr-04 22:40 by antonino
Image text-base: 0x00003000, data-base: 0x007CBC3C
ROM: Bootstrap program is C3750 boot loader
BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.1(19r)EA1b, RELEASE SOFTWA
RE (fc2)
Switch uptime is 16 minutes
System returned to ROM by power-on
System p_w_picpath file is "flash:c3750-i9-mz.121-19.EA1d/c3750-i9-mz.121-19.EA1d.bin"
cisco WS-C3750G-12S (PowerPC405) processor (revision H0) with 118776K/12288K byt
es of memory.
Processor board ID CAT0849N2YU
Last reset from power-on
1 Virtual Ethernet/IEEE 802.3 interface(s)
12 Gigabit Ethernet/IEEE 802.3 interface(s)
The password-recovery mechanism is enabled.
512K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address : 00:129:97:7C:80
Motherboard assembly number : 73-8307-08
Power supply part number : 341-0048-01
Motherboard serial number : CAT084911NJ
Power supply serial number : DTH08441JZ5
Model revision number : H0
Motherboard revision number : A0
Model number : WS-C3750G-12S-S
System serial number : CAT0849N2YU
Top Assembly Part Number : 800-21966-01
Top Assembly Revision Number : L0
Version ID : N/A
Hardware Board Revision Number : 0x07 Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
* 1 12 WS-C3750G-12S 12.1(19)EA1d C3750-I9-M Configuration register is 0xF
Switch# Switch#sh flash:
Directory of flash:/
2 -rwx 1075 Mar 1 1993 00:24:27 00:00 config.text
3 drwx 192 Mar 1 1993 00:23:48 00:00 c3750-i5-mz.122-25.SEA
5 -rwx 5 Mar 1 1993 00:24:27 00:00 private-config.text
15998976 bytes total (8053760 bytes free)
Switch# Switch#sh ver
Cisco IOS Software, C3750 Software (C3750-I5-M), Version 12.2(25)SEA, RELEASE SO
FTWARE (fc)
Copyright (c) 1986-2005 by Cisco Systems, Inc.
Compiled Tue 25-Jan-05 20:26 by antonino
ROM: Bootstrap program is C3750 boot loader
BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.1(19r)EA1b, RELEASE SOFTWA
RE (fc2)
Switch uptime is 2 minutes
System returned to ROM by power-on
System p_w_picpath file is "flash:c3750-i5-mz.122-25.SEA/c3750-i5-mz.122-25.SEA.bin"
cisco WS-C3750G-12S (PowerPC405) processor (revision H0) with 118784K/12280K byt
es of memory.
Processor board ID CAT0849N2YU
Last reset from power-on
1 Virtual Ethernet interface
12 Gigabit Ethernet interfaces
The password-recovery mechanism is enabled.
512K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address : 00:129:97:7C:80
Motherboard assembly number : 73-8307-08
Power supply part number : 341-0048-01
Motherboard serial number : CAT084911NJ
Power supply serial number : DTH08441JZ5
Model revision number : H0
Motherboard revision number : A0
Model number : WS-C3750G-12S-S
System serial number : CAT0849N2YU
Top Assembly Part Number : 800-21966-01
Top Assembly Revision Number : L0
Version ID : N/A
Hardware Board Revision Number : 0x07 Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
* 1 12 WS-C3750G-12S 12.2(25)SEA C3750-I5-M Configuration register is 0xF
Switch# -------------------------------------------------------------------------------------------------------------------- Catalyst 3524 switch IP 地址的配置 直接进入默认的VLAN 1中进行配置命令如下: interface VLAN1 ip address 172.16.1.3 255.255.0.0 即可。 在Catalyst 中控制对Telnet的访问 bluestudy_a(config)#access-list 2 permit 172.16.0.0 0.0.255.255 (定义标准的访问列表) bluestudy_a(config)#line vty 0 15(进入telnet端口,最多允许16个telnet的会话) bluestudy_a(config-line)#access-class 2 in(应用上述定义的访问列表,即只有172.16.0.0/16的网段可以实现对交换机的telnet会话) 设置交换机的enable 密码
bluestudy_a(config)#enable password bluestudy bluestudy_a(config)#enable secret bluestudy The enable secret you have chosen is the same as your enable password. This is not recommended. Re-enter the enable secret. |
bluestudy_a(config)#line con 0 bluestudy_a(config-line)#password bluestudy bluestudy_a(config-line)# |
bluestudy_a(config)#line vty 0 15 bluestudy_a(config-line)#login bluestudy_a(config-line)#password bluestudy bluestudy_a(config-line)# |
bluestudy_a(config)#
bluestudy_a#show running
Current configuration:
!
version 12.0
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname bluestudy_a
!
enable secret 5 $1$b1mb$p6XgV/PY9WqvJy9MrHZFG/
enable password bluestudy
!
username bluestudy password 0 bluestudy
!
ip subnet-zero
!
interface FastEthernet0/1
!
interface FastEthernet0/2
!
interface FastEthernet0/3
!
interface FastEthernet0/4
!
interface FastEthernet0/5
!
interface FastEthernet0/6
!
interface FastEthernet0/24
!
interface GigabitEthernet0/1
!
interface GigabitEthernet0/2
!
interface VLAN1
ip address 172.16.1.3 255.255.0.0
no ip directed-broadcast
no ip route-cache
!
access-list 2 permit 172.16.0.0 0.0.255.255
!
line con 0
password bluestudy
transport input none
stopbits 1
line vty 0 4
access-class 2 in
password bluestudy
login
line vty 5 15
access-class 2 in
password bluestudy
login
!
end
bluestudy_a# ---------------------------------------------------------------------------------------------------------------------- 我们称发送回显请求的ping程序为客户,而称被ping的主机为服务器。大多数的TCP/IP实现都在内核中直接支持Ping服务器—这种服务器不是一个用户进程(在第6章中描述的两种ICMP查询服务,地址掩码和时间戳请求,也都是直接在内核中进行处理的)。 ICMP回显请求和回显应答报文如图1所示。
图1 ICMP回显请求和回显应答报文格式 对于其他类型的I C M P查询报文,服务器必须响应标识符和序列号字段。另外,客户发送的选项数据必须回显,假设客户对这些信息都会感兴趣。 U n i x系统在实现p i n g程序时是把I C M P报文中的标识符字段置成发送进程的I D号。这样即使在同一台主机上同时运行了多个p i n g程序实例,p i n g程序也可以识别出返回的信息。 序列号从0开始,每发送一次新的回显请求就加1.p i n g程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。I P是一种最好的数据报传递服务,因此这三个条件都有可能发生。 旧版本的p i n g程序曾经以这种模式运行,即每秒发送一个回显请求,并打印出返回的每个回显应答。但是,新版本的实现需要加上-s选项才能以这种模式运行。默认情况下,新版本的p i n g程序只发送一个回显请求。如果收到回显应答,则输出“host is alive ”;否则,在2 0秒内没有收到应答就输出“no answer(没有回答)”。 ---------------------------------------------------------------------------------------------------------------------
转载于:https://blog.51cto.com/3layer/44419
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
