UNIX 操作系统安全检查列表
■限制知道root口令的人数
■使用强壮的密码
■三个月或者当有人离开公司是就更改一次密码
■使用普通用户登陆,用su取得root权限, 而不是以root身份登录
■设置 umask 为077 ,在需要时再改回022
■请使用全路径执行命令
■不要允许有非root用户可写的目录存在root的路径里
■确保root没有~/.rhosts文件
■确保root的cron job文件里没有执行属于其它用户或人人可写的文件
■修改/etc/securetty,去除终端ttyp0-ttyp9,使root只能从console或者使用ssh登陆。
■禁止root用户远程登录
linux下: -/etc/pam.d/login -auth required pam_securetty.so
其它多数系统: -/etc/default/login -CONSOLE=/dev/console
■自动帐号封锁-能够声明尝试登录失败的最大次数;一旦到达这个次数就封锁该帐号
■日期和时间限制-能够声明在一周或一天的什么时候可以使用一个用户的帐号;这是为了防御深更半夜的黑客
■自动登录退出-可以使长时间无反应的用户会话自动终止;这是有风险的,因为可能因一个合法的原因使一个会话显得不活跃
●密码策略
■密码长度的强制定义 -修改 /etc/login.defs -PASS_MIN_LEN 5
■为 PASS_MIN_LEN 8
■设置root登陆的timeout -/etc/profile: export TMOUT=7200
■用chage命令管理口令周期
chage -l username
[-m 最短周期] [-M 最长周期] [-I 口令到期到被锁定的天数]
[-E到期日期] [-W 口令到期之前开始警告的天数] username
●受限制的登录shell:
■编辑profile文件(vi /etc/profile),把这些行改成:
■HISTSIZE=20
●策略传播
●进行口令检查
●产生随机口令
●提前进行口令检查
●口令更换
3 UNIX文件系统安全
3.1 文件权限分类
■读:允许读文件和目录内容。
■写:允许修改、删除文件。
■执行:允许执行二进制程序和脚本
■目录粘着位:用户不能删除该目录下没有写权限的文件,尽管他对目录有写权限。
■SUID: 程序以所有者而不是执行者的身份执行。
■SGID(文件): 类似SUID,程序以所在组的权限运行。
3.2 文件和目录的访问对象
■文件所有者;
■文件所有组;
■其它人。
其中,文件权限的8进制表示。属主,组,其它分别以一个8进制位表示,其中: -r - 4 -w - 2 -x - 1
例子: "-rwxr-x---" 8进制表示为0750 0400 0200 0100 0040 0000 0010 +0000 ------------- 0750
文件权限命令
■chmod (改变权限)
■#chmod o+r file
■(用户(u)、分组(g)、其他(0))
■c h o w n(改变拥有权)
■#chown user1 file
■c h g r p(改变分组)
■#chgrp group1 file
3.3 umask值
当创建了一个新文件或目录时,它基于用户的权限屏蔽"umask"来确定缺省的权限设置。chmod命令用来声明要打开的权限,而umask命令用来指明要禁止的权限。
它用一个简单的三位数变元来声明在一个文件或目录被创建时应该被禁止的访问权限-或被屏蔽的。
umask主要在系统范围及个人的登录文件.login或.profile中建立。
3.3.1 文件权限
■应该设置root用户的umask为077,这使其它用户不能读写root新创建的文件。
■在多数系统中,u m a s k的缺省值是0 2 2。
3.3.2 附加的文件权限属性
■linux的ext2/ext3文件系统 -lsattr -chattr
■i 禁止修改
■#chattr +i files
■#chattr -i files
3.4 给口令文件和组文件设置不可改变位,
■[root@cnns]# chattr +i /etc/passwd
■[root@cnns]# chattr +i /etc/shadow
■[root@cnns]# chattr +i /etc/group
■[root@cnns]# chattr +i/etc/gshadow
3.5 SUID和SGID文件
■SUID表示"设置用户ID",SGID表示"设置组ID"。当用户执行一个SUID文件时,用户ID在程序运行过程中被置为文件拥有者的用户ID。如果文件属于root,那用户就成为超级用户。同样,当一个用户执行SGID文件时,用户的组被置为文件的组。
■Unix实际上有两种类型的用户ID。
■"real user ID"是在登录过程中建立的用户ID。 "effective user ID"是在登录后的会话过程中通过SUID和SGID位来修改。
■#find /-type f \ (-perm -4000 -o -perm -2000\) -ls
■这告诉find列出所有设置了SUID("4000")或SGID("2000")位的普通文件("f")。应该在每个本地系统中运行它。
■[root@kcn]# chmod a-s /usr/bin/chage
3.6 文件完整性
■确保操作系统文件,尤其可执行程序/bin,/sbin,/usr/bin/usr/sbin)不被修改。
■许多rootkit都要替换系统程序(如login,netstat,ps,ls等)来隐藏自己及安装后门
■一般通过计算文件校验码(如MD5码)的方式来检验文件完整性
■#md5sum --check bin.sum
■RPM检验和签名检查(linux)
■# rpm --verify timed -0.10-2
3.7 文件加密
Unix常用的加密算法有crypt(最早的加密工具)、DES(目前最常用的)、IDEA(国际数据加密算法)、RC4、Blowfish(简单高效的DES)、RSA。
PGP还可以用来加密本地文件。现在常用的Linux下的PGP工具为:pgpe(加密)、pgps(签名)、pgpv(确认/解密)、pgpk(管理密钥)
3.8 备份策略
3.8.1 备份策略包括
■第0天备份
■完全备份
■增量式备份
■特别备份
3.8.2 备份命令
■cp
■Tar(用于磁带机)
■Dump(把整个文件系统拷贝到备份介质上)
■-#dump 0f0 /dev/rst0 1500 /dev/sd0a
■把一个SCSI硬盘(/dev/rsd0a)以0级备份到磁带(/dev/rst0)。
■Restore(恢复整个文件系统或提取单个文件)
3.8.3 备份要注意的问题
■检验备份
■保护备份介质
■把备份磁带写保护
■定期把备份送到远离站点的地方
■要留神介质的限制