版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络通信安全管理员教程
1第三章网络安全基础本章学习要求:了解各种Windows系统和Linux系统的安全机制;掌握如何安装与配置Vmware虚拟机;了解网络协议分析器的工作原理;掌握SnifferPro网络协议分析器的使用方法;了解网络安全编程的相关知识;掌握基本的网络安全编程方法。23.1操作系统安全3.1.1操作系统安全概述操作系统的安全机制包括:硬件安全机制操作系统的安全标识和鉴别访问控制最小特权管理可信通路等。3(1)硬件安全机制安全操作系统的硬件安全机制,实质上也是普通操作系统所要求的,计算机硬件安全的目标是保证自身的可靠性和为系统提供基本安全机制。优秀的硬件保护性能是高效、可靠的操作系统的基础。硬件安全机制通常包括存储保护、运行保护、I/O保护等。存储保护是一个安全操作系统最基本的要求,主要是保护用户在存储器中的数据不受破坏。安全操作系统最重要的一点是实行分层设计,而运行域正是这样一种基于保护环的等级式结构。运行保护是指进程严格按照运行域机制运行。I/O保护是操作系统功能中最复杂的一个功能,要寻找一个操作系统安全方面的缺陷,往往是从系统的I/O部分开始。一个安全的系统是把I/O赋予一个特权指令。用户程序要想启动I/O,必须请求操作系统代为启动。4(2)操作系统的安全标识和鉴别用户标识鉴别是操作系统提供的最外层保护措施。标识就是系统对每一个用户的身份都有一个特定的系统内部可以标识的标记,这个标记就是用户标识符。这个标识在全系统唯一的。将用户标识符与用户联系起来的过程就是鉴别。(3)访问控制操作系统的访问控制涉及自主访问控制和强制访问控制两个形式。自主访问控制是基于对主体或主体所属的主体组的识别,限制对客体的访问。强制访问控制是“强加”给访问主体的。(4)最小特权管理所谓最小特权,指的是“在完成某种操作时所赋予网络中每个主体(用户或进程)必不可少的特权”。最小特权原则则是指“应限定网络中每个主体所必需的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小”。5
(5)可信通信可信通路也是路径,是终端人员借以直接同可信计算机通信的一种机制,该机制只能由有关终端人员或可信计算机启动,并且不能被不可信软件所模仿。操作系统安全的实施将保护计算机硬件、软件和系统数据,防止人为因素造成的故障和破坏。因此,提高操作系统本身的安全等级尤为重要。它包括如下几个方面:①身份鉴别机制:实施强认证方法,比如数字证书等。②访问控制机制:实施细粒度的用户访问控制、细化访问权限等。6③完整性:防止数据系统被恶意代码比如病毒破坏,对关键信息进行数字签名技术保护。④系统的可用性:不能访问的数据等于不存在,不能工作的业务进程毫无用处。因此还要加强应对攻击的能力,比如病毒防、抵御黑客入侵等。(6)审计审计是一种有效的保护措施,它可以在一定程度上阻止对信息系统的威胁,并在系统监测、故障恢复等方面发挥重要的作用。73.1.2Windows系统安全Windows系统的安全机制介绍:(1)Windows认证机制早期Windows系统的认证机制不很完善,甚至缺乏认证机制。(2)Windows访问控制机制
WindowsNT/XP的安全性达到了橘皮书(可信计算机系统评测标准TCSEC)C2级,实现了用户级自主访问控制。其访问控制机制如图3-1所示.8图3-1Windows访问控制机制9(3)Windows审计/日志机制日志文件是Windows系统中一个比较特殊的文件,它记录Windows系统运行状况,如各种系统服务的启动、运行和关闭等信息。Windows系统日志有3种类型:系统日志、应用程序日志和安全日志,它们对应的文件名为SysEvent.evt、AppEvent.evt和SecEvent.evt。这些日志文件通常存放在操作系统安装区域“system32\config”目录下。(4)Windows协议过滤和防火墙由于网络上的安全威胁日趋严重,WindowsNT4.0、Windows2000则提供了包过滤机制,通过过滤机制可以限制网络中的数据包进入计算机。而WindowsXP自带了防火墙,它能够实现监控和限制用户计算机的网络通信。
10(5)Windows文件加密系统为了防范入侵者通过物理途径读取磁盘信息,而不是通过Windows系统文件访问,Microsoft开发了加密的文件系统EFS,利用EFS,文件中的数据在磁盘上是加密的。用户如果访问加密的文件,则必须拥有这个文件的KEY,则这个文件才能被打开,像其它普通文档一样。EFS加密是基于公钥策略。被EFS加密过的数据不能在Windows中直接共享。如果通过网络传输经EFS加密过的数据,这些数据在网络上将会以明文的形式传输。NTFS分区上保存的数据还可以被压缩,但是一个文件不能同时被压缩和加密。11现在系统面临的主要威胁有以下几点:①Windows口令的安全②Windows恶意代码③应用软件漏洞④系统程序的漏洞⑤注册表安全⑥文件共享安全⑦物理临近攻击12针对这些威胁,Windows系统提出了安全增强方法:①安全漏洞打补丁。由于很多漏洞本质上都是软件设计时的缺陷和错误,因此需要修复。②停止服务和卸载软件。③升级或更换程序。④修改配置或权限。⑤去除特洛伊木马等恶意程序。⑥安装可用的安全工具软件。13WindowsNT系统安全
WindowsNT(NewTechnology)是微软公司第一个真正意义上的网络操作系统,它的发展经过NT3.0,NT4.0,NT5.0(Windows2000)和NT6.0(Windows2003)等众多版本,并逐步占据了广大中小网络操作系统的市场。
WindowsNT众多版本的操作系统使用了与Windows9X完全一致的用户界面和完全相同的操作方法,使用户使用起来比较方便。与Windows9X相比,WindowsNT的网络功能更加强大并且安全。
14WindowsNT系列操作系统具有以下3方面的优点:(1)支持多种网络协议由于网络中可能存在多种客户机,这些客户机可能使用了不同的网络协议,如TCP/IP,IPX/SPX等。但WindowsNT系统支持几乎所有常见的网络协议。(2)内置Internet服务随着互联网发展和TCP/IP协议族的标准化,WindowsNT操作系统内置了IIS,可以使用户轻松地配置各种网络服务。15(3)支持NTFS文件系统
Windows9X使用的文件系统是FAT,在NT中内置同时支持FAT和NTFS的磁盘分区格式。FAT32文件仅提供了文件夹的安全控制,而NTFS文件系统同时具备了安全性和稳定性,并且能设置文件和文件夹的安全性。全32位内核的NTFS为磁盘目录与文件提供安全设置,指定访问权限。NTFS自动记录与文件相关的变动操作,具有文件修复能力。NTFS文件系统每簇仅为512字节,硬盘利用率最高。但是NTFS也有自己不足的地方,它的兼容性差。NTFS可以访问FAT文件系统,但是反向操作无法进行。目前支持NTFS分区格式的系统不多,除了NT外,Windows2000、WindowsXP、Windows2003系统也支持这种文件系统形式。16Windows2000系统安全
Windows2000起初称为WindowsNT5.0,它综合了Windows98和WindowsNT4.0的很多优点和性能,Windows2000系统具有如下安全特性:(1)活动目录
Windows2000Server在WindowsNTServer4.0的基础上,进一步发展了活动目录(ActiveDirectory)。(2)文件系统
Windows2000在WindowsNTServer4.0R高效文件服务基础上,加强和新增了分布式文件系统、用户配额、加密文件系统、磁盘碎片整理和索引服务等服务。17(3)存储服务
Windows2000中使用的存储管理体现在动态磁盘卷管理、磁盘碎片整理和自动系统恢复等方面。(4)数据和通信安全在数据和通信安全方面,Windows2000实现了如下的特征:数据安全性、企业间通信的安全性、企业和Internet网络的单点安全登录以及易用和良好扩展性的安全管理。18
虽然Windows2000系统在安全方面又做了很大改进,但是仍然存在一些安全隐患,下面介绍一些增强系统安全的技术。(1)系统启动安全增强非法用户若能以软盘及光盘启动计算机,那他就可以在DOS系统下随意对系统进行攻击。因此用户必须关闭软盘及光盘的启动功能。方法:启动计算机,在系统自检时进入系统的CMOS设置功能,然后将系统的启动选项设置为“CONLY”,同时为COMS设置必要的密码。19(2)账号与口令管理安全增强在Windows2000系统中用户账户有两种:活动目录用户账户和计算机账户。加强用户账户管理的方法有:①停用Guest账户。②限制不必要的用户数量。③把系统Administrator账号改名。④创建一个陷阱账号。⑤设置安全复杂的口令。⑥设置屏幕保护口令。⑦不让系统显示上次登录的用户名。20Windows系统资源安全管理也是系统安全很重要的方面,可以通过下面的设置来提高系统的安全性。①共享权限的修改在系统默认情况下,每建立一个新的共享,Everyone用户就享有“完全控制”的共享权限,因此,在建立新的共享后应该立即修改Everyone的默认权限。②注册表安全。Windows2000中很多安全设置,都要通过注册表来进行,所以要保证注册表的安全。21可以通过以下步骤实现:第一步,删除注册表编辑器(RegistryEditor)其位置在系统盘的Winnt目录下;第二步,禁用注册表,展开HKEY_LOCALUSER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System分支,在System主键下新建一个名为DisableRegistryTools的SWORD值,将值改为1。将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Microsoft\Control\SecurePipeServers\Winreg分支关键值删除,用户就无法通过网络访问注册表了,彻底杜绝黑客从远程网络入侵的可能。第三步,设置用户使用注册表的权限。22
对于Windows系统网络安全管理方面,可以通过下面的方法提高系统的安全性。①系统补丁。②禁止空连接。方法:修改注册表。把在LOCAL_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous下面的值设为1。③关闭不必要的网络服务和网络端口过多的网络服务和端口的开放增加了系统的安全风险,为此应尽量避免打开不必要的服务和端口。23下面对如何解决这样的问题进行简单的介绍。①关闭server服务。②NETBIOS(网络基本输入输出服务139端口,用于文件和打印共享)。③关闭135端口(停止RPC服务)、445端口。④关闭137、138端口。24WindowsServer2003系统安全在Windows2000基础上改进而来的Windows2003,因其操作方便,功能强大,成为新一代服务器操作系统的主流。在安全方面,Windows2003的安全模型发挥了巨大作用。以下介绍Windows2003安全模型的功能。①身份验证。WindowsServer2003进行身份验证时分两部分执行:交互式登录和网络身份验证。②访问控制。访问控制是批准用户、组和计算机访问网络上的对象的过程。③加密文件系统(EFS)。继续延续Windows2000的这一技术,其对加密文件的用户是透明的,即此用户在使用该加密文件时不用手动解密。④公钥基础结构。⑤Internet协议安全性(IPSec)。它通过使用加密的安全服务以确保在Internet协议网络上进行保密和安全的通信。
25
在安装的过程中,存在下面的安全隐患:①在接入网络时进行系统安装。②操作系统与应用系统共用一个磁盘分区。③采用默认安装。默认安装时可能会安装一些安全隐患的组件。④系统补丁安装不及时,不全面。在系统运行的过程中,仍然存在一些安全隐患,主要包括:①默认共享:系统在运行后,会自动创建一些隐藏的共享。②默认服务:系统在运行后,自动启动了许多有安全隐患的服务,如Telnet,RemoteRegistryservices等,这些服务实际工作中如不需要,可以禁用。26③安全策略:默认下,安全策略是不起作用的。④管理员账号:在系统运行后,Administrator账号没有停用,攻击者可能一遍一遍尝试这个账号的口令。⑤页面文件:页面文件用来存储没有装入内存的程序和数据文件部分的隐藏文件。其中可能含有敏感信息。⑥共享文件:默认状态下,每个人对新创建的文件共享都拥有完全的控制权限,这是不安全的,应该严格控制用户的访问权限。⑦Dump文件:Dump文件在系统崩溃后和蓝屏的时候是一份很有用的查找问题的资料,但同时也会给攻击者提供一些敏感信息。⑧Web服务:系统本身自带的IIS服务、FTP服务存在安全隐患。27
针对上面提到的安全隐患,可以执行如下的安全防范措施。①关闭系统默认共享。方法1:采用批处理文件在系统启动时自动删除共享。方法2:修改注册表,禁止默认的共享功能。②关闭不必要的服务。③启用安全策略。④加强对Administrator账号和Guest账号的管理控制。⑤清除页面文件。⑥清除Dump文件。⑦防范NetBIOS漏洞攻击。⑧加强IIS服务器的安全。28WindowsXP系统安全
WindowsXP版本作为Windows系列中个人电脑用户的系统,它具有运行可靠、稳定而且速度快的特点。成熟的技术支持,清新明快的外观设计,使用户有着良好的视觉享受。
WindowsXP继续延续Windows系列的安全机制,体现在安装安全策略、账号安全策略、应用安全策略、网络安全策略等方面。下面仅针对系统服务和进程的问题进行说明。拥有Administrator权限的用户,打开命令提示符窗口,输入“netstart”命令后,就可看到已经开启的系统服务。如果为了详细查看,可以在“运行”里面输入“services.msc”,打开服务设置窗口。服务分为三种启动类型:自动、手动、已禁用。
29为了保障系统的安全,有些服务是必须禁止的。如以下的几种服务:①NetMeetingRemoteDesktopSharing
允许授权用户通过NetMeeting在网络上互相访问对方。这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务会把用户名以明文形式发送到连接它的客户端,黑客的嗅探程序很容易就能探测到这些账户信息。②UniversalPlugandPlayDeviceHost
此服务是为通用的即插即用设备提供支持的。这项服务存在一个安全漏洞,运行此服务的计算机很容易受到攻击。30③Messenger
俗称信使服务,电脑用户在局域网内可以利用它进行资料交换(传输客户端和服务器之间的NetSend和Alerter服务消息,此服务与WindowsMessenger无关。如果服务停止,Alerter消息不会被传输)。④TerminalServices
此服务允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。如果不使用WindowsXP的远程控制功能,可以禁止此服务。⑤RemoteRegistry
此服务项使远程用户能修改此计算机上的注册表设置。注册表是系统的核心内容,不建议一般用户自行更改,更不允许别人进行远程修改,所以开启31⑥FastUserSwitchingCompatibility
在多用户下为需要协助的应用程序提供管理。⑦Telnet
此服务允许远程用户登录到此计算机并运行程序,并支持多种TCP/IPTelnet客户,包括基于UNIX和Windows的计算机。⑧PerformanceLogsAndAlerts
该服务是用来收集本地或远程计算机基于预先配置的日程参数的性能数据,然后将此数据写入日志或触发警报。⑨RemoteDesktopHelpSessionManager
如果此服务被终止,远程协助将不可用。⑩TCP/IPNetBIOSHelper
如果不需要局域网之间的互相访问,建议禁用该服务,其存在安全隐患。32
另外还有一些服务是可以被禁止的
,一些普通用户可以按需求来禁止相关服务:①Alerter。②IndexingService。③ApplicationLayerGatewayService。④UninterruptiblePowerSupply。⑤PrintSpooler⑥SmartCard。⑦SsdpDiscoveryService(简易服务发现协议之发现服务)。⑧AutomaticUpdates。⑨Clipbook。对于其它一些服务如果对用户没有什么作用,用户可以自己决定取舍。33Windows系统进程一般包括基本系统进程和附加进程。基本系统进程是系统运行的必备条件,只有这些进程处于活动状态,系统才能正常运行;而附加进程则不是必需的,可以按需新建或结束。下面介绍一些最基本的系统进程。Csrss.exe:这是子系统服务器进程,负责控制Windows创建或删除线程以及16位的虚拟DOS环境。SystemIdleProcess:这个进程是作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。Smss.exe:这是一个会话管理子系统,负责启动用户会话。34Services.exe:系统服务的管理工具。Explorer.exe:资源管理器。Lsass.exe:本地的安全授权服务。Spoolsv.exe:管理缓冲区中的打印和传真作业。Svchost.exe:这个进程需要着重说明,有时在“任务管理器”中可以看到多个Svchost.exe在运行,很像病毒。其实也不一定,系统启动的时候,Svchost.exe将检查注册表中的位置来创建需要加载的服务列表,如果多个Svchost.exe同时运行,则表明当前有多组服务处于活动状态;多个DLL文件正在调用它。35
由于上面的这些基本进程具有运行的必要性,病毒就经常伪装成相似进程,以骗过用户,从而达到攻击主机的目标。下面介绍病毒常用的欺骗手段。①svchost.exe
常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe,病毒经常这样伪装,来迷惑用户的眼睛。我们可以打开“控制面板”→“管理工具”→“服务”,双击其中“ClipBook”服务,在其属性面板中可以发现对应的可执行文件路径为“C:\WINDOWS\system32\clipsrv.exe”。再双击“Alerter”服务,可以发现其可执行文件路径为“C:\WINDOWS\system32\svchost.exe-kLocalService”,而“Server”服务的可执行文件路径为“C:\WINDOWS\system32\svchost.exe-knetsvcs”。36正是通过这种调用,可以省下不少系统资源,因此系统中出现多个svchost.exe,其实只是系统的服务而已。在Windows2000系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP中,则一般有4个以上的svchost.exe服务进程。如果svchost.exe进程的数量多于5个,就应注意,很可能是病毒假冒的进程,检测方法也很简单,使用一些进程管理工具,例如Windows优化大师的进程管理功能,查看svchost.exe的可执行文件路径,如果在“C:\WINDOWS\system32”目录外,那么就可以判定是病毒了。37②explorer.exe
常被病毒冒充的进程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我们经常会用到的“资源管理器”。③iexplore.exe
常被病毒冒充的进程名有:IExplorer.exe、iexploer.exe。④rundll32.exe
常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。⑤spoolsv.exe
常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务“PrintSpooler”所对应的可执行程序,其作用是管理所有本地和网络打印队列及控制所有打印工作。38
3.1.3Linux系统安全随着Internet/Intranet网络的日益普及,采用Linux网络操作系统作为服务器的用户也越来越多,这一方面是因为Linux是开放源代码的免费正版软件,另一方面也是因为较之微软的WindowsNT网络操作系统而言,Linux系统具有更好的稳定性、效率性和安全性。在使用Linux系统时,我们也要详细了解它的安全机制,找出它可能的安全隐患,给出相应的安全策略和保护措施。Linux网络操作系统的基本安全机制
Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。39(1)Linux系统的用户帐号在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。(2)Linux的文件系统权限
Linux文件系统的安全主要是通过设置文件的权限来实现的。(3)合理利用Linux的日志文件
Linux的日志文件用来记录整个操作系统使用状况。作为一个40Linux网络系统管理员要充分用好以下几个日志文件。①/var/log/lastlog文件记录最后进入系统的用户的信息,包括登录的时间、登录是否成功等信息。②/var/log/secure文件记录系统自开通以来所有用户的登录时间和地点,可以给系统管理员提供更多的参考。③/var/log/wtmp文件记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。41Linux网络系统可能受到的攻击和安全防范策略
Linux网络系统可能受到的攻击类型主要有:(1)“拒绝服务”攻击所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源,使网络暂时或永久瘫痪,从而使Linux网络服务器无法为正常的用户提供服务。例如黑客可以利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求,从而使目标服务器系统瘫痪。(2)“口令破解”攻击口令安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的口令,从而可以取得已经加密的信息资源。例如黑客可以利用一台高速计算机,配合一个字典库,尝试各种口令组合,直到最终找到能够进入系统的口令,打开网络资源。42(3)“欺骗用户”攻击“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员,向用户发出呼叫,并在适当的时候要求用户输入口令,这是用户最难对付的一种攻击方式,一旦用户口令失密,黑客就可以利用该用户的帐号进入系统。(4)“扫描程序和网络监听”攻击许多网络入侵是从扫描开始的,利用扫描工具黑客能找出目标主机上各种各样的漏洞,并利用这些漏洞对系统实施攻击。网络监听也是黑客们常用的一种方法,当成功地登录到一台网络上的主机,并取得了这台主机的超级用户控制权之后,黑客可以利用网络监听收集敏感数据或者认证信息,以便日后夺取网络中其他主机的控制权。43
Linux网络安全防范策略
(1)仔细设置每个内部用户的权限为了保护Linux网络系统的资源,在给内部网络用户开设帐号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统的安全还是应该坚持这个原则。(2)确保用户口令文件/etc/shadow的安全对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。44(3)加强对系统运行的监控和记录
Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。(4)合理划分子网和设置防火墙如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。(5)定期对Linux网络进行安全检查
Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。45(6)保护最新的系统核心由于Linux系统的开放性,经常有更新的程序和系统补丁出现,因此为了加强系统安全,一定要经常更新系统内核。(7)制定适当的数据备份计划确保系统万无一失没有一种操作系统的运转是百分之百可靠的,也没有一种安全策略是万无一失的,因此作为Linux系统管理员,必须为系统制定适当的数据备份计划,充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统保存数据备份,使系统一旦遭到破坏或黑客攻击而发生瘫痪时,能迅速恢复工作,把损失减少到最小。
46
加强Linux网络服务器的管理可以通过以下措施来实现网络服务器的安全使用。(1)利用记录工具,记录对Linux系统的访问
Linux系统管理员可以利用前面所述的记录文件和记录工具记录事件,可以每天查看或扫描记录文件,这些文件记录了系统运行的所有信息。(2)慎用Telnet服务在Linux下,用Telnet进行远程登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果黑客又获得了超级用户权限,则会对系统造成极大的威胁。因此,如果不是很需要的情况下,不开放Telnet服务。47(3)合理设置NFS服务和NIS服务
NFS(NetworkFileSystem,网络文件系统)服务,允许工作站通过网络共享一个或多个服务器输出的文件系统。但对于配置得不合理的NFS服务器来讲,用户不经登录就可以阅读或者更改存储在NFS服务器上的文件,使得NFS服务器很容易受到攻击。如果一定要提供NFS服务,要确保基于Linux的NFS服务器支持SecureRPC(SecureRemoteProcedureCall),以便利用DES(DataEncryptionStandard)加密算法和指数密钥交换(ExponentialKeyExchange)技术验证每个NFS请求的用户身份。48(4)仔细配置FTP服务
FTP服务与前面讲的Telnet服务一样,用户名和用户密码也是明文传输的。因此,为了系统的安全,必须对/etc/ftpusers文件进行合理配置,禁止root,bin,daemon,adm等特殊用户对FTP服务器进行远程访问,通过对/etc/ftphosts的设定限制某些主机不能连入FTP服务器,如果系统开放匿名FTP服务,则任何人都可以下载文件(有时还可以上载文件),因此,除非特别需要一般应禁止匿名FTP服务。49(5)合理设置POP-3和Sendmail等电子邮件服务。对一般的POP-3服务来讲,电子邮件用户的口令也是按明文方式传送,黑客可以很容易截获用户名和用户密码。为了防止此类问题的出现,必须安装支持加密传送密码的POP-3服务器(即支持AuthenticatedPOP命令),这样用户在向网络中传送密码之前,可以先对密码加密。最新版的Sendmail服务器软件在安全方面比老版本的Sendmail邮件服务器做的完善,所以要尽量选用新的邮件服务器。50(6)加强对WWW服务器的管理,提供安全的WWW服务当一个基于Linux系统的网站建立好之后,绝大部分用户是利用WWW浏览器来访问Web服务器,因此必须特别重视Web服务器的安全,无论采用哪种基于HTTP协议的Web服务器软件,都要特别关注CGI脚本(CommonGatewayInterface),这些CGI脚本是可执行程序,一般存放在Web服务器的CGI-BIN目录下面,在配置Web服务器时,要保证CGI可执行脚本只存放于CGI-BIN目录中,这样可以保证脚本的安全,且不会影响到其他目录的安全。(7)禁止finger服务在Linux系统下,使用finger命令,可以显示本地或远程系统中目前已登录用户的详细信息,黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下删除finger命令。如果要保留finger服务,应将finger文件换名,或修改权限为只允许root用户执行finger命令。513.2安装与配置Vmware虚拟机3.2.1虚拟机简介网络安全是一门实践性很强的学科,良好的实验配置是必须的。而虚拟机实现了一台物理机同时运行两台或更多台虚拟机的情形。
虚拟机的概念所谓虚拟机就是虚拟计算机,简称“虚拟机”。虚拟机就是通过软件在一台计算机上模拟出来若干台可以独立运行而互不干扰的多个具有相同或不同操作系统的计算机。其特别之处在于,每一台虚拟机都与真实的计算机类似,拥有自己的CPU、内存、硬盘、光驱等硬件设备,甚至还有自己的BIOS。在虚拟机上,我们可以安装Windows、Linux等真实的操作系统和各种应用程序,并能够同时运行多台装有不同操作系统的虚拟机。在虚拟机上用户可以随意进行任何操作,都不会影响到本机系统。52如果本机系统足够强大,用户甚至可以同时运行多个虚拟机来进行复杂的网络实验。虽然虚拟机是由本机系统模拟出来的,但两者之间互不影响。当虚拟机因操作失误崩溃时,用户可以直接将虚拟系统删除而丝毫影响不到本机系统,而且用户安装完虚拟机之后不需要重启电脑。目前虚拟机有很多种,包括VMware、Mircosoft的VirtualPCGSXServer、ESXServer、VirtuaServer以及ParallersWorkstation等,其中最好用的是VMware和VirtualPC。53
VMware
VMware是一款很受欢迎的虚拟机软件,它是由VMware公司开发的。VMware根据使用者的不同可以分为客户端和服务器端虚拟机。而我们主要使用的就是客户端,即VMwareWorkstation。它是唯一能同时在Windows和Linux平台上运行的虚拟机软件。
VMwareWorkstation的最新版本是VMwareWorkstationv6.5.2,它提供三个版本:VMware-ESX-Server(它本身就是一个操作系统,不需要其它操作系统的支持,带有远程Web管理和客户端管理功能)、VMware-GSX-Server(它需要在主系统上安装,要Windows2000以上的Windows系统或Linux系统,同样具有远程Web管理和客户端管理功能)、VMwareWorkstation(与上一版本一样,但不具有远程Web管理和客户端管理功能)。54VirtualPCVirtualPC可以在MacOS和Windows操作系统上模拟x86电脑,并在其中安装和运行操作系统。该系统原来由Connectix公司开发,并由原来只在MacOS运行改为跨平台。现在被微软公司收购,并正式改名为WindowsVirtualPC。如果本机系统够好,VirtualPC可以在一台电脑上最多同时运行32个操作系统,它的设置过程比较简单。微软公司于2006年宣布VirtualPC成为免费软件。它的最新版本支持WindowsVista系统的安装。553.2.2VMware的安装与配置
电脑硬件配置
虚拟机毕竟是将两台以上的电脑的任务集中在一台电脑上,所以对硬件的要求比较高,主要是CPU、硬盘和内存。目前的电脑CPU多数是PIII以上,硬盘都是上百G,这样的配置已经完全能满足要求。关键是内存,内存的大小等于本机系统加上虚拟机操作系统需求之和。
对本机操作系统的要求
用户安装不同的虚拟机,对本机的操作系统要求不同。VMware既可以运行在Windows中,也可以运行在Linux中,但它运行的Windows操作系统必须是NT版本以上的。VirtualPC可以运行在Windows和MacOS操作系统上,但它运行的Windows操作系统必须是95以上的。56
虚拟机VMware的安装下面通过图示,说明虚拟机的安装过程。(1)将VMware安装程序解压到指定文件夹下面,点击安装程序,开始安装。(2)接下来的几步均按系统的默认选项设置,由于我们通常不会用到调试组件,所以选择“Custom”方式,进行安装。(3)在点击“Next”后,界面上出现的“IntegratedVirtualDebuggers”选项是我们所不需要的,所以右击该选项,选择“Thisfeaturewillnotbeavailable”去掉该属性,执行后如图3-2所示。(4)完成了上述安装步骤后,下面步骤不需特别设置,直接点击“next”,进行默认安装。(5)经过上述的设置后,点击“Install”进行安装。(6)经过一段时间的安装后,软件提示要求输入序列号,我们只要输入可用的序列号,就可继续安装。(7)最后,点击“Finish”结束安装,此时会提示重启计算机,实际上不重启也可以开始使用。57图3-2定制安装软件的方式58
配置VMware
在VMwareWorkstation上安装虚拟系统之前,用户还要对其进行一些基本的配置。打开桌面上的VMwareWorkstation应用程序后,会弹出LicenseAgreement窗口,这时我们选择“YES”,就可继续配置。(1)表示同意后,进入到工作界面,点击“NewVirtualMachine”,如图3-3所示。(2)在图3-3的工作界面中,我们选择新建一个虚拟机——点击“NewVirtualMachine”,新建一个虚拟机。(3)为了详细说明虚拟机的相关原理,在新建的过程中,我们进行“Custom自定义”安装。下面按照默认设置继续安装→“选择默认的Workstation6.5”→点击“next”。在随后出现的界面上,我们使用光盘安装Linux系统,所以选择第一个选项—“Installerdisc”。(3)设置好后,点击“Next”,弹出“ProcessorConfiguration”操作界面,依据本机情况,对处理器的个数进行设置——选择“One”,点击“Next”,弹出“MemoryfortheVirtuNextlMachine”界面。59(4)为了虚拟机更好的运行,需要设置内存大小。在弹出的“MemoryfortheVirtuNextlMachine”界面上,依据实际需要进行内存大小的设置,完成后点击“Next”,出现“Networkconnection”设置界面。进入网络设置界面,这里有三种虚拟机网络连接的方式,它们各有特点,各有应用场合,下面对其进行简单的介绍。①Bridge模式(桥模式)这种模式是在新建虚拟机的时候默认选择的,是将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上面,实际上是将Host主机的物理网卡设置为混杂模式,从而达到侦听多个IP的能力。在这种模式下,虚拟主机的虚拟网卡直接与Host主机的物理网卡所在的网络相连,可以理解为虚拟机和Host主机处于对等的地位,在网络关系上是平等的,没有谁主谁次之分。默认使用虚拟网卡VMnet0。60②NAT模式这种模式下Host主机的“网络连接”中会出现了一个虚拟的网卡VMnet8(默认情况下)。如果你做过2000/2003的NAT服务器的实验就会理解:Host主机上的VMnet8虚拟网卡就相当于连接到内网的网卡,Host主机上的物理网卡就相当于连接到外网的网卡,而虚拟机本身则相当于运行在内网上的计算机,虚拟机内的虚拟网卡则独立于VirtualEthernetSwitch(VMnet8)。在这种方式下,VMware自带的DHCP服务会默认地加载到VirtualEthernetSwitch(VMnet8)上,这样虚拟机就可以使用DHCP服务。更为重要的是,VMware自带了NAT服务,提供了从Host主机的VMnet8虚拟网卡到外网的地址转换。所以这种情况是一个实实在在的NAT服务器在运行,只不过是供虚拟机用的NAT。61③Host-Only模式这种模式是一种封闭的方式,适合在一个独立的环境中进行各种网络实验。这种方式下Host主机的“网络连接”中出现了一个虚拟的网卡VMnet1(默认情况下)。和NAT唯一的不同的是:此种方式下,没有地址转换服务。因此这种情况下,虚拟机只能访问到主机,这也是Host-Only的名字的意义。默认情况下该模式也会有一个DHCP服务加载到VirtualEthernetSwitch(VMnet1)上。这样连接到VirtualEthernetSwitch(VMnet1)上的虚拟机仍然可以设置成DHCP,主要是方便系统的配置。根据以上介绍和实现情况,选择第一种方式——“Usebridgednetworking”,然后点击“Next”,进入“Disk”设置窗口。(5)在这里需要进行硬盘设置,这时选择第一个选项——新建一个虚拟硬盘,点击“Next”,进入“SelectADiskType”界面。(6)在“SelectADiskType”界面,选择的硬盘类型是IDE,继续“Next”,下一步设置虚拟硬盘的大小,最小请设置为7G,然后点击“Next”,弹出存放虚拟机位置的窗口。在此窗口中,点击“Browse”,选择虚拟机磁盘存放的位置,设置好后,点击“Next”,结束配置。62
图3-3虚拟机的工作界面63
更改虚拟机的配置(1)修改虚拟内存的大小。方法:运行虚拟机软件→在菜单栏中选择“VM”→下拉列表中选择“Settings”,点击之后,弹出“VirtualMachineSetting”窗口,如图3-4所示,在此窗口中,进行内存修改,通过选择“Harding”→“Memory”→通过拖动箭头,选择合适的内存大小。滑块下面的三个数值从上到下分别代表:客户机操作系统推荐的最小值、建议的内存大小、建议的最大内存大小。(2)添加和删除虚拟硬盘在上面打开的“VirtualMachineSetting”选项卡中,选择“HardDisk”选项,点击“Add”,进行虚拟硬盘的添加。弹出“HardwareType”选项窗口,如图3-5所示,从中选择要添加的硬件设备——“HardDisk”,点击“Next”,出现“SelectaDisk”对话框,选择“Createanewvirtualdisk”并设定好其存放的位置,添加的过程和前面的虚拟机配置过程一样,此处不再重复,这样就可以完成虚拟硬盘的添加。同样进行删除虚拟硬盘时,只需先选中“HardDisk”选项卡再点击“Remove”就可完成删除。64
图3-4更改内存大小65
使用虚拟机的几点说明(1)虽然虚拟机与宿主机共用一套硬件,但是在虚拟机中安装系统时,虚拟机操作系统所识别的的设备品牌与真实的物理设备不一致的。如显卡、网卡都是虚拟的设备。(2)虚拟机的磁盘不要选择“分配所用磁盘空间”,采用“用多少占多少”的原则比较节约宿主机的磁盘空间。(3)VMware具有“丢弃磁盘全部改变”的功能,对虚拟机上的操作系统所做的修改,只要重新启动虚拟机就可以恢复到之前的状态。(4)为虚拟机分配的内存量不要过大,因为这个内存量是在虚拟机启动后要真正使用的内存量,分配过大会影响宿主机的性能。(5)安装VMware工具可以获得一些实用的功能,如鼠标自由移入移出、宿主机与虚拟机直接手动复制文件、整理虚拟机磁盘闲置空间等。(6)为了与宿主机的快捷键Ctrl+Alt+Del区别,在虚拟机中用快捷键Ctrl+Alt+Insert代替快捷键Ctrl+Alt+Del。66图3-5选择硬件的类型673.3网络协议分析器的使用3.3.1网络协议分析器的工作原理为了更好的使用网络协议分析器,我们先了解一下它们的工作原理以及相关知识。网络分析(Networkanalysis)是指通过捕捉网络流动的数据包,查看包内部数据,进而来发现网络中出现的各种问题的过程。(1)捕获数据包的基础网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。在Linux系统中,Libpcap是一个基于BPF的开放源码的捕包函数库。现有的大部分Linux抓包工具都是基于这套函数库或者是在它基础上做一些针对性的改进。68在Windows系统中,有这样一个基本函数库——Winpcap,在Windows运行的抓包工具都以它为基础,完成捕获数据包、解码、并显示网络流量的功能。Libpcap的下载地址是:http:///projects/libpcap/。由于在Windows下安装抓包工具时,它会自动将Winpcap函数库装上,所以不用另行安装。(2)包捕获机制从广义的角度上看,一个包捕获机制包含三个主要部分:最底层是针对特定操作系统的包捕获机制,最高层是针对用户程序的接口,第三部分是包过滤机制。不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。69数据包常规的传输路径依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤/缓冲等相关处理,最后直接传递到应用程序。值得注意的是,包捕获机制并不影响操作系统对数据包的网络处理。对用户程序而言,包捕获机制提供了一个统一的接口,使用户程序只需要简单的调用若干函数,就能获得所期望的数据包。这样一来,针对特定操作系统的捕获机制对用户透明,使用户程序有比较好的可移植性。包过滤机制是对所捕获到的数据包根据用户的要求进行筛选,最终只把满足过滤条件的数据包传递给用户程序。70(3)网络分析软件的原理首先让我们先来了解一下网卡的工作方式。在以太网络中,所有通讯都是以广播方式工作的,同一个网段内的所有网络接口都可以访问在物理媒体上传输的所有数据,而每一个网络接口都有一个唯一的硬件地址,即MAC地址。在正常的情况下,一个网络接口只可能响应以下两种数据帧:与自己MAC地址相匹配的数据帧和发向所有机器的广播数据帧。但在实际的系统中,数据的收发一般都是由网卡完成的,而网卡的工作模式有以下4种:广播,这种模式下的网卡能接收发给自己的数据帧和网络中的广播数据帧;(默认)组播,这种模式下的网卡只能够接收组播数据帧;直接,这种模式下的网卡只能接收发给自己的数据帧;混杂,这种模式下的网卡能接收通过网络设备上的所有数据帧。71从上面可知,虽然网卡在默认情况下仅能接收发给自己的数据和网络中的广播数据,但我们可以强制将网卡置于混杂模式工作,那么此时该网卡便会接收所有通过网络设备的数据,而不管该数据的目的地是谁。嗅探技术:通过将网卡的工作模式置为混杂模式(promiscuous),并接收通过网卡的所有数据包,从而达到嗅探(监听)的目的,这种技术就是嗅探(监听)技术。结合以上描述的工作原理,网络分析软件就是遵循以太网工作模式,它基于以太网嗅探技术,以旁路接入的方式进行工作。系统首先将本地机器上的网卡置为混杂模式,使其通过嗅探技术捕获网络中传输的所有数据包,然后将这些数据包传递到系统内部进行分析,再将分析结果以文本、图表等不同的方式实时显示在界面中。723.3.2SnifferPro协议分析器的使用在Windows下,比较常用的抓包工具有SnifferPro、Wireshark(前身Ethereal)、Omnipeek(以前的Etherpeek)、WinDump、Analyzer等。网络嗅探软件种类很多,主要是依靠一些特性来区分的。例如一些网络嗅探软件只支持以太网适配器或无线适配器,而有些却支持多种类型的适配器,并且允许用户定制;还有,尽管许多网络嗅探软件可以解码相同的网络协议,但是,其中的某些嗅探软件就有可能比其它的嗅探软件更适合你的网络结构。所在我们要结合自己的需要和对网络嗅探软件功能的了解,最终选择用哪一款网络嗅探软件。
73Sniffer软件是NAI公司推出的功能强大的协议分析软件,具有捕获网络流量进行详细分析、实时监控网络活动、利用专家分析系统诊断问题、收集网络利用率和错误等功能。下面通过捕获FTP数据包为例,说明如何使用SnifferPro。(1)设置监听网卡。在我们使用SnifferPro进行抓包时,它会自动检测出PC机上使用的网络适配器,我们只要选择出我们所要监听网络的适配器,就可以实现抓取数据包。运行“File”→“SelectSettings”,弹出如图3-6所示的界面。74
图3-6选择监听的网卡75
(2)设置过滤规则在默认情况下,sniffer将捕获其接入碰撞域中流经的所有数据包,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤。Sniffer提供了捕获数据包前的过滤规则的定义,过滤规则包括2、3层地址的定义和几百种协议的定义。在捕获流量时,使用者可以根据自己的需要在不同时间设置过滤器。一种是在抓包之前,先定义一个过滤器,只捕获与你正在分析问题有关的数据包,也可以先让SnifferPro捕获可以看到的所有数据包,然后用过滤器选择你感兴趣的部分。两种各有优缺点,如使用第一种,使用者不用考虑缓存区的大小,捕获时间较短,但是如果过滤器定义不正确,可能丢失重要信息。76第二种方法在捕获所有流量时,相对灵活性较好,这样可以对网络的所有数据有全面的了解,但有一个缺陷:每秒钟可能有上千个数据包通过正在监听的网络,使PC机负载着巨大的数据量,影响着PC机的性能。由于这里只进行简单的FTP数据包的抓取,所以选择第一种方式。方法:“Capture”→“DefineFilter”,在此窗口中,我们进行相关设置。在此窗口有五个选项卡,分别对过滤规则中相关的“地址”、“协议”、“缓存”文件进行设置。在我们捕获FTP数据包时,FTP服务器的地址是26,使用协议是TCP中的FTP,捕获到的数据包缓存的位置和缓存区的大小依据情况进行设置。77
首先我们可先选定数据包分析文件保存的位置,并给其命名为“FTP”,方法:在Sniffer运行界面中,先点击菜单栏中的“Profile”点击“New”新建文件,并输入文件名字,点击“OK”就可完成,过程如图3-7所示。当然我们也可以直接使用“Default”的默认设置。78
下一步:在打开的“DefineFilter”窗口中,选择“Address”选项卡,这是最常用的过滤规则定义。其中包括MAC地址、IP地址和IPX地址的定义。现在以定义IP地址过滤为例进行设置。如图3-8所示,注意图中标记“2”,当点击中间的DIR后,可以出现三个小选项,如图3-9所示,这表示三种数据包的流动方向,在本例中我们为了看到完整的FTP协议工作过程,我们不做单独设置。79图3-8设置依据IP地址的过滤规则80图3-9三种数据包流动的方向81
下一步:在打开的“DefineFilter”窗口中,选择“Advanced”选项,在这里可以定义希望捕获何种协议的数据包。在本例中,我们选择“IP”→“TCP”→“FTP”。在“PacketSize”中,我们可以设置想要捕获大小是多少的数据包。“PacketType”设置数据包的类型,在本例中,我们选择默认设置。下一步:仍然在打开的“DefineFilter”窗口中选“Buffer”选项,在此界面定义捕获到的数据包存放地方以及缓冲区的大小。(3)应用过滤规则,开始抓包。在Sniffer运行界面中,点击菜单栏上的“Capture”→选择“SelectFilter”,在出现的窗口中选择我们刚刚设置好的过滤规则。然后通过点击“Capture”→选择“Start”或者点击工具栏上的三角箭头,表示开始抓包。当要停止捕获时,同样可以有两种方式,点击工具栏上的停止按钮,也可以选择“Capture”中的相应选项。抓包结果如图3-10所示:82图3-10抓包结果83(4)协议分析。在停止抓包的时候,出现如图3-10所示的界面后,我们点击“Decode”后,出现捕获到的数据包。因为FTP协议工作的过程需要传输层TCP协议的支持,所以首先要通过TCP的“三次握手”建立连接,才可以进行数据交换。下图3-11所示的信息,清楚表示了FTP连接建立的过程。84图3-11协议分析85第一个数据包:源端1619向目的端的21(FTP默认端口)端口发送数据,标志位为“SYN”表示同步,SEQ=369724012表示IP为10的主机随机选择的一个数据包序号。第二个数据包:源端21向目的端的1619号端口发送回执号为369724013来发送回执对话,这个序号比上个数据包的SEQ号大1,同时服务器端自己产生一个随机选择的序号814426062来识别这次会话。第三个数据包:三次握手的最后一个帧。工作站会发送一个回执数据包(ACK=814426063),确认收到来自服务器上的帧。这样就成功建立了会话。两者可以互通信息。863.4.1编程环境概述
C语言是一种强大的语言,它既可以在Windows下编程,也可以在Linux下编程,编程是一项比较综合的工作,除了熟练使用编程工具外,还要了解系统本身的内部工作机理和编程语言。
Linux系统下的应用程序多由C语言编写,目前Linux系统下最常用的C语言编译器是GCC(GNUComplierCollection
在Windows下我们用VC++来进行编程。3.4网络安全编程基础87
C语言中,目前有两大语言是编程者的主流选择:C++和Java。C++适合做系统软件开发,Java适宜做网络应用开发。虽然VC++.NET已经面世很久,但是C++的开发工具目前的主流依然是VisualC++和C++Builder6.0。VC++是基于C,C++的集成开发工具,它可以识别C/C++并编译,支持MFC类库,并提供了一系列模板,常用的有MFCAppWizard(EXE/DLL),MFCActiveXControlWizard,Win32Application,Win32ConsoleApplication,ATLCOMAppWizard。这种可视化编程环境可以令程序员花更多精力在程序功能的实现上,而不是底层的建设上,这就大大加快了程序开发速度和效率,这也是VisualC++一个显著的特点。利用VisualC++编译出的程序空间小、运行快,比其他的编译工具编译出的软件占据较多优势。现在常用的版本有VisualC++6.0/.Net/2005。下面通过一个程序来说明VC++集成开发工具的使用。(1)进入VC++的编程界面,选择菜单栏中的“文件”→点击“工程”,打开如图3-12所示窗口,在这里我们选择新建一个控制台程序“Win32ConsoleApplication”,输入工程名字“test”,并选好保存位置。88图3-12新建工程89(2)点击确定后,进入下面的设置,选择默认的选项→“Anemptyproject”,完成创建工程模板。(3)单击“完成”,出现工程总结窗口,检查没有错误,单击“确定”,出现工作界面,如图3-13所示。(4)因为建立的工程是空的,没有一个程序文件,需要为工程添加程序文件,选择菜单栏中的“文件”→“新建”,出现如图3-14所示界面,选择“文件”选项卡,选择添加的文件类型“C++SourceFile”,并输入文件名。(5)点击“确定”后,出现文件编辑界面,如图3-15所示,并在此窗口输入程序,完成后,进行编译、连接、执行,其中标号1、4的作用相同,表示编译,2、5相同,表示连接,3、6相同,表示执行。最后出现程序结果,如图3-16所示。90图3-13VC++的工作界面91图3-14新建源程序文件92图3-15编辑窗口93程序代码解释如下:程序test.cpp代码包括三行,其中第一行:“#include<iostream.h>”意思是引入C++的基本输入输出函数库,在C语言中引入的是“stdio.h”库。在iostream.h文件中定义了cout的功能是输出,endl的功能是回车换行。第二行:“voidmain()”,main()函数是C/C++的主函数,void表示该函数没有返回值。第三行:“cout<<"Hello"<<endl;”,“cout<<”功能是向屏幕输出。943.4.2编程语言
C语言
C语言经过不断的发展,在编程体系中可以将其分成四个阶段:面向过程的C语言→面向对象的C++语言→SDK编程→MFC编程(MicrosoftFoundationClass:微软基类库)。(1)C语言可用于多种场合,由于它的效率高,可移植性较高,并具备很强的数据处理能力,因此适于编写系统软件,也比较适合编写网络安全程序。C语言简洁紧凑、灵活方便、数据结构丰富。C语言是结构式语言,语法限制不太严格,程序设计自由度大,并且允许直接访问物理地址,可以直接对硬件进行操作,它还可以直接调用操作系统提供的API函数编写非常强大的程序。所以,C语言是进行网络安全程序编程的首选语言。95(2)C++是建立在C语言之上的,最初被称为带类的C语言,C++没有取代C,而是补充和支持了C。C++在保留C原有精华的基础上,提供了全面的面向对象的编程支持,使得程序和结构更加清晰、更容易维护和扩充,同时又不丧失其高效性。其优点主要是与C语言的兼容,既支持面向对象的程序设计,也支持结构化的程序设计。修补了C语言中的一些漏洞,提供了更好的类型检查和编译时的分析,使得程序员在C++环境下继续写C代码,也能得到直接的好处。C++还提供了异常处理机制,简化了程序的出错处理。一般而言,用C++编写的执行程序执行速度与C语言不相上下。96(3)SDK编程。理解SDK之前,我们要先明确下面两个概念。首先要接触的是“API”,也就是ApplicationProgrammingInterface,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。在Windows中,系统API是以函数调用的方式提供的。例如同样是取得操作系统的版本号,在Windows中你所要做的就是调用GetVersionEx()函数。DLL,即DynamicLinkLibrary(动态链接库)。我们经常会看到一些.dll
格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。97
跟.exe文件不同的是,.dll
文件不能直接执行,他们通常由.exe在执行时装入,内含有一些资源以及可执行代码等。(4)MFC编程。SDK的功能非常强大,需要记很多的函数,当面向对象编程成为主流的时候,微软将SDK的函数分类进行封装,这样就诞生了MFC(MicrosoftFoundationClass)。传统的Win32开发(直接使用Windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱。而MFC的出现,将面向对象程序设计与Applicationframework的完美结合,将传统的API进行了分类封装,并且为使用者创建了程序的一般框架,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《化工制图基本知识》课件
- 甘肃政法大学《先进复合材料》2023-2024学年第一学期期末试卷
- 企业培训课件题目
- 三年级数学上册四两位数除以一位数的除法两位数除以一位数说课稿西师大版
- 《考试习惯指导》课件
- 三年级科学上册第1单元水8它们发生了什么变化教案2教科版
- 《作文复习分析论据》课件
- 化工生产安全用电课件
- 动物解剖生理学-25体温
- 初一安全食品课件
- 2024县级应急广播系统技术规范
- 一年级道德与法治无纸笔期末检测质量分析
- 视频剪辑师工作总结
- 新疆维吾尔自治区巴音郭楞蒙古自治州2023-2024学年二年级上学期期末数学试卷
- 华为公司服务流程
- 干细胞修复神经损伤
- ZPW-2000A四线制改变运行方向电路
- 中医跟师总结论文3000字(通用3篇)
- 电动三轮车监理细则
- 《铝及铝合金厚板残余应力测试方法 切缝翘曲法》
- GB/T 43218-2023煤炭测硫仪性能验收导则
评论
0/150
提交评论