1)定义
访问控制是针对越权使用资源的防御措施,是网络安全防范和保护的主要策略,主要任务是保证网络资源不被非法使用和非常访问,也是保证网络安全的核心策略之一。
2)基本概念
访问控制涉及三个基本概念,即主体、客体和访问授权。
(1)主体:它是一个主动的实体,包括用户、用户组、终端、主机或一个应用,主体可以访问客体。
(2)客体:它是一个被动的实体,对客体的访问要受控。它可以是字节、字段、记录、程序、文件,或者是一个处理器、存储器、网络接点等。
(3)授权访问:指主体访问客体的允许,授权访问对每一对主体和客体来说是给定的。例如,授权访问有读写、执行,读写客体是直接进行的,而执行是搜索文件、执行文件。对用户的访问授权是由系统的安全策略决定的。
在一个访问控制系统中,区别主体与客体很重要。首先由主体发起访问客体的操作,该操作根据系统的授权被允许或被拒绝。另外,主体与客体的关系是相对的,当一个主体受到另一主体的访问,成为访问目标时,该主体便成为客体。按用户身份及其所归属的某预定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。
访问控制包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。
1)入网访问控制
入网访问控制为网络访问提供了第一层访问控制。它控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许他们在哪台工作站入网。用户的入网访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的默认限制检查。三道关卡中只要任何一关未过,该用户便不能进入该网络。对网络用户的用户名和口令进行验证是防止非法访问的第一道防线。为保证口令的安全性,用户口令不能显示在显示屏上,口令具有复杂度要求,比如,长度应不少于6个字符,口令字符最好是数字、字母和其他字符的混合等,用户口令必须保密存储或传输等。
用户还可采用一次性用户口令,也可用便携式验证器(如智能卡)来验证用户的身份。网络管理员可以控制和限制普通用户的账号使用、访问网络的时间和方式。
2)权限控制
网络的权限控制是针对网络非法操作所提出的一种安全保护措施。用户和用户组被赋予一定的权限。网络控制用户和用户组可以访问哪些目录、子目录、文件和其他资源。
3)目录级安全控制
网络应允许授权用户对目录、文件、设备的访问。用户在目录一级指定的权限对所有文件和子目录有效,用户还可进一步指定对目录下的子目录和文件的权限。对目录和文件的访问权限一般有八种:系统管理员权限、读权限、写权限、创建权限、删除权限、修改权限、文件查找权限、访问控制权限。用户对文件或目标的有效权限取决于以下两个因素:用户的受托者指派、用户所在组的受托者指派、继承权限屏蔽取消的用户权限。一个网络管理员应当为用户指定适当的访问权限,这些访问权限控制着用户对服务器的访问。八种访问权限的有效组合可以让用户有效地完成工作,同时又能有效地控制用户对服务器资源的访问,从而加强了网络和服务器的安全性。
4)属性安全控制
网络系统管理员应给文件、目录等指定访问属性。属性安全在权限安全的基础上提供更进一步的安全性。网络上的资源都应预先标出一组安全属性。用户对网络资源的访问权限对应一张访问控制表,描述用户对网络资源的访问能力。属性设置可以覆盖已经指定的任何受托者指派和有效权限。属性往往能控制以下几个方面的权限:向某个文件写数据、复制一个文件、删除目录或文件、查看目录和文件、执行文件、隐含文件、共享、系统属性等。
5)服务器安全控制
网络允许在服务器控制台上执行一系列操作。用户使用控制台可以装载和卸载模块,可以安装和删除软件等操作。网络服务器的安全控制包括可以设置口令锁定服务器控制台,以防止非法用户修改、删除重要信息或破坏数据;可以设定服务器登录时间限制、非法访问者检测和关闭的时间间隔。
1)自主访问控制(Discretionary Access Control,DAC)
自主访问控制又称为随意访问控制。DAC是在确认主体身份及所属组的基础上,根据访问者的身份和授权决定访问模式,对访问进行限定的一种控制策略。所谓自主,是指具有被授予某种访问权力的用户能够自己决定是否将访问控制权限的一部分授予其他用户或从其他用户那里收回授予的访问权限。使用这种控制方法,用户或应用可任意在系统中规定谁可以访问其资源,这样,用户或用户进程就可有选择地与其他用户共享资源。它是一种对单独用户执行访问控制的过程和措施。
2)强制访问控制(Mandatory Access Control,MAC)
强制访问控制依据用户和数据文件的安全级别来决定用户是否有对该文件的访问权限。在强制访问控制中,每个用户及文件都被赋予一定的安全级别,用户不能改变自身或任何客体的安全级别,只有系统安全员可以确定用户和组的访问权限。系统通过比较用户和访问文件的安全级别来决定用户是否可以访问该文件。此外,强制访问控制不允许一个进程生成共享文件,从而访止进程通过共享文件将信息从一个进程传到另一进程。但是强制访问控制由于过于偏重保密性,对其他方面如系统连续工作能力、授权的可管理性等考虑不足,造成管理不便,灵活性差。
3)基于角色的访问控制(Ro1e-Based Access Control,RBAC)
角色访问策略是根据用户在系统中表现的活动性质而定的,角色是访问权限的集合,用户通过赋予不同的角色而获得角色所拥有的访问权限。角色访问策略是一种有效而灵活的安全措施。通过定义模型各个部分,可以实现DAC和MAC所要求的控制策略。
1)定义
NAT(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为公有(合法)IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。
私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在互联网上全球唯一的IP 地址。RFC 1918为私有网络预留出了以下三个IP地址块。
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
上述三个范围内的地址不会在互联网上被分配,因此可以不必向ISP或注册中心申请而在公司或企业内部自由使用。
NAT最初的设计目的是用于实现私有网络访问公共网络的功能,后扩展到实现任意两个网络间进行访问时的地址转换应用,这里将这两个网络分别称为内部网络(内网)和外部网络(外网),通常私网为内部网络,公网为外部网络。
2)作用
(1)解决IPv4地址不足问题
互联网发展至今,广泛使用的地址格式是IPv4。IPv4使用32位表达一个地址,地址最大范围就是2 32 ,约为43亿。以IP创始初期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的想象,计算机网络在此后几十年里迅速壮大,网络终端数量呈爆炸式增长,加上互联网数字分配机构(IANA)向超大型企业/组织分配的IP地址浪费严重,很多被分配出去的地址没有被真实使用,地址消耗很快。因此网络地址转换(NAT)开始被用来减少IPv4地址的消耗,延长IPv4的生命周期。
(2)隐藏企业的私有网络,并保护内网主机
使用网络地址转换(NAT)后,内网主机使用私网地址,而对外网却显示一个或多个公网地址,内网主机不直接暴露在公网上,避免被扫描探测和直接访问,从而增强网络的安全性。
3)优缺点
地址转换的优点在于,在为内部网络主机提供“隐私”保护的前提下,实现了内部网络的主机通过该功能访问外部网络的资源,但它也有一些缺点:
(1)由于需要对数据报文进行IP地址的转换,涉及IP地址数据报文的报头不能被加密。在应用协议中,如果报文中有地址或端口需要转换,则报文不能被加密。例如,不能使用加密的FTP连接,否则FTP协议的port命令不能被正确转换。
(2)网络调试变得更加困难。比如,某一台内部网络的主机试图攻击其他网络,则很难指出究竟哪一台主机是恶意的,因为主机的IP地址被屏蔽了。
基本网络地址转换(Basic NAT)是一种将一组IP地址映射到另一组IP地址的技术,这对终端用户来说是透明的。网络地址端口转换(NAPT)是一种将群体网络地址及其对应TCP/UDP端口翻译成单个网络地址及其对应TCP/UDP端口的方法。这两种操作,即传统NAT提供了一种机制,将只有私有地址的内部领域连接到有全球唯一注册地址的外部领域。图2-2-1描述了一个基本的NAT应用。
图2-2-1 地址转换的基本过程
(1)内网用户主机(192.168.1.3)向外网服务器(1.1.1.2)发送的IP报文通过NAT设备。
(2)NAT设备查看报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址192.168.1.3转换成一个可在外网上选路的公网地址20.1.1.1,并将该报文发送给外网服务器,同时在NAT设备的网络地址转换表中记录这一映射。
(3)外网服务器给内网用户发送的应答报文(其初始目的IP地址为20.1.1.1)到达NAT设备后,NAT设备再次查看报头内容,然后查找当前网络地址转换表的记录,用内网私有地址192.168.1.3替换初始的目的IP 地址。
上述的NAT过程对终端(如图中的Host和Server)来说是透明的。对外网服务器而言,它认为内网用户主机的IP 地址就是20.1.1.1,并不知道有192.168.1.3 这个地址。因此,隐藏企业的私有网络。
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用Overload。
1)静态地址转换
静态地址转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
2)动态地址转换
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上外网的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时,可以采用动态转换的方式。
3)端口多路复用
端口多路复用是指改变外出数据包的源端口并进行端口转换,即端口地址转换(Port Address Translation,PAT)。采用端口多路复用方式,内部网络的所有主机均可共享一个合法外部IP地址,实现对外网的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自外网的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
1)Easy IP
Easy IP功能是指进行地址转换时,直接使用接口的外网IP地址作为转换后的源地址,能够最大程度的节省IP地址资源。它也可以利用访问控制列表控制哪些内部地址可以进行地址转换。
2)NAPT(Network Address Port Translation)
NAPT(网络地址端口转换)是端口多路复用地址转换的一种变形,它允许多个内部地址映射到同一个公有地址上,也可称之为“多对一地址转换”。NAPT同时映射IP地址和端口号:来自不同内部地址的数据报文的源地址可以映射到同一外部地址,但它们的端口号被转换为该地址的不同端口号,因而仍然能够共享同一地址,也就是“私网IP地址+端口号”与“公网IP地址+端口号”之间的转换。
如图2-2-2所示,三个带有内部地址的数据报文到达NAT设备,其中报文1和报文2来自同一个内部地址,但有不同的源端口号,报文1和报文3来自不同的内部地址,但具有相同的源端口号。通过NAPT映射,三个数据报的源IP地址都被转换到同一个外部地址,但每个数据报都被赋予了不同的源端口号,因而仍保留了报文之间的区别。当各报文的回应报文到达时,NAT设备仍能够根据回应报文的目的IP地址和目的端口号来区别该报文应转发到的内部主机。
采用NAPT可以更加充分地利用IP地址资源,实现更多内部网络主机对外部网络的同时访问。目前,NAPT支持两种不同的地址转换模式:
图2-2-2 NAPT基本原理示意图
1)不关心对端地址和端口转换模式
在该模式下,NAT设备通过建立三元组(源地址、源端口号、协议类型)表项来进行地址分配和报文过滤。即只要是来自相同源地址和源端口号的报文,不论其目的地址是否相同,通过NAPT映射后,其源地址和源端口号都被转换为同一个外部地址和端口号,并且NAT设备允许外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好地支持位于不同NAT设备之后的主机间进行互访。
2)关心对端地址和端口转换模式
在该模式下,NAT设备通过建立五元组(源地址、源端口号、协议类型、目的地址、目的端口号)表项为依据进行地址分配和报文过滤。即对于来自相同源地址和源端口号的报文,若其目的地址和目的端口号不同,通过NAPT映射后,相同的源地址和源端口号将被转换为不同的外部地址和端口号,并且NAT设备只允许这些目的地址对应的外部网络主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但是不便位于不同NAT设备之后的主机间进行互访。
NAT隐藏了内部网络的结构,具有“屏蔽”内部主机的作用,但是在实际应用中,可能需要给外部网络提供一个访问内网主机的机会,如给外部网络提供一台Web服务器,或是一台FTP服务器。NAT设备提供的内部服务器功能,就是通过静态配置“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,实现公网IP地址到私网IP地的“反向”转换。例如,可以将20.1.1.1:8080 配置为内网某Web服务器的外部网络地址和端口号,供外部网络访问。
如图2-2-3所示,外部网络用户访问内部网络服务器的数据报文经过NAT设备时,NAT设备根据报文的目的地址查找地址转换表项,将访问内部服务器请求报文的目的IP地址和端口号转换成内部服务器的私有IP地址和端口号。当内部服务器回应该报文时,NAT设备再根据已有的地址映射关系将回应报文的源IP地址和端口号转换成公网IP地址和端口号。
图2-2-3 内部服务器基本原理示意图
在一般情况下,DNS服务器和访问私网服务器的用户都在公网,通过在NAT设备的公网接口配置内部服务器,可以将公网地址、端口等信息映射到私网内的服务器上,使得公网用户可以通过内部服务器的域名或公网地址来访问内部服务器。但是,如图2-2-4所示,如果DNS服务器在公网,私网的用户希望通过域名来访问私网的Web服务器,则会由于DNS服务器向私网用户发送的响应报文中包含的是私网服务器的公网地址,导致收到响应报文的私网用户无法利用域名访问私网服务器。通过在设备上配置DNS Mapping可以解决该问题。
图2-2-4 NAT DNS Mapping工作示意图
DNS Mapping是通过配置“域名+公网IP地址+公网端口号+协议类型”的映射表,建立内部服务器域名与内部服务器公网信息的对应关系。在配置了NAT的接口上,设备检查接收到的DNS响应报文,根据报文中的域名查找用户配置的DNS Mapping映射表,并根据表项内的“公网地址+公网端口+协议类型”信息查找内部服务器地址映射表中该信息对应的私网地址,替换DNS查询结果中的公网地址。这样,私网用户收到的DNS响应报文中就包含了要访问的内部服务器的私网地址,也就能够使用内部服务器域名访问同一私网内的内部服务器。
NAT不仅实现了一般的地址转换功能,同时提供了完善的地址转换应用级网关(Application Layer Gateway,ALG)机制,使其可以支持一些特殊的应用协议,而不需要对NAT平台进行任何的修改,具有良好的可扩充性。这些特殊协议的报文载荷里携带了地址或端口信息,该信息也可能需要进行地址转换。可支持的特殊协议包括文件传输协议(File Transfer Protocol,FTP)、点到点隧道协议(Point-to-Point Tunneling Protocol,PPTP)、互联网控制消息协议(Internet Control Message Protocol,ICMP)、域名系统(Domain Name System,DNS)、Internet定位服务(Internet Locator Service,ILS)、实时流协议(Real Time Streaming Protocol,RTSP)、会话发起协议(Session Initiation Protocol,H.323、SIP)、基于TCP/IP 的网络基本输入输出系统(NetBIOS over TCP/IP,NetMeeting 3.01、NBT)等。