如何做才能确保操作系统的安全?这虽然是一个老生常谈的问题,但是,还是有很多网络管理员不知道什么才是最恰当的回答。究其原因,不是他们不知道如何去做,而是没有形成一种解决系统安全问题的思路。
实际上,保障系统安全最好就是依次按“制定系统部署计划”—“安装系统”—“系统安全加固”—“系统监控和维护”这四个阶段的方式来部署一个系统,而不论你使用的是Windows系统还是基于Linux内核的系统。
第一个阶段,制定系统部署计划
在你决定要部署某个系统时,首先要做的,就是根据部署的目标,为将要进行的系统部署工作制定一个详细的计划。它将作为你整个系统部署过程当中的指导方针。这个阶段也是整个系统部署过程中最重要的一个环节,它的好坏直接影响到整个系统部署的成功与否。
系统部署计划通常包括以下的内容:

   1.
      系统部署的目的。就是指确定要部署的这个系统是做什么用途的。例如,用来做WEB服务器、电子邮局服务器、入侵检测系统、数据备份服务器,还是只用来做普通的桌面系统等。
   2.
      系统类型。就是指使用哪种类型的操作系统及版本。这是根据系统部署目标来定的。
   3.
      系统安全目标。它也是根据系统部署的目的来确定的,不同的系统部署目的会有不同的安全防范目标。有时,安全目标还与你自身的经济条件有关,你不得不在可以承受的风险大小和可承受的成本投入之间做一个平衡的决策。由于系统面对的安全威胁是各种各样的,因此,你应当针对系统所面临的每种安全威胁,制定一个独立的安全防范目标,然后将这些目标有机的结合起来构成一个完整的安全目标系统。就目前安全威胁形势来说,你要制定防止黑客攻击、木马攻击、病毒感染、网页攻击、网络钓鱼、社会工程攻击和物理攻击这七个主要系统安全威胁要达到的安全目标。
   4.
      每个安全目标的安全策略。就是指使用什么样的安全方法可以达到这些目标,以及如何具体操作,使用什么样的技术和方案及产品等。
   5.
      系统部署具体实施的开始和结束时间,以及具体的实施人员等都应当记录在案。

第二阶段,安装系统
当系统部署计划制定好后,就可以根据所制定的计划,开始着手进行具体的实施。系统部署具体实施的第一步就是进行系统的安装。系统安装是保障系统安全的一个重要环节,不可以轻视。系统如何安装,安装过程进行什么样的操作,都要根据制定的计划当中的系统部署目的和安全目标来进行操作的。对于系统的安装方式,可以通过安装CD、硬盘或网络的方式进行安装。为了安全,一般使用安装CD和硬盘安装的方式进行,网络安装只能用于局域网内部方式进行。对于Windows操作系统来说,其桌面版本和服务器版本的安全过程大体相差不大,在安装过程中,用户能干涉的地方也很少,大部分按默认方式安装就可以了。而基于Linux内核的操作系统在安装过程中就可以给用户很大的选择权。用户在安装Linux内核的系统时,会被提示设置防火墙级别、网络、root用户密码、系统引导器(现在一般指GRUB)的密码设置及普通用户的密码设置等,以及可以由用户自行指定是否安装X11系统和其它程序、服务、库和软件等。有些基于Linux内核的发行版本还允许用户设置磁盘的LVM方式及加密,以及磁盘RAID的设置,是否启用SELinux等等。总的来说,在系统安装时,要根据系统部署的目的(例如是作为桌面系统还是服务器),以及安全目标来仔细定置每一个安装步骤。
第三阶段,系统安全加固
一旦系统及所有的硬件驱动全部安装完善后,在新部署的系统连入互联网络之前,还应当对它进行全面的安全加固工作。将一台没有进行安全加固的系统布置到互联网的边界上,就如同一座没有安锁的房子一样不安全,被入侵只存在时间长短的问题。系统安全加固也是系统部署过程中最重要的一环,系统安全加固的成功与否直接关系到系统抵挡各种安全威胁的效果。因此,系统安全加固,一般以最大的安全性为首要目标,同时以保障系统所必需提供的服务的可访问性为最基本的原则。
对系统进行安全加固,首先你得明白目前系统存在什么样的风险,这样你才能知道要加固系统的哪些方面。这个任务可以通过一些系统漏洞检测工具来完成。在Windows系统平台下,常用的可信的系统漏洞检测工具就是微软基准安全分析器(MBSA),其它的Windows系统下的漏洞检测软件还有SuperScan、Winfingerprint、Metasploit和360安全卫士等。在基于Linux内核的系统中,比较好用的主机漏洞检测软件有Nmap 、Nessus、Linux Security Auditing Tool (LSAT)和SATAN等。
系统漏洞检测工具在对系统做过全面的体检后,会生成一个可读的系统漏洞报告,报告的内容包括系统需要打的补丁个数、开放的危险端口、启动了的存在危险的服务及存在弱口令的管理员账号等等。这时你就应当根据系统漏洞报告,采取相应的安全措施来修补这些漏洞。
通常,一个新安装的系统,系统的补丁是应当首先要更新的。在Windows平台下,你可以使用Windows更新程序,或者使用360安全卫士等软件来更新系统补丁。在Linux内核的系统平台下,可以直接通过更新编译最新的内核版本的方式来更新Linux内核补丁。至于其它软件和X11补丁的更新,每一种Linux内核发行版本都不相同,以Fedora core 7为例,就可以通过RPM安装程序或红帽更新计划来进行。系统补丁的更新还可以通过自动方式来进行,这能减少系统管理员的日常工作量。在Windows平台下可以通过搭建WSUS(Windows Server Update Services)服务,而基于Linux内核的系统可以通过编写Shell脚本,然后通过Crontab来自动执行。
至于其它的系统加固方面,可以根据系统检测报告来分步进行,例如系统服务及端口的设置,用户权限的设置,系统审核和日志记录,资源共享方式等。对于系统中必需使用的网络应用程序,一定要安装最新的版本,一般就能修补以往此软件存在的漏洞。你还可以使用其它相同功能的安全性高的软件来进行网络应用,例如使用SSL VPN进行远程连接,使用数字签名进行电子邮件发送等。
系统安全加固的方式还可以使用其它第三方的安全软件来完成,例如单机版防火墙、杀毒软件、垃圾邮件过滤软件等。同时,对系统进行安全加固也可以按照层次化安全防范的方式来进行,根据可能存在威胁,一层层进行相应的防护,以此来保障当某层安全防范被突破后,还有另一层安全措施在防范,这样能在最大限度地保证系统的安全。
在进行系统安全加固过程中需要特别注意的是,在应用的每一种安全软件或方法的同时,还要确保这种安全软件或方法本身是安全的。还有就是要明白,能将系统安全风险降低到我们能承受的最低水平就可以了,一味追求绝对安全是不可取的。
第四阶段,系统监控与维护
对系统进行安全加固以后,并不意味着在新系统的使用过程当中,就可以高枕无忧了。你还应当在系统的使用过程当中,不断地对系统进行监控,这样才能及时发现系统正面临的问题,并对它进行恰当的维护。这是因为,随着攻击者技术水平的不断提高,就会有新的系统及应用程序的安全漏洞被发现,同时会出现更多高级的网络攻击工具,所有的这些,都不可能将系统只进行一次安全加固,就可以解决现在及将来的安全威胁问题的。更何况,系统的操作者的某些操作行为,也会带来一些意想不到的威胁。因此,你还应当在计算机投入使用后的整个使用生命周期当中,都应当对它进行不断的监控,并对存在的实时的安全问题做出相应的调整。
在Windows系统中,你可以通过“任务管理器”来了解正在运行的任务和进程,还可以通过“系统信息”中的“正在运行的任务”来更加详细地了解现在运行的任务的进程名、PID、所处的位置和程序名称及它们所加载的模块等等。还可以通过使用icesword、procexp、autoruns和360安全卫士等软件来查看哪些不能在“任务管理器”中显示的进程。你还可以使用Filemon和Regmon这两个程序来对系统文件和注册表进行监控,来发现系统文件和注册表的改变。现在一些新版本的杀毒软件和应用层防火墙也已经具有进程行为监控的功能了。例如Tiny Firewall等。在Windows系统下,你还可以通过“系统信息”中的“系统文件验证程序”来验证一些重要系统的数字签名,它会将已经被修改的系统文件显示出来,并显示出修改的时间。这种方式,可以用来检测是否系统的DLL文件被木马或病毒注入了。而Windows系统中网络连接状况的监控,你可以使用如Wireshark等嗅探软件来分析,还可以使用ManageEngine_OpUtils软件来进行。
在基于Linux内核的系统中,显示系统进程的命令有ps和top,显示登录用户的命令有last和who,显示网络连接情况的命令有netstat和nbtstat。其中还有许多可以用来显示系统信息的目录,如/proc/sys目录。同样,在在Linux系统下,你可以使用Bastille unix来检测和加固Linux系统。
你还可以通过每个系统的系统日志文件及应用程序的日志文件,来分析得到系统及应用程序的运行状况,并发现可能已经存在的威胁。在Windows系统下,可以通过“控制面板”—“管理工具”中的“事件查看器”来查看应用程序和系统的日志及用户审核记录。在Linux系统下,可以通过直接用VI打开/var/log/目录下的相应日志文件进行查看,还可以通过logwatch来监视日志文件,使用logcheck来检查日志文件。