检查是否存在除Root之外UID为0的用户。
说明:因为UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0。需要检查是否存在除root之外UI为0的用户。
操作步骤:
[awk命令详细操作](awk命令查询)
awk -F: '($3 == 0) {print $1}' /etc/passwd
用户口令要求
说明:对于采用静态口令认证技术的设备,账一口令的生存期不长于90天。
操作步骤:
1、首先排除弱口令存在。
awk -F: '($2 == "") {print $1}' /etc/shadow #判断空口令用户是否存在
2、检查 /etc/login.defs文件参数
PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
用户口令强度要求
说明:对于采用静态口令认证技术的设备,口令长度至少8为,并拥有一定的复杂程度(数字、小写字母、大写字母和特殊符号四类中至少两类)。
操作步骤:
1、查看 /etc/pam.d/system-auth文件中密码模块配置信息。
2、替换默认 pam_cracklib.so参数配置,所替换内容为密码至少8位,包含一位大写字母,一位小写字母和一位数字。
password requistite pam_cracklib.so difok=3 minlen=8 ucredit=1 lcredit=-1 dcredit=1 #至少8位,包含一位大写字母,一位小写字母,一位数字。
用户锁定策略
说明:对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次,锁定该用户使用的账号。
操作步骤: /etc/pam.d/system-auth 文件中是否对pam_tally.so 的参数进行了正确的配置。
设置连续输入错误10次密码,账号锁定5分钟,编辑 /etc/pam.d/system-auth文件,添加策略。
auth required pam_tally.so onerr=fail deny=10 unlock_time=300
用户的umask安全配置
说明:在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
操作步骤:
more /etc/profile
more /etc/csh.login
more /etc/csh.cshrc
more/ etc/bashrc
检查是否包含umask值且umask=027
umask的值默认为022,则低于安全配置要求。
重要目录和文件的权限设置
操作步骤,查看重要目录和文件的权限设置情况
ls -l + 目录或文件
/etc
/etc/rc.d/init.d
/tmp
/etc/xinetd.d/rsync
/etc/passwd
/etc/shadow
/etc/group
/etc/security
/etc/services
/etc/rc*.d
重要目录执行仅root用户拥有 r-w-x 权限。
chmod -R 750 /etc/rc.d/init.d/*
查找已授权的SUID/SGID文件
操作步骤:执行下面的命令在当前路径下查找系统中所有的SUID和SGID文件
find / -type f -perm -04000 -o -perm -02000 -exec ls -la{}\;
经常性的对比suid sgid 文件列表,以便及时发现可疑的后门程序
若存在未授权的文件,则低于安全要求。
chmod u+s filename(suid)
chmod g+s filename(sgid)
检查任何人都有些权限的目录
操作步骤:在系统中定位任何人都有写权限的目录用下面的命令 若返回值为空则低于安全要求
for PART in 'awk'($3 == "ext2" ||$3 == "ext3")\
{print $2}' /etc/fstab';do
find $PART -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
Done
若返回值为空则低于安全要求
查找任何人都有写权限的文件
操作步骤:在系统中定位任何人都有些权限的文件 若返回值为空则低于安全要求
for PART in 'rep -v '# /etc/fxtab | awk '($6 !- "0"){print $2}';do
find %PART -xdev -type f\(-perm -0002 -a! -perm -1000\) -print
Done
syslog登陆事件记录
操作步骤:执行命令
more /etc/rsyslog.conf #查看参数authpriv值
#若没有对所有登陆事件记录则低于安全要求
syslog.conf的配置审核
配置专门的日志服务器,加强日志信息的异地同步备份
若未设置,则低于安全要求;
kern.warning;*.err;authpriv.none @loghost
*.info;mail.none;authpriv.none;cron.none @loghost
*.emerg @loghost
local7.* @loghost
设置history时间戳
在问题定位时,我们有时需要查看history命令记录,看是否有删除/移动文件、修改配置等误操作,为history命令添上时间记录,可便于分析、定位问题。默认如下:
vim ~/.bash_profile
export HISTTIMEFORMAT="%F %T “
export HISTTIMEFORMAT=“%F %T ‘whoami’"
系统资源类
1、登录超时
操作步骤:使用命令
vi /etc/profile
修改配置文件,添加“TMOUT=”行开头的注释,建议设置为“TMOUT=180”,即超时时间为3分钟。
返回值为空或值低于180,则低于安全要求
2、root远程登录限制
说明:对SSH服务进行安全检查
操作步骤:使用命令“cat /etc/ssh/sshd_config”查看配置文件
1.检查是否允许root直接登录
检查“PermitRootLogin ”的值是否为no
2.检查SSH使用的协议版本
检查“Protocol”的值
使用命令“vi /etc/ssh/sshd_config”编辑配置文件
1.不允许root直接登录
设置“PermitRootLogin ”的值为no
2.修改SSH使用的协议版本
设置“Protocol”的版本为2
3、远程连接的安全性配置
操作步骤:
find / -name .netrc #检查系统中是否有.netrc文件,
4、 更改SSH服务端口
vim /etc/ssh/sshd_config