您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > LINUX的系统安全
1LINUX的系统安全王忠欧阳首承任苏萍黄中辉(成都信息工程学院现代通信技术研究所,chegndu610041)摘要:计算机的安全是个热门话题。计算机的攻击和计算机的安全是矛与盾的关系。LINUX是类UNIX的操作系统,它具有UNIX的所有特性,在安全性上与UNIX一样具有非常严谨的体系结构。本文从系统安全方面论述了LINUX系统上的安全,分别从物理安全、本地安全、文件系统安全和密码安全等方面论述了LINUX的系统安全结构,给出了一些有效的安全措施。关键词:Linux,系统安全,操作系统SystemSecurityofLINUXWangZhongOuyangShouchengRenSupingHuangzhonghui(ChengduUniversityofInformationTechnology,Chengdu610041)Abstract:Thesecurityofthecomputerisahottopic.Theattackofthecomputerandsecurityofthecomputerarerelationsbetweenlanceandshield.BeingakindoftheoperatingsystemsofquasiUnix,LinuxhasthecharacteristicsofUnix,anditisaverystrictandcautioussystemstructurewithbettersafety.ThispaperhasdiscussedthesecurityonLinuxsystemfromthesecurityofthesystemtosecurityofnetwork,suchasphysicssecurity,localsecurity,filesystemsecurityandpasswordsecurity,etc.Anditprovidessomemeasureinensuringsystemsecurity.Keywords:Linux,Systemsecurity,OperatingSystem1.引言Linux是国际互联网发展的产物。由于Linux操作系统是免费,因此Linux在我国的应用领域得到很快的发展。由于投资成本的原因,许多中小企业渐渐开始使用Linux于中小型服务器。国际互联网的发展促进了网络资源共享,以此同时也带来了许多网络安全问题。网络安全成了网络用户关心的一个热点问题。本文就此讨论如何构建一个安全的Linux系统环境。2.物理安全电脑系统的物理安全是首先考虑的安全问题,物理安全是整个安全的第一道关卡。2.1BOIS安全BOIS是一个非常底层的软件,它配置了或者说操作着x86平台的底层硬件。LILO和其它的Linux引导程序首先访问BOIS,再决定如何引导Linux机器。可以使用BOIS上的安全设置去阻止攻击者操作机器。可以在机器的BOIS中设置一个启动密码。这虽然不能提供足够的安全,但是它对攻击者起到了一个威慑作用。有必要取消启动顺序中的从软盘启动的顺序,设置一个进入BOIS的密码,防止攻击者进入BOIS,对它进行修改。2.2启动载入程序的安全各种Linux引导程序也允许设置启动密码。就以LILO为例,已经有了密码和受限制的设置。如果以单用户身份登录,在启动时候被设置了需要输入密码。像在/etc/lilo.conf文件中加入如下设置:(password=yourpassword;restricted;)那可限制在启动时候必须输入密码才能启动Linux。2.3系统锁定很多时候,会有什么急事要离开电脑一会,而工作还在继续,不能停下来。可激活系统的锁定程序,2把系统终端锁定,工作还在继续,而攻击者却不能进入该系统终端。在Linux中,锁定程序是xlock和vlock。Xlock是XWindow的锁定程序,在Linux的各个发行版都支持。在X窗口运行xlock,此程序将会锁定系统,若想进入系统,必须输入密码。Vlock是允许锁定一部分或者全部Linux虚拟终端。可以锁定正在工作的终端,而不影响其它的终端。其他人可以从那些未被锁定的终端登录,但不可以使用被你锁定了的终端(除非解锁了)。3.本地安全通过一个本地用户帐号获得访问是系统入侵者试图获得root权限的第一件事情。对于安全松散的系统,入侵者会利用各种漏洞把他们的一般用户升级为root用户。3.1用户管理(1).创建一个新用户每创建一个新用户,应尽量分配合适的权限给用户(他们能完成工作的权限)。这样作会使系统变得安全些。下面是允许让别人合法访问机器的几条好的规则:尽量给他们所需要的最小权限;要知道他们什么时候、什么地方登录,或者他们登录信息被记录起来;要把那些不使用的帐号删除或者禁用;在所有的计算机和网络上使用相同的用户ID号,对于用户的管理是十分明智的;产生用户ID号的组应该被绝对禁止,用户帐号也提供了说明性,这对于组帐号来说是不可能的。增加用户有三个过程:在/etc/passwd文件中写入新用户的入口项,同时也在/etc/shadow中创建与该用户相关的密码信息;为新登录用户建立一个HOME目录;在/etc/group中为新用户增加一个入口项;在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人做为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件,新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录。在Linux中,/etc/group文件含有关于小组的信息,/etc/passwd中的每个GID在本文件中应当有相应的入口项,入口项中列出了小组名和小组中的用户。这样可方便地了解每个小组的用户,否则必须根据GID在/etc/passwd文件中从头至尾地寻找同组用户。/etc/group文件对小组的许可权限的控制并不是必要的,因为系统用UID,GID(取自/etc/passwd)决定文件存取权限,即使/etc/group文件不存在于系统中,具有相同的GID用户也可以小组的存取许可权限共享文件。小组就像登录用户一样可以有口令。如果/etc/group文件入口项的第二个域为非空,则将被认为是加密口令,newgrp命令将要求用户给出口令,然后将口令加密,再与该域的加密口令比较。给小组建立口令一般不是个好作法。第一,如果小组内共享文件,若有某人猜着小组口令,则该组的所有用户的文件就可能泄漏;其次,管理小组口令很费事,因为对于小组没有类似的passwd命令。可用/usr/lib/makekey生成一个口令写入/etc/group。以下情况必须建立新组:可能要增加新用户,该用户不属于任何一个现有的小组.;(2)有的用户可能时常需要独自为一个小组;(3)有的用户可能有一个SGID程序,需要独自为一个小组;(4)有时可能要安装运行SGID的软件系统,该软件系统需要建立一个新组。要增加一个新组,必须编辑该文件,为新组加一个入口项。由于用户登录时,系统从/etc/passwd文件中取GID,而不是从/etc/group中取GID,所以group文件和口令文件应当具有一致性。对于一个用户的小组,UID和GID应当是相同的。多用户小组的GID应当不同于任何用户的UID,一般为5位数,这样在查看/etc/passwd文件时,就可根据5位数据的GID识别多用户小组,这将减少增加新组,新用户时可能产生的混淆。(2).删除用户删除用户与加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项,并删除/etc/shadow中与用户相关的信息,然后删除用户的HOME目录和所有文件。rm-r/usr/loginname删除整个目录树。如果用户在/usr/spool/cron/crontabs中有crontab文件,也应当删除.(3).将用户移到另一个系统这是一个复杂的问题,不只是拷贝用户的文件和用户在/etc/passwd文件中的入口项。首先一个问题3是用户的UID和GID可能已经用于另一个系统,若是出现这种情况,必须给要移的用户分配另外的UID和GID,如果改变了用户的UID和GID,则必须搜索该用户的全部文件,将文件的原UID和GID改成新的UID和GID。用find命令可以完成这一修改:find.-userolduid-execchownnewuid{}\;find.-groupoldgid-execchgrpnewgid{}\;也许还要为用户移走其它一些文件:/usr/mail/user和/usr/spool/cron/crontabs/user。如果用户从一个不是本系统管理员的系统移来,则应对该用户的目录结构运行程序来检查。一个不安全系统的用户,可能有与该用户其它文件存在一起的SUID/SGID程序,而这个SUID/SGID程序属于另一个用户。在这种情况下,如果用cpio或tar命令将用户的目录结构拷贝到本系统,SUID/SGID程序也将会拷贝到本系统而没有任何警告信息。应当在允许用户使用新系统以前先删除这种文件的SUID/SGID许可。总之,始终坚持检查所移用户的文件总是更安全些。也可以用su命令进入用户的户头,再拷贝用户文件,这样文件的所有者就是该用户,而不是root。(4).用chroot()限制用户如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文件系统中其余部分的任何文件。这种限制方式比加限制的shell好得多。用户使用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷贝命令文件)。还应建立新的passwd文件,保留系统登录户头(为了使ls-l正确地报告与受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使破密程序的任何企图成为泡影。utmp文件是who所需要的,该文件含有系统中已登录用户的列表。新的/etc/profile文件也不是建链文件,以便受限制的用户可以执行不同的启动命令。/dev目录中的终端设备文件被链接到新的/dev目录下,因为命令who产生输出时要查看这些文件。在系统V及以后的版本中,login命令有chroot()的功能。如果口令文件中用户入口项的登录shell域(最后一个域)是*,login将调用chroot()把用户的根目录设置成为口令文件中用户入口项登录目录域指定的目录。然后再调用exec()执行login,新的login将在新子系统文件中执行该用户的登录.chroot()并不是把root封锁在一个子文件系统中,所以给受限制用户用的命令时应加以考虑,具有root的SUID许可的程序可能会给予用户root的能力。应当将这种可能减低到最小程度,交给用户使用的命令应当取自清除了SUID陷井的系统命令。链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时,链接到chroot目录结构(尤其是命令)的系统文件是很危险的。如果建立一个像这样的限制环境,应确保对安装到新的/bin的每条命令都做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果。为了使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件如:/tmp,/etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用户所登录的/dev中的tty文件以及/。有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令拷贝到加限制的子文件系统中,并放在为两条命令专建的目录
本文标题:LINUX的系统安全
链接地址:https://www.777doc.com/doc-1249901 .html