【信息安全系列】RedHat Linux常用安全检查标准
2014-09-04 15:40
302 查看
一、系统服务类检查
1、检查项目:检查Linux主机是否开启了不必要的服务等;
【检查要点】 明确不建议开启的服务列表。对需要特殊说明的服务,单独列出检查要求,如R系列服务。检查主机是否关闭SENDMAIL服务。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:chkconfig --list,建议禁止以下服务: shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd 参考配置操作 可以通过2种方式修改服务: 1. chkconfig指令: 通过chkconfig --list 查看系统所有的系统服务是关闭还是打开。 通过chkconfig iptables on 设置随机启动服务 通过chkconfig iptables off 设置不随机启动服务 2 通过setup启动图形设置工具来设置要不要随机启动服务 注意:这样修改需要重启机器后才能生效。如果只是这次需要某个服务,但是下次开机后不需要,可以通过service 服务 start 来手工启动该服务。 3、检查操作: chkconfig --list sendmail 显示sendmail服务是否在系统启动时启动 【判断条件】 符合:shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd 、sendmail被禁用,且不能关闭的服务提交说明材料 不符合:shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd 、sendmail服务存在未禁用情况,且不能关闭的服务未提交说明材料 【检查权重】 1分 |
2、检查项目:检查是否关闭R系列服务(rlogin、rsh、rexec等)
【检查要点】 检查方法同上。 备注:如果某项服务不能关闭,需要说明不能关闭的原因。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: chkconfig --list rlogin chkconfig --list rsh chkconfig --list rexec 检查rlogin、rsh、rexec是否启动。 【判断条件】 符合:R系列服务(rlogin、rsh、rexec等)未启用 不符合:R系列服务(rlogin、rsh、rexec等)已启用 说明:HA设备、RAC数据库若不可关闭,需说明原因。 【检查权重】 1分 |
1、检查用户口令策略是否符合安全要求
【检查要点】 最短密码长度8个字符,不能复用近期使用过的5个密码,启用本机组策略中密码必须符合复杂性要求的策略。即密码至少包含以下四种类别的字符中的三种: 英语大写字母 A, B, C, … Z 英语小写字母 a, b, c, … z 西方阿拉伯数字 0, 1, 2, … 9 非字母数字字符,如标点符号,@, #, $, %, &, *等 对于于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 1、检查口令策略的配置长度、复杂度安全要求 执行:cat /etc/pam.d/passwd命令 输出结果:检查类似配置 password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 //代表最短密码长度为8,其中至少包含一个大写字母,一个小写字母,一个数字和一个字符 2、检查操作: 执行:cat /etc/login.defs |grep PASS命令,查看口令配置文件,查看是否设置以下信息 输出结果:PASS_MAX_DAYS 90 //代表密码最大有效期限为90天 PASS_WARN_AGE 7 //密码过期之前7天内发出报警信息 检查操作: 3、检查不能复用的密码个数 执行cat /etc/pam.d/passwd命令, 输出结果:查看以下内容: password required pam_unix.so remember=5 use_authtok md5 shadow 【判断条件】 符合: /etc/pam.d/passwd配置password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 password required pam_unix.so remember=5 use_authtok md5 shadow //该值必须大于等于5 /etc/login.defs配置 PASS_MAX_DAYS小于等于90 不符合:未按要求配置密码复杂度策略 【检查权重】 1分 |
【检查要点】 检查FTP是否禁止匿名登录。 匿名用户登录ftp系统后,如果当前目录权限划分不对,可导致破坏数据。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:grep anonymous /etc/ftpusers 输出结果:anonymous_enable=NO 如使用vsftpd,则需要增加执行下面内容: 执行:grep anonymous /etc/vsftpd/vsftpd.conf 输出结果:anonymous_enable=NO (备注:当anonymous_enable=NO时,代表禁止匿名登录) 【判断条件】 符合:使用anonymous用户登录, 输入密码:test@test.cn,登录失败 不符合:使用anonymous用户登录, 输入密码:test@test.cn,登录成功 【检查权重】 1分 |
【检查要点】 如果采用了默认的SNMP配置,那么,SNMP的通讯字符串将是默认的public(只读)和private(可写),应对其进行更改。 【检查对象】 RedHat Linux系统 【检查方法】 1、检查SNMP是否开启,若未开启,则符合要求。若开启,执行第2步。 检查操作: chkconfig --list snmpd 显示snmpd服务是否启动,所有运行级别下均为关闭,则符合要求。 2、若SNMP开启,检查是否使用默认字符串,如未修改,则不符合要求。 检查操作: 执行:cat /etc/snmp/snmpd.conf 输出结果:检查SNMP的通讯字符串rocommunity或rwcommunity是否是默认的public(只读)和private(可写) (备注:应更改默认团体名public和private,才能满足安全要求) 【判断条件】 符合:未开启SNMP或连接字符串未设置为public、private 不符合:连接字符串设置为public、private 【检查权重】 1分 |
【检查要点】 检查/etc/passwd、/etc/shadow中的用户密码是否存在弱密码。 【检查对象】 RedHat Linux系统 【检查方法】 对于未开启或临时关闭帐号锁定策略的主机: 使用口令远程暴力破解工具,加载常见弱口令字典进行口令猜解 对于开启帐号锁定策略的主机: 使用如下命令获取用户名及密码,并使用john工具离线测试是否存在用户名与密码相同的极弱密码。 执行命令,并把结果保存为文件testpass: cat /etc/shadow 在检察人员使用的终端设备上,离线使用john测试: john --single testpass 备注:漏洞扫描工具可自动检测root、oracle等常见用户的弱密码。 【判断条件】 符合:未发现弱口令 不符合:发现弱口令 【检查权重】 1分 |
1、检查Unix系统是否启用信任主机方式,配置文件是否配置妥当
【检查要点】 检查root,数据库管理账号目录下的.rhosts、hosts.equiv 【检查对象】 RedHat Linux系统 【检查方法】 执行命令:cat $HOME/.rhosts或者cat /etc/hosts.equiv 结果输出:(不能设置++,要配置具体的IP地址或主机名) 【判断条件】 符合:/.rhosts、/etc/hosts.equiv不存在++、只配置了具体IP地址或主机名 不符合:/.rhosts、/etc/hosts.equiv存在++ 【检查权重】 1分 |
【检查要点】 远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。检查是否已限制root账号以telnet和ssh方式远程登录。 【检查对象】 RedHat Linux系统 【检查方法】 执行命令:chkconfig --list 结果输出: 检查输出结果中是否包含telnet服务。 【判断条件】 符合:telnet被停用、只可使用ssh远程维护 不符合:telnet启用或可使用telnet远程维护 【检查权重】 1分 |
四、日志审计
1、检查系统日志设置
【检查要点】 设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功、登录时间、以及远程登录时、用户使用的IP地址 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:cat /etc/login.defs命令, 输出结果:查看以下内容 LASTLOG_ENAB yes 执行:last命令查看登录日志 输出结果:查看类似以下信息 root :0/10.164.10 10.164.104.73 Fri Feb 20 14:29 - 16:53 (02:24) root 10.164.104.7 10.164.104.73 Fri Feb 20 14:29 - 16:53 (02:23) root pts/3 Fri Feb 20 14:21 - 14:28 (00:06) rokay pts/3 10.164.104.73 Fri Feb 20 14:16 - 14:19 【判断条件】 符合:LASTLOG_ENAB yes 不符合:LASTLOG_ENAB未配置或为no 【检查权重】 1分 |
【检查要点】 设备应配置日志功能,记录对与设备相关的安全事件。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:cat /etc/syslog.conf 输出结果:查看以下内容 *.err /var/log/errors authpriv.info /var/log/authpriv_info *.info /var/log/info auth.none /var/log/auth_none 执行以下命令: #more /var/log/errors #more /var/log/authpriv_info #more /var/log/info #more /var/log/auth_none 输出结果:查看/var/log/errors,/var/log/messages,查看安全事件审计情况 (备注:有返回结果则表示安全事件审计正常,符合安全要求) 【判断条件】 符合: 执行:cat /etc/syslog.conf 输出结果:查看以下内容 *.err /var/log/errors authpriv.info /var/log/authpriv_info *.info /var/log/info auth.none /var/log/auth_none 执行以下命令: #more /var/log/errors #more /var/log/authpriv_info #more /var/log/info #more /var/log/auth_none并能查看到日志信息 不符合: 未配置syslog策略或不能查看到日志信息 【检查权重】 1分 |
1、检查是否存在无用帐号、账号组
【检查要点】 应删除或锁定与设备运行、维护等工作无关的账号。包括:Linux中的系统自带的默认帐号;各种测试帐号。 备注:如果这些帐号已被设置密码,需管理员提供设置密码的原因。 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:cat /etc/shadow,确认是否存在与业务无关的账号 建议:锁定的用户:Adm、lp、sync、shutdown、halt、news、uucp、operator、games 【判断条件】 符合:/etc/shadow中Adm、lp、sync、shutdown、halt、news、uucp、operator、games帐号密码字段为LK等锁定状态 不符合:/etc/shadow中Adm、lp、sync、shutdown、halt、news、uucp、operator、games帐号配置了密码 【检查权重】 1分 |
【检查要点】 passwd、shadow、group等文件权限 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:ls -la /etc/passwd 输出结果:–rw-r—r— ****** 执行:ls -la /etc/group 输出结果:–rw-r—r— ****** 执行:ls -la /etc/shadow 输出结果:–r-------- ****** (备注:以下配置符合安全要求 /etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r— /etc/group 必须所有用户都可读,root用户可写 –rw-r—r— /etc/shadow 只有root可读 –r--------) 【判断条件】 符合: /etc/passwd –rw-r—r— /etc/group –rw-r—r— /etc/shadow –r-------- 不符合: 3个文件权限未按上述要求配置 【检查权重】 1分 |
【检查要点】 分别检查telnet、SSH是否可以远程登录.限制具备超级管理员权限的用户远程登录 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 1、查看是否已限制root账号telnet登录: 执行:cat /etc/pam.d/login 输出结果:确定以下内容未被注释: auth required pam_securetty.so 执行:cat /etc/securetty 输出结果:确定以下内容已被注释: pts/1 pts/2 ......... Ptsn (备注:满足以上配置则符合安全要求,代表禁止root用户以ssh方式远程登录) 2、查看是否已限制root账号SSH登录: 执行:cat /etc/ssh/sshd_config 输出结果:查看以下内容: PermitRootLogin no (备注:PermitRootLogin no符合安全要求,代表禁止root用户以ssh方式远程登录) 【判断条件】 符合:telnet被停用、只可使用ssh远程维护且root用户不能直接登录 不符合:telnet启用或可使用telnet远程维护或root用户可直接登录 【检查权重】 1分 |
【检查要点】 帐号与口令-检查是否存在除root之外UID为0的用户,不允许多个uid=0账户存在。 【检查对象】 RedHat Linux系统 【检查方法】 检测操作步骤: 执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd 基线符合性判定依据: 返回值包括“root”以外的条目,则低于安全要求; 备注: 补充操作说明 UID为0的任何用户都拥有系统的最高特权,保证只有root为UID为0的账号 【判断条件】 符合:uid=0用户只有root 不符合:除root外还有其他帐户uid=0 【检查权重】 1分 |
【检查要点】 帐号与口令-root用户环境变量的安全性 【检查对象】 RedHat Linux系统 【检查方法】 执行:echo $PATH | egrep '(^|:)(\.|:|$)',检查是否包含父目录, 执行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls,检查是否包含组目录权限为777的目录 【判断条件】 符合:返回值为空 不符合:返回值不为空 【检查权重】 1分 |
1、检查Linux用户umask安全值
【检查要点】 帐号与口令-用户的umask安全配置 【检查对象】 RedHat Linux系统 【检查方法】 检测操作步骤: 执行:more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc检查是否包含umask值且umask=077 基线符合性判定依据: umask值是默认的,则低于安全要求 备注: 补充操作说明 建议设置用户的默认umask=027 【判断条件】 符合: more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc的umask值且umask=077 不符合:umask未配置为077 【检查权重】 1分 |
【检查要点】 文件系统-检查任何人都有写权限的目录 【检查对象】 RedHat Linux系统 【检查方法】 检测操作步骤: 在系统中定位任何人都有写权限的目录用下面的命令: 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 基线符合性判定依据: 若返回值非空,则低于安全要求; 【判断条件】 符合:返回值为空 不符合:返回值不为空 【检查权重】 1分 |
【检查要点】 文件系统-查找任何人都有写权限的文件 【检查对象】 RedHat Linux系统 【检查方法】 检测操作步骤 在系统中定位任何人都有写权限的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print Done 基线符合性判定依据 若返回值非空,则低于安全要求; 备注 需要手工检查。 【判断条件】 符合:返回值为空 不符合:返回值不为空 【检查权重】 1分 |
【检查要点】 检查是否只允许协议2 【检查对象】 RedHat Linux系统 【检查方法】 检查操作: 执行:grep Protocol /etc/ssh/sshd_config 输出结果:“Protocol 2” (备注:若为“Protocol 2”则符合安全要求。) 备注:如果Protocol行被注释,利用SSH登录工具(如SecureCRT)登录,如果允许协议1,则不符合要求。 【判断条件】 符合:Protocol 2 不符合:Protocol 2不存在或被注释 【检查权重】 1分 |
【检查要点】 在Linux系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统自动注销。 【检查对象】 RedHat Linux系统 【检查方法】 通用策略: 可根据实际要求设置超时退出时间,一般情况下设置为180秒 风险说明: 设置shell会话超时退出时间后,用户在本次会话中没有用nohup启动的用户进程可能会随会话自动退出。 检查操作: 执行:cat /etc/profile命令, 输出结果:查看以下内容 TMOUT=180 export TMOUT (备注:查看TMOUT是否被设置,有设置则符合安全要求,一般将超时时间设置为180秒) 【判断条件】 符合:TIMEOUT=180 不符合:TIMEOUT未设置或大于180 【检查权重】 1分 |
【检查要点】 系统文件-系统core dump状态 【检查对象】 RedHat Linux系统 【检查方法】 检测操作步骤 执行:more /etc/security/limits.conf 检查是否包含下列项: * soft core 0 * hard core 0 基线符合性判定依据 若不存在,则低于安全要求 备注 补充操作说明 core dump中可能包括系统信息,易被入侵者利用,建议关闭 【判断条件】 符合: 包含* soft core 0 * hard core 0 不符合:未包含 【检查权重】 1分 |
【检查要点】 如果网络中存在信任的NTP服务器,应该配置系统使用NTP服务保持时间同步。 【检查对象】 RedHat Linux系统 【检查方法】 查看ntp 的配置文件:#cat /etc/inet/ntp.conf 查看xntpd进程:#ps –elf|grep ntp 【判断条件】 符合:ntp进程运行、/etc/inet/ntp.conf中配置时间服务器,且主机时间正确 不符合:ntp进程未运行或/etc/inet/ntp.conf中未配置时间服务器或主机时间不正确 【检查权重】 1分 |
1、检查补丁更新情况
【检查要点】 检查系统的详细版本号 【检查对象】 RedHat Linux系统 【检查方法】 版本查看方法: cat /etc/redhat-release 【判断条件】 该项仅作为调研项 【检查权重】 1分 |
相关文章推荐
- 【信息安全系列】RedHat Linux常用安全检查标准
- 浅谈信息安全等级保护与ISO27000系列标准的异同
- 国家信息系统安全技术系列标准解读(二)
- 常用的信息安全风险评估自动化工具介绍
- 【信息安全】职业发展之惑系列之二 --- 怎样的心态才有助于职业发展
- 转载 国际地理信息标准ISO 19100 系列
- 针对云安全从业者的指南系列五:安全的身份和交易信息
- 信息安全国内测评认证标准
- 信息安全:标准
- 如何保证企业信息安全系列之-企业物理安全保障精要
- 如何保证企业信息安全系列之-企业管理安全保障精要 推荐
- 信息安全等级保护相关标准体系(合集)
- ASP.NET开发实践系列课程之Web应用的安全攻防之垃圾信息群发(SPAM)
- 如何保证企业信息安全系列之-企业系统层安全保障精要 推荐
- 信息安全方针、标准、指导方针、流程的关系
- 转载和积累系列 - Linux常用信息显示命令
- 工业控制信息安全标准介绍