2.3 IP地址
入侵者访问目标主机或者网络的一种方法是获取目标计算机的真实IP地址,并控制目标计算机,然后再利用目标计算机对网络上的其他计算机或者资源发动攻击。网络安全的一个基本目标就是通过隐藏或者改变网络主机的IP地址来阻止入侵者。
2.3.1 IP地址的概念
因特网是全世界范围内的计算机联为一体而构成的通信网络的总称。连在某个网络上的两台计算机之间在相互通信时,在它们所传送的数据包里都会含有某些附加信息,这些附加信息就是发送数据的计算机的地址和接收数据的计算机的地址。为了通信的方便给每一台计算机都事先分配一个类似于日常生活中的电话号码一样的标识地址,该标识地址就是IP地址。目前,在Internet上使用的IP地址协议版本为IPv4,根据协议规定,它是由32位二进制数组成,而且在Internet范围内是唯一的。例如,因特网上某台计算机的IP地址为:
11010010010010011000110000001010
显然,这些数字对于用户来说不易记忆。为了方便记忆,人们将组成计算机IP地址的32位二进制分成四段,每段8位,中间用小数点隔开,然后将每八位二进制转换成十进制数,这样上述计算机的IP地址就变成了:210.73.140.10。其中,IP地址四段中每段的取值范围为1到255,每个IP地址由两部分组成:
● 网络地址:网络地址是由Internet权力机构(InterNIC)统一分配的,目的是为了保证网络地址的全球唯一性。
● 主机地址:主机地址是由各个网络的系统管理员分配。
同一个物理网络上的所有主机都用同一个网络地址,网络上的一台主机(包括网络上工作站、服务器和路由器等)的IP地址的4个字节都可以划分为两个部分,一部分用以标明具体的网络段,称为网络地址;另一部分用以标明具体的结点的,称为主机地址,也就是说某个网络中的特定的计算机号码。例如,对于上述的IP地址,读者可以把它分成网络地址和主机地址两部分,如下:
网络地址:210.73.140.0
主机地址:10
合起来写:210.73.140.10
网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。
2.3.2 IP地址的分类
由于网络中包含的计算机有可能不一样多,有的网络可能含有较多的计算机,也有的网络包含较少的计算机,于是人们按照网络规模的大小,把32位地址信息设成3种定位的划分方式,这3种划分方法分别对应于A类、B类、C类IP地址。
1. A类IP地址
A类IP地址指:在IP地址的四段号码中,第一段号码为网络地址,其他三段为本地计算机的地址。如果用二进制表示IP地址,A类IP地址就由1个字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
2. B类IP地址
B类IP地址指:在IP地址的四段号码中,前两段号码为网络地址,其余两段号码为本地计算机地址。如果用二进制表示IP地址,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。
3. C类IP地址
C类IP地址指:在IP地址的四段号码中,前三段号码为网络地址,剩下的一段号码为本地计算机地址。如果用二进制表示IP地址,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。
除了上面3种类型的IP地址外,还有几种特殊类型的IP地址,TCP/IP协议规定:
● IP地址中的第一个字节以“lll0”开始的地址都叫多点广播地址。因此,任何第一个字节大于223小于240的IP地址是多点广播地址。
● IP地址中的每一个字节都为0的地址(“0.0.0.0”)对应于当前主机。
● IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址。
● 大于10.0.0.0小于10.255.255.255的IP地址,属于预留A类IP地址。此范围内的IP地址仅用在内部网络中,不能用做公共Internet地址。
● 大于172.16.0.0小于172.31.255.255的IP地址,属于预留B类IP地址。此范围内的IP地址仅用在内部网络中,不能用做公共Internet地址。
● 大于192.168.0.0小于192.168.255.255的IP地址,属于预留C类IP地址。此范围内的IP地址仅用在内部网络中,不能用做公共Internet地址。
● 大于127.0.0.0小于127.255.255.255的IP地址,属于预留网络回路测试的IP地址。例如:通过命令ping 127.0.0.1,进行本地接口回路测试。
2.3.3 子网掩码
子网掩码(Subnet Mask)也是一个32位地址,在TCP/IP协议中其功能是用于屏蔽IP地址的一部分以区分网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上,依此来区分网络上的主机是否在同一网络区段内。
提示:只有同在一个子网中的主机才能互相直接进行通信,否则需要通过其他特殊方法。
在大型网络中,A类地址的子网掩码为255.0.0.0,B类地址的子网掩码为255.255.0.0,C类地址的子网掩码为255.255.255.0。
假如某台主机子网掩码的IP地址为192.168.10.6,那么它的子网掩码为255.255.255.0。将这两个数据做与(AND)运算后,所得出的值中的非0的部分即为网络地址。运算步骤如下:
IP地址: 11000000101010000000101000000110
子网掩码: 11111111111111111111111111110000
AND运算:
-------------------------
11000000101010000000101000000000
则可得其网络标识为192.168.10.0。在IP地址中剩下的部分即为主机地址,在此例中主机地址为6。
2.3.4 IP地址扩展技术
随着IP地址资源的日趋枯竭,可供分配的IP地址越来越少,往往一个拥有几百台计算机规模的网络只能得到区区几个IP地址,于是,许多人开始采用其他技术来扩展IP空间。
1. 子网掩码设置
如果所分配的IP地址仅能满足对主机的需求,但远不能满足在局域网中扩建多个子网的需要,则可以通过设置子网掩码来解决。将子网掩码中第四字节最高位起的某些位由0修改成1,使本来应当属于主机号的部分改变成为网络号,这样就实现了划分子网的目的。如子网掩码的位数越多,能划分的子网数也就越多,但是每个子网的主机数就会越少。子网掩码的划分设置也有一个缺点:划分的子网越多,损失的IP地址也会越多。因为每个子网都会保留全0或全1的两个地址而不能使用。
2. 动态IP地址设置
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议是一种多个工作站共享IP地址的方法。当分配到的IP地址数目远小于一个网络工作站的数目时,如果为每个设备都分配一个固定的IP地址,则显然有一部分计算机将不能连入网络。DHCP提供了一个较好的解决方法,其前提是其中每一个设备都不是随时需要连接入网,并且同一时刻上网的设备不会很多。动态IP地址,顾名思义就是每一个设备所取得的IP地址是非固定的,即计算机连入网络时自动申请取得一个合法的IP地址,断开网络时自动归还,以便其他计算机使用。这样,可以用较少的IP地址构建较大的网络,也可以增加网络工作站的可移性,如果一台主机从一个子网移动到另一个子网时,由于网络号的不同将修改该计算机的IP地址,否则无法与其他主机通信,而如果采用动态IP地址,就会减少网络管理的复杂性。现在DHCP已非常流行,所支持的软件很多,且可以运行于不同计算机和平台。通过拨号上网的用户就基本上采用这种方法。
3. 非路由地址
在IP地址范围内,IANA(Internet Assigned Numbers Authority)将一部分地址保留作为私有IP地址空间,专门用于内部局域网使用,如表2-1所示。
表2-1 私有IP地址空间
这些地址是不会被Internet分配的,因此在Internet上从来不会被路由。虽然它们不能直接和Internet网连接,但仍可以用来进行网络通信,可以根据需要选用适当的地址类,在内部局域网中将这些地址与公用IP地址一样使用。在Internet上,不需要与Internet通信的设备,如打印机、可管理集线器等也可以使用这些非路由地址,以节省IP地址资源。
4. 代理服务器
代理服务器是网络上的一台主机设备,它有一个固定的IP地址,当需要上网时,就向该服务器提出请求,代理服务器接收请求并建立连接,然后返回服务信息。所有的数据信息和通信处理都是通过代理服务器的IP地址进行的。在这种情况下,局域网内部的主机应使用非路由地址,这样,即能保证内部主机之间的通信,又能拒绝外来网络的直接访问请求。代理服务器具有以下两个优点:
● 如果请求的数据已被同一网段上的其他人请求过了,那么大多数代理服务器都能从Cache中直接调用这些数据,避免重新连接的时间和带宽。
● 代理服务器可以保护内部网络免遭攻击,也可以对某些主机的访问能力进行必要限制,这实际上起着代理防火墙的作用。
通过使用代理服务器,也可以将内部的非路由IP地址翻译为代理服务器的外部接口地址,从而达到隐藏内部主机的目的。目前,支持代理服务器的软件也非常多,WinGate、MsProxy、NetProxy等都是非常流行的代理服务器软件。
5. 地址翻译
地址翻译实际上是路由器中的一个数据包处理过程。当数据包通过路由器时,地址翻译过程将其中的内部私有IP地址解析出来,将其翻译为一个合法的IP地址。地址翻译过程可以按预先定义好的地址表一一进行映射翻译,也可以将多个内部私有地址翻译为一个外部合法IP地址。由于网络内每个设备都有一个内部稳定的IP地址,所以这种方法具有较强的网络安全控制性能。