Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- UNIX系统管理员安全(2)
UNIX系统管理员安全(2)
4.作为root运行的程序 在UNIX系统中,有些程序由系统作为root进程运行.这些程序并不总是具有 SUID许可,因为其不少程序仅由root运行,系统管理员需要清楚这些程序做什么, 以及这些程序还将运行其它什么程序.
(1)启动系统 当某些UNIX系统(如SCO UNIX/XENIX)启动时,是以被称为单用户的方式运 行,在这种方式中普通用户不能登录,唯有的进程是init,swapper,以及一些由 系统管理员从控制台运行的进程.UNIX系统的单用户方式启动,使系统管理员 能在允许普通用户登录以前,先检查系统操作,确保系统一切正常,当系统处于 单用户方式时,控制台作为超级用户,命令揭示是“#“,有些UNIX系统不要确认 超级用户口令就认可控制台是root,给出#提示符.这就可能成为一个安全问题.
(2)init进程 UNIX系统总是以某种方式或称为某种级运行,系统有若干种运行级,这些 运行级由init进程控制. UNIX系统启动时以单用户方式运行,也叫1级或S级. 对于其他用户登录进入系统,UNIX有一种多用户运行方式,也叫2级. init进程控制系统运行级,它读入文件/etc/inittab,该文件详细地规定 了哪些进程在哪一级运行.当root敲入init n(数字),系统就进入n级.init读 该文件以确定终止哪些进程,启动哪些进程. 有效的运行级的数值是从0到6与s. 注意:由init建立的进程以UID为0运行(root)从/etc/inittab运行的程序 也作为root运行,所以系统管理员要确保自己知道/etc/inittab中的程序做什 么工作,确保这些程序以及这些程序所在的目录直到/和/etc/inittab除root 外无人可写.
(3)进入多用户 当UNIX系统进入多用户方式时,将寝化一系列事件,接着开始执行gettys, 允许其他用户登录进入系统.如果再看看/etc/inittab文件,会看到gettys定 义在运行级2,至少三个shell程序/etc/brc,/etc/bcheckrc,/etc/rc*也定义 在运行级2.这些程序都在gettys启动前运行. 这些shell程序作为root运行,也不能仅对root可写还应当检查shell程序 运行的命令,因为这些命令也将作为root运行.
(4)shutdown命令 用shutdown命令关系统,shutdown shell程序发送警告通知所有用户离开 系统,在“给定的期限时间“到了后,就终止进程,拆卸文件系统,进入单用户方 式或关机状态.一旦进入单用户方式,所有的gettys停止运行,用户再不能登录. 进入关机状态后可将系统关电. shutdown仅能由作为root登录的用户从系统控制台上运行.所以任何的 shutdown运行的命令仅能对root可写.
(5)系统V的cron程序 cron在UNIX系统是多用户方式时运行,根据规定的时间安排执行指定的命 令,每隔一分钟检查一次文件/usr/lib/crontab,寻找是否有应当运行的程序? 如果找到要运行的程序,就运行该程序,否则睡眠等待一分钟. 实际的/usr/lib/crontab用于根据全天的规则时间表运行程序,也可在夜 晚运行白天不愿运行怕降低其他用户速度的程序.通常由cron运行的程序是如 记帐,存文件这样的程序.cron一般在系统进入多用户后由/etc/rc启动,当 shutdown运行killall命令时便终止运行.由cron运行的程序作为root,所以应 当注意放什么程序在crontab中,还要确保/usr/lib/crontab和该表中列出的 任何程序对任何人不可写. 如果用户需要由cron执行一个程序,系统管理员可用su命令在crontab表 中建立一个入口,使用户的程序不能获得root的权限.
(6)系统V版本2之后的cron程序 在系统V版本2中,cron被修改成允许用户建立自己的crontab入口, /usr/lib/crontab文件不再存在,由目录/usr/spool/cron/crontabs中的文件 代替.这些文件的格式与crontab相同,但每个文件与系统中的一个用户对应, 并以某用户的名义由cron运行. 如果想限制能建立crontab的用户,可在文件/usr/lib/cron/cron.allow 文件中列出允许运行crontab命令的用户.任何未列于该文件的用户不能运行 crontab.反之,若更愿意列出不允许运行crontab命令的用户,则可将他们列入 /usr/lib/cron/cron.deny文件中,未列于该文件的其他用户将被允许建立 crontab. 注意:若两个文件都存在,系统将使用cron.allow,忽略cron.deny.如果两 个文件都不存在,则只有root可运行crontab.所以,若要允许系统中的所有用 户都可运行crontab命令,应当建立一个空的cron.deny文件,如果cron.allow 也存在,则删除该文件. 这个版本的cron命令的安全程度比前一个高,因为用户只能看自己的 crontab,系统管理员也不必担心其他用户的程序是否会作为root运行,由于允 许每个系统登录用户有自己的crontab,也简化了对程序必须由cron运行,但不 必作为root运行的系统程序的处理. 必须确保root的crontab文件仅对root可写,并且该文件所在的目录及所 有的父目录也仅对root可写.
(7)/etc/profile 每当用户(包括root在内)登录时,由shell执行/etc/profile文件,应确保 这个文件以及从这个文件运行的程序和命令都仅对root可写.
5./etc/passwd文件 /etc/passwd文件是UNIX安全的关键文件之一.该文件用于用户登录时校验 用户的口令,当然应当仅对root可写.文件中每行的一般格式为: LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL 每行的头两项是登录名和加密后的口令,后面的两个数是UID和GID,接着的 一项是系统管理员想写入的有关该用户的任何信息,最后两项是两个路径名: 一个是分配给用户的HOME目录,第二个是用户登录后将执行的shell(若为空格则 缺省为/bin/sh).
(1)口令时效 /etc/passwd文件的格式使系统管理员能要求用户定期地改变他们的口令. 在口令文件中可以看到,有些加密后的口令有逗号,逗号后有几个字符和一个 冒号.如: steve:xyDfccTrt180x,M.y8:0:0:admin:/:/bin/sh restrict:pomJk109Jky41,.1:0:0:admin:/:/bin/sh pat:xmotTVoyumjls:0:0:admin:/:/bin/sh 可以看到,steve的口令逗号后有4个字符,restrict有2个,pat没有逗号. 逗号后第一个字符是口令有效期的最大周数,第二个字符决定了用户再次 修改口信之前,原口令应使用的最小周数(这就防止了用户改了新口令后立刻 又改回成老口令).其余字符表明口令最新修改时间. 要能读懂口令中逗号后的信息,必须首先知道如何用passwd_esc计数,计 数的方法是: .=0 /=1 0-9=2-11 A-Z=12-37 a-z=38-63 系统管理员必须将前两个字符放进/etc/passwd文件,以要求用户定期的 修改口令,另外两个字符当用户修改口令时,由passwd命令填入. 注意:若想让用户修改口令,可在最后一次口令被修改时,放两个“.“,则下 一次用户登录时将被要求修改自己的口令. 有两种特殊情况: . 最大周数(第一个字符)小于最小周数(第二个字符),则不允许用户修改 口令,仅超级用户可以修改用户的口令. . 第一个字符和第二个字符都是“.“,这时用户下次登录时被要求修改口 令,修改口令后,passwd命令将“.“删除,此后再不会要求用户修改口令.
(2)UID和GID /etc/passwd中UID信息很重要,系统使用UID而不是登录名区别用户.一般 来说,用户的UID应当是独一无二的,其他用户不应当有相同的UID数值.根据惯 例,从0到99的UID保留用作系统用户的UID(root,bin,uucp等). 如果在/etc/passwd文件中有两个不同的入口项有相同的UID,则这两个用 户对相互的文件具有相同的存取权限.
6./etc/group文件 /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. 以下情况必须建立新组: (1)可能要增加新用户,该用户不属于任何一个现有的小组. (2)有的用户可能时常需要独自为一个小组. (3)有的用户可能有一个SGID程序,需要独自为一个小组. (4)有时可能要安装运行SGID的软件系统,该软件系统需要建立一个新组. 要增加一个新组,必须编辑该文件,为新组加一个入口项. 由于用户登录时,系统从/etc/passwd文件中取GID,而不是从/etc/group中 取GID,所以group文件和口令文件应当具有一致性.对于一个用户的小组,UID和 GID应当是相同的.多用户小组的GID应当不同于任何用户的UID,一般为5位数,这 样在查看/etc/passwd文件时,就可根据5位数据的GID识别多用户小组,这将减少 增加新组,新用户时可能产生的混淆.
发布人:Crystal 来自:中国超级linux联盟
linux汉化大全(二)
多台机器的系统时钟同步的解决方法
Linux内核即时入侵检测安全增强-后语
Linux系统安全与优化(系统安全软件)
用Jsp开发网上商城
linux上用户、用户组及私有用户组
Linux下的广播程序制作
Linux下C语言编程--时间概念
Linux下的入侵监测系统LIDS--六、LIDS细节
LINUX的系统内核空间的保护
Linux程式设计入门 - termios/keymap/terminal progra
使用Linux作硬盘克隆
我的 Win98+Win2K+Linux 装配方案
磁碟空间限额使用说明
《短笛的Linux办公平台》版本 0.1.1
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接