unix系统:UNIX系统安全(一)




  本文从用户角度讨论UNIX系统阐述口令文件保护目录保护 和用户有关某些特殊特性和使用crypt命令加密并给出些重要忠告以帮助用户保护自己户头安全
  
  1.口令安全
  UNIX系统中/etc/passwd文件含有全部系统需要知道有关每个用户信息(加密后口令也可能存于/etc/shadow文件中).
  /etc/passwd中包含有用户登录名经过加密口令用户号用户组号用户注释用户主目录和用户所用shell 其中用户号(UID)和用户组号(GID)用于UNIX系统唯地标识用户和同组用户及用户访问权限
  /etc/passwd中存放加密口令用于用户登录时输入口令经计算后相比较,符合则允许登录,否则拒绝用户登录 用户可用passwd命令修改自己口令不能直接修改/etc/passwd中口令部份
  个好口令应当至少有6个长,不要取用个人信息(如生日,名字,反向拼写登录名,房间中可见东西), 普通英语单词也不好(可用字典攻击法),口令中最好有些非字母(如数字,标点符号,控制等),还要好记些,不能写在纸上或计算机中文件中, 选择口令个好思路方法是将两个不相关词用个数字或控制相连,并截断为8个.当然,如果你能记住8位乱码自然更好.
  不应使用同个口令在区别机器中使用 特别是在区别级别用户上使用同口令,会引起全盘崩溃.用户应定期改变口令,至少6个月要改变次,系统管理员可以强制用户定期做口令修改.
  为防止眼明手快人窃取口令,在输入口令时应确认无人在身边.
  
  2.文件许可权
  文件属性决定了文件被访问权限,即谁能存取或执行该文件 用ls -l可以列出详细文件信息,如:
  -rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin包括了文件许可,文件联结数,文件所有者名,文件相关组名,文件长度,上次存取日期和文件名.
  其中文件许可分为 4部分:
  -:表示文件类型.
  第个rwx:表示文件属主访问权限.
  第 2个rwx:表示文件同组用户访问权限.
  第 3个rwx:表示其他用户访问权限.
  若某种许可被限制则相应字母换为-.
  在许可权限执行许可位置上 可能是其它字母,s,S,t,T.s和 S可出现在所有者和同组用户许可模式位置上 和特殊许可有关后面将要讨论 t和T可出现在其他用户许可模式位置上和"粘贴位"有关而和安全无关小写字母(x,s,t)表示执行许可为允许,负号或大写字母(-,S或T)表示执行许可为不允许.
  改变许可方式可使用chmod命令,并以新许可方式和该文件名为参数.新许可方式以3位8进制数给出,r为4,w为2,x为1.如rwxr-xr--为754.
  chmod也有其它方式参数可直接对某组参数修改在此不再多说详见UNIX系统联机手册
  文件许可权可用于防止偶然性地重写或删除个重要文件(即使是属主自己)!
  改变文件属主和组名可用chown和chgrp,但修改后原属主和组员就无法修改回来了
  
  3.目录许可
  在UNIX系统中,目录也是个文件,用ls -l列出时, 目录文件属性前面带个d,目录许可也类似于文件许可,用ls列目录要有读许可, 在目录中增删文件要有写许可,进入目录或将该目录作路径分量时要有执行许可, 故要使用任个文件,必须有该文件及找到该文件路径上所有目录分量相应许可 .仅当要打开个文件时,文件许可才开始起作用,而rm,mv只要有目录搜索和写许可,不需文件许可,这点应注意.
  
  4.umask命令
  umask设置用户文件和目录文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件存取许可.umask命令和chmod命令作用正好相反,它告诉系统在创建文件时不给予什么存取许可.
  
  5.设置用户ID和同组用户ID许可用户ID许可(SUID)设置和同组用户ID许可(SGID)可给予可执行目标文件(只有可执行文件才有意义) 当个进程执行时就被赋于4个编号,以标识该进程隶属于谁,分别为实际和有效UID,实际和有效GID.有效UID和GID般和实际UID和GID相同,有效UID和GID用于系统确定该进程对于文件存取许可.而设置可执行文件SUID许可将改变上述情况,当设置了SUID时,进程有效UID为该可执行文件所有者有效UID,而不是执行该用户有效UID,因此,由该创建都有和该所有者相同存取许可. 这样,所有者将可通过控制在有限范围内向用户发表不允许被公众访问信息.同样,SGID是设置有效GID.用chmod u+s 文件名和chmod u-s文件名来设置和取消SUID设置. 用chmod g+s 文件名和chmod g-s文件名来设置和取消SGID设置当文件设置了SUID和SGID后chown和chgrp命令将全部取消这些许可.
  
  6.cp mv ln和cpio命令
  cp拷贝文件时,若目文件不存在则将同时拷贝源文件存取许可, 包括SUID和SGID许可.新拷贝文件属拷贝用户所有,故拷贝另人文件时应小心,不要被其他用户SUID破坏自己文件安全. mv移文件时,新移文件存取许可和原文件相同,mv仅改变文件名.只要用户有目录写和搜索许可,就可移走该目录中某人SUID且不改变其存取许可. 若目录许可设置不正确,则用户SUID可被移到个他不能修改和删除目录中, 将出现安全漏洞.
  ln为现有文件建立个链,即建立个引用同文件新名字. 如目文件已经存在,则该文件被删除而代的以新链,或存在文件不允许用户写它,则请求用户确认是否删除该文件,只允许在同文件系统内建链.若要删除个SUID文件,就要确认文件链接数,只有个链才能确保该文件被删除.若SUID文件已有多个链,种思路方法是改变其存取许可方式, 将同时修改所有链存取许可,也可以chmod 000 文件名,不仅取消了文件SUID和SGID许可,而且也取消了文件全部链.要想找到谁和自己SUID建立了链,不要立刻删除该,系统管理员可用ncheck命令找到该其它链. cpio命令用于将目录结构拷贝到个普通文件中,而后可再用cpio命令将该普通文件转成目录结构.用-i选项时,cpio从标准输入设备读文件和目录名表,并将其内容按档案格式拷贝到标准输出设备,使用-o选项时, cpio从标准输入设备读取先已建好档案,重建目录结构.cpio命令常用以下命令做完整目录系统档案:
  find fromdir -pr|cpio -o > archive
  根据档案文件重建个目录结构命令为:
  cpio -id < archive
  cpio安全约定如下:
  (1)档案文件存放每个文件信息,包括文件所有者,小组用户, 最后修改时间最后存取时间,文件存取许可方式.
  *根据档案建立文件保持存放于档案中存取许可方式.
  *从档案中提取每个文件所有者和小组用户设置给运行 cpio -i命令用户,而不是设置给档案中指出所有者和小组用户.
  *当运行cpio -i命令用户是root时,被建立文件所有者和小组用户是档案文件所指出.
  *档案中SUID/SGID文件被重建时,保持SUID和SGID许可, 如果重建文件用户不是root,SUID/SGID许可是档案文件指出用户/小组许可.
  (2)现存文件和cpio档案中文件同名时,若现存文件比档案中文件更新,这些文件将不被重写.
  (3)如果用修改选项U,则同名现存文件将被重写. 可能会发生件很奇怪事:如被重写文件原和另个文件建了链,文件被重写后链并不断开,换言的,该文件链将保持,因此,该文件所有链实际指向从档案中提取出来文件,运行cpio无条件地重写现存文件以及改变链指向.
  (4)cpio档案中可含全路径名或父目录名给出文件.
  
  7.su和grp命令
  (1)su命令:可不必注销户头而将另用户又登录进入系统,作为另用户工作它将启动shell并将有效和实际UID和GID设置给另用户. 因此必须严格将root口令保密.
  (2)grp命令:和su相似,用于修改当前所处组名.
  
  8.文件加密
  crypt命令可提供给用户以加密文件, 使用个关键词将标准输入信息编码为不可读杂乱串,送到标准输出设备.再次使用此命令,用同关键词作用于加密后文件,可恢复文件内容. 般来说,在文件加密后,应删除原始文件,只留下加密后版本,且不能忘记加密关键词.在vi中般都有加密功能用vi -x命令可编辑加密后文件. 有关加密关键词选取规则和口令选取规则相同. 由于crypt可能被做成特洛依木马,故不宜用口令做为关键词.最好在加密前用pack或compress命令对文件进行压缩后再加密.
  
  9.其它安全问题
  (1)用户.profile文件
  由于用户HOME目录下.profile文件在用户登录时就被执行.若该文件对其他人是可写 则系统任何用户都能修改此文件,使其按自己要求工作.这样可能使得其他用户具有该用户相同权限.
  (2)ls -a
  此命令用于列出当前目录中全部文件,包括文件名以.开头文件,查看所有文件存取许可方式和文件所有者,任何不属于自己但存在于自己目录中文件都应怀疑和追究.
  (3).exrc文件
  为编辑化文件,使用编辑文件后,首先查找$HOME/.exrc文件和./.exrc文件,若该文件是在$HOME目录中找到, 则可像.profile样控制它存取方式,若在个自己不能控制目录中,运行编辑,则可能运行其他人.exrc文件, 或许该.exrc文件存在那里正是为了损害他人文件安全.为了保证所编辑文件安全,最好不要在不属于自己或其他人可写目录中运行任何编辑.
  (4)暂存文件和目录
  在UNIX系统中暂存目录为/tmp和/usr/tmp,对于员和许多系统命令都使用它们,如果用这些目录存放暂存文件,别用户可能会破坏这些文件.使用暂存文件最好将文件屏蔽值定义为007, 但最保险思路方法是建立自己暂存文件和目录:$HOME/tmp,不要将重要文件存放于公共
Tags:  unix系统安全 unix系统安装 unix系统

延伸阅读

最新评论

发表评论