口令锁定策略
威胁等级:Low
规则描述
设置口令认证失败后的锁定策略
审计描述
检查配置文件的/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有
auth required pam_faillock.so preauth audit silent deny = 5 unlock_time = 180
auth [ success= 1 default = bad] pam_unix.so
auth [ default= die] pam_faillock.so authfail audit deny = 5 unlock_time = 180
auth sufficient pam_faillock.so authsucc audit deny = 5 unlock_time = 180
检测用例信息
检查配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有以下配置auth required pam_faillock.so preauth audit silent deny = 5 unlock_time = 180 : grep '^\s*auth' /etc/pam.d/password-auth /etc/pam.d/system-auth | grep pam_faillock.so | grep "preauth" | grep "audit" | grep "silent" | egrep "deny=[0-5]" | egrep "unlock_time=([1-9][0-9]{3,}|[2-9][0-9][0-9]|1[8-9][0-9])"
两个文件都配置auth required pam_faillock.so preauth audit silent deny = 5 unlock_time = 180
检查配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有以下配置auth [ success= 1 default = bad] pam_unix.so: grep '^\s*auth' /etc/pam.d/password-auth /etc/pam.d/system-auth | grep pam_unix.so | egrep "success=1\s+default=bad"
两个文件都配置auth [ success= 1 default = bad] pam_unix.so
检查配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有以下配置auth [ default= die] pam_faillock.so authfail audit deny = 5 unlock_time = 180 : grep '^\s*auth' /etc/pam.d/password-auth /etc/pam.d/system-auth | grep pam_faillock.so | egrep "default=die" | grep "authfail" | grep "audit" | egrep "deny=[0-5]" | egrep "unlock_time=([1-9][0-9]{3,}|[2-9][0-9][0-9]|1[8-9][0-9])"
两个文件都配置auth [ default= die] pam_faillock.so authfail audit deny = 5 unlock_time = 180
检查配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有以下配置auth sufficient pam_faillock.so authsucc audit deny = 5 unlock_time = 180 : grep '^\s*auth' /etc/pam.d/password-auth /etc/pam.d/system-auth | grep pam_faillock.so | grep "sufficient" | grep "authsucc" | grep "audit" | egrep "deny=[0-5]" | egrep "unlock_time=([1-9][0-9]{3,}|[2-9][0-9][0-9]|1[8-9][0-9])"
两个文件都配置auth sufficient pam_faillock.so authsucc audit deny = 5 unlock_time = 180
修改建议
在配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth中添加
auth required pam_faillock.so preauth audit silent deny = 5 unlock_time = 180
auth [ success= 1 default = bad] pam_unix.so
auth [ default= die] pam_faillock.so authfail audit deny = 5 unlock_time = 180
auth sufficient pam_faillock.so authsucc audit deny = 5 unlock_time = 180
口令生存期
威胁等级:High
规则描述
该设置确定在系统要求用户更改某个密码之前可以使用改口令的期限及口令过期提前告警时间(以天为单位),此策略使得攻击者用来破解用户密码以及访问网络资源的时间受到限制
审计描述
检查配置文件/etc/login.defs的选项:应设置PASS_MAX_DAYS的值大于等于10且小于等于90,PASS_MIN_DAYS的值为10, PASS_WARN_AGE( 口令过期提前时间) 的值为7,同时还要检查文件/etc/shadow中有口令且可登录用户(root用户除外)的口令保持有效的最大天数为大于等于10且小于等于90,两次修改口令之间所需的最小天数为10,口令失效告警时间为7。
检测用例信息
检查配置文件/etc/login.defs的PASS_MAX_DAYS参数:egrep -v "[[:space:]]*#" /etc/login.defs 2 > /dev/null | grep PASS_MAX_DAYS
PASS_MAX_DAYS 90 ( 10 -90)
PASS_MAX_DAYS 99999
检查配置文件/etc/login.defs的PASS_MIN_DAYS参数:egrep -v "[[:space:]]*#" /etc/login.defs 2 > /dev/null | grep PASS_MIN_DAYS
PASS_MIN_DAYS 10
PASS_MIN_DAYS 0
修改建议
设置配置文件/etc/login.defs的选项:PASS_MAX_DAYS 90 ( 10 ~90) , PASS_MIN_DAYS 10 , PASS_WARN_AGE 7 ,同时对已有用户还需要修改/etc/shadow文件中有密码且可登录用户(root用户除外)的口令保持有效的最大天数为大于等于10且小于等于90,两次修改口令之间所需的最小天数为10,口令失效告警时间为7。
口令复杂度
威胁等级:High
规则描述
该设置确定用户账户口令包含的最少字符数
审计描述
执行命令:cat /etc/pam.d/password-auth /etc/pam.d/system-auth | grep -v '^\s*#' | grep password | grep pam_pwquality.so,检查是否存在以下内容:password requisite pam_pwquality.so try_first_pass retry = 3 minlen = 8 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1
执行命令:cat /etc/security/pwquality.conf,检查是否存在以下内容:
minlen = 8
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
检测用例信息
检查/etc/pam.d/password-auth文件配置是否符合要求
文件/etc/pam.d/password-auth存在配置:
password requisite pam_pwquality.so try_first_pass retry = 3 minlen = 8 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1
检查/etc/pam.d/system-auth文件配置是否符合要求
文件/etc/pam.d/system-auth存在配置:
password requisite pam_pwquality.so try_first_pass retry = 3 minlen = 8 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1
检查/etc/security/pwquality.conf文件配置是否符合要求
文件/etc/security/pwquality.conf存在配置:
minlen = 8
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
修改建议
编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth文件,分别修改包含minlen的pam_pwquality.so模块如下:
password requisite pam_pwquality.so try_first_pass retry = 3 minlen = 8 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1
或编辑/etc/security/pwquality.conf文件,修改以下内容:
minlen = 8
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
备注:当配置文件/etc/pam.d/password-auth和/etc/pam.d/system-auth未配置minlen、dcredit、ucredit、ocredit、lcredit时,/etc/security/pwquality.conf文件设置生效
删除无关账号
威胁等级:Low
规则描述
删除无关账号
审计描述
检查/etc/shadow文件,确认是否有以下用户( adm| lp| sync | halt | news| nfsnobody| mail| uucp| operator| games| gopher| ftp | nobody| nobody4| noaccess| listen| webservd| rpm | dbus| avahi| mailnull| smmsp| nscd| vcsa| rpc| rpcuser| nfs| sshd| pcap| ntp| haldaemon| distcache| apache| webalizer| squid| xfs| gdm| sabayon| named) ,若有则检查文件中是否存在系统中未锁定的无关用户(用户密码字段列不是以*或者! 开头)和需要锁定和删除的shell域设置的用户(用户shell域不是/bin/false或/sbin/nologin),均不存在则pass。
检测用例信息
检查/etc/passwd文件中是否存在需要锁定和删除的shell域设置的用户:egrep "^(adm|lp|sync|halt|news|nfsnobody|mail|uucp|operator|games|gopher|ftp|nobody|nobody4|noaccess|listen|webservd|rpm|dbus|avahi|mailnull|smmsp|nscd|vcsa|rpc|rpcuser|nfs|sshd|pcap|ntp|haldaemon|distcache|apache|webalizer|squid|xfs|gdm|sabayon|named):" /etc/passwd 2 > /dev/null| awk -F':' '($7 != "/bin/false" && $7 != "/sbin/nologin") {print $1":"$7}'
不存在需要锁定和删除的shell域设置的用户
sync:/bin/sync
halt:/sbin/halt
修改建议
删掉不符规范的用户,执行:userdel username。或者编辑/etc/passwd文件,修改用户的密码字段和shell域。
设置账户组
威胁等级:Low
规则描述
系统中存在用户自定义的组账号
审计描述
查看文件/etc/login.defs文件,确认文件中变量GID_MIN和GID_MAX的值,并在/etc/passwd中确认是否存在用户组gid>= GID_MIN且<= GID_MAX的用户,若存在则pass
检测用例信息
查看文件/etc/login.defs文件,确认文件中变量GID_MIN和GID_MAX的值,并在/etc/passwd中确认是否存在用户gid>= GID_MIN且<= GID_MAX的用户: UP_GIDMIN = ` ( grep -v '^\s*#' /etc/login.defs 2 > /dev/null | grep "^GID_MIN" | awk '($1="GID_MIN") {print $2}' ) ` ; UP_GIDMAX = ` ( grep -v '^\s*#' /etc/login.defs 2 > /dev/null | grep "^GID_MAX" | awk '($1="GID_MAX") {print $2}' ) ` ; grep -v '^\s*#' /etc/passwd 2 > /dev/null | egrep -v "oracle|sybase|postgres" | awk -F':' '($4>=' $UP_GIDMIN ' && $4<=' $UP_GIDMAX ') {print $1":"$3":"$4}'
存在用户自定义的组账号
修改建议
在/etc/passwd中添加gid符合要求(id>= GID_MIN且<= GID_MAX)的用户,并将用户分配到该用户组中
口令重复次数限制
威胁等级:Medium
规则描述
重新启用某个旧密码,要确保此密码在继上次使用后已被修改过几次。 此策略是管理员能够通过确保旧密码不被连续重新使用来增强安全性
审计描述
检查文件/etc/pam.d/system-auth和文件/etc/pam.d/password-auth是否存在如下配置:
password sufficient pam_unix.so remember = 5
或password required pam_pwhistory.so remember = 5
其中remember选项大于等于5
检测用例信息
检查文件/etc/pam.d/system-auth和文件/etc/pam.d/password-auth的“password sufficient pam_unix.so remember = 5 ”参数
两个文件都配置password sufficient pam_unix.so remember = 5 ( 或更大)
检查文件/etc/pam.d/system-auth和文件/etc/pam.d/password-auth的“password required pam_pwhistory.so remember = 5 ”参数
两个文件都配置password required pam_pwhistory.so remember = 5 ( 或更大)
修改建议
编辑配置文件/etc/pam.d/system-auth和文件/etc/pam.d/password-auth修改或添加配置:
password sufficient pam_unix.so remember = 5
或password required pam_pwhistory.so remember = 5
备注:使用remember= 5 配置覆盖原有模块配置
文件与目录缺省权限控制
威胁等级:High
规则描述
该设置确定新创建的目录和文件的默认权限
审计描述
检查/etc/profile, /etc/profile.d/*.sh, /etc/bashrc的umask配置为027(或者0027)。
检测用例信息
检查/etc/profile /etc/profile.d/*.sh配置文件中是否存在umask配置,执行命令: cat /etc/profile /etc/profile.d/*.sh 2 > /dev/null | grep -v "^\s*#" | grep umask | awk '{print $1" "$2}' | tail -n1
文件/etc/profile或者/etc/profile.d/*.sh存在umask 027或umask 0027
umask 022
检查/etc/bashrc配置文件中是否存在umask配置,执行命令: cat /etc/bashrc 2 > /dev/null | grep -v "^\s*#" | grep umask | awk '{print $1" "$2}' | tail -n1
文件/etc/bashrc中存在umask 027或umask 0027
umask 022
修改建议
设置/etc/profile /etc/profile.d/*.sh、/etc/bashrc文件中的umask配置为027(或者0027)。
配置用户最小授权
威胁等级:Medium
规则描述
检查文件/etc/passwd、/etc/shadow、/etc/group、/etc/services、/etc/xinetd.conf和目录/etc/security的权限
审计描述
检查文件/etc/passwd、/etc/group、/etc/services的权限是否小于或等于644,检查文件/etc/shadow的权限是否小于或等于400,检查/etc/xinetd.conf文件、/etc/security目录权限是否小于等于600,检查以上文件及目录的属主和属组是否均为root:root
检测用例信息
在目录/etc/security存在时,检查文件的权限,不存在则pass:stat --format= "%U:%G %a" /etc/security 2 > /dev/null
文件不存在或者/etc/security root:root 600 ( 或者更严格)
/etc/security root:root 0755
修改建议
设置文件/etc/passwd、/etc/group、/etc/services的权限为0644,设置文件/etc/shadow的权限为0400,设置文件/etc/xinetd.conf、目录/etc/security的权限为0600,例如执行:chmod 600 /etc/passwd。设置以上文件及目录的属主和属组为root:root,例如执行:chown root:root /etc/passwd
修改SSH的Banner警告信息
威胁等级:Medium
规则描述
检查ssh服务状态,若不开启则pass,若开启则检查是否设置ssh登录告警信息,设置则pass。
审计描述
检查ssh服务状态,若不开启则pass,若开启则检查/etc/ssh/sshd_config文件,是否配置Banner,获取其路径文件,检查该文件是否不为空,不为空则pass
检测用例信息
检查ssh服务状态:systemctl is-enabled sshd
ssh服务未安装或未开启
enabled
检查/etc/ssh/sshd_config文件,是否配置Banner,获取其路径文件,检查该文件是否不为空:path= $( grep "^\s*Banner\s*" /etc/ssh/sshd_config 2 > /dev/null | awk '{print $2}' ) ; if [ -n "$path " ] ; then cat $path 2 > /dev/null | grep -v '^\s*#' ; fi
文件不为空且不存在( \ v| \ r| \ m| \ s)
修改建议
如果ssh服务不需要,需要关闭该服务。如果需要ssh服务,则需要配置/etc/ssh/sshd_config文件中Banner < file> ,并在对应的路径文件中配置警告标示:Authorized users only. All activity may be monitored and reported.
设置关键文件的属性
威胁等级:Medium
规则描述
检查/var/log/messages文件是否存在a属性
审计描述
检查/var/log/messages文件是否存在a属性:lsattr /var/log/messages | cut -b 6
检测用例信息
检查/var/log/messages文件是否存在:ls /var/log/messages 2 > /dev/null
文件不存在
/var/log/messages
检查/var/log/messages文件是否存在a属性:lsattr /var/log/messages | cut -b 6
/var/log/messages文件存在a属性
-
修改建议
使用命令更改该日志文件属性:chattr +a /var/log/messages
检查是否仅使用已批准的MAC算法
威胁等级:Medium
规则描述
此变量限制SSH在通信期间可以使用的MAC算法的类型。
审计描述
检查/etc/ssh/sshd_config文件中MAC算法的值是否在下列算法列表中:hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,检查方法如下:cat /etc/ssh/sshd_config 2 > /dev/null | grep -v '^\s*#' | grep -i '^\s*MACs\s*' | awk -F' ' '{print $2}'
检测用例信息
检查是否仅使用已批准的MAC算法: cat /etc/ssh/sshd_config 2 > /dev/null | grep -v '^\s*#' | grep -i '^\s*MACs\s*' | awk -F' ' '{print $2}'
输出必须在下列算法中:hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
修改建议
编辑 /etc/ssh/sshd_config 文件设置以下参数:MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256 并重启服务。
备注:MAC算法的值在上列算法列表中,可以是部分或者全部
检查是否只使用了已批准的密码
威胁等级:Medium
规则描述
此变量限制SSH在通信期间可以使用的密码类型。
审计描述
检查/etc/ssh/sshd_config文件中Ciphers的值是否在下列密码类型列表中: aes256-ctr,aes192-ctr,aes128-ctr, 检查方法如下:cat /etc/ssh/sshd_config 2 > /dev/null | grep -v '^\s*#' | grep -i '^\s*Ciphers\s*'
检测用例信息
检查是否只使用了已批准的密码: cat /etc/ssh/sshd_config 2 > /dev/null | grep -v '^\s*#' | grep -i '^\s*Ciphers\s*'
输出必须在下列密码类型中:aes256-ctr,aes192-ctr,aes128-ctr
修改建议
编辑 /etc/ssh/sshd_config 文件设置以下参数:Ciphers aes256-ctr,aes192-ctr,aes128-ctr 并重启服务;
备注:Ciphers的值在上述密码类型中,可以是部分或者全部。
检查不活跃的密码锁定是否小于等于30天
威胁等级:Medium
规则描述
在给定时间段内已停用的用户帐户可以自动禁用。建议在密码到期后30天内处于非活动状态的帐户被禁用。
审计描述
执行以下命令检查INACTIVE是否为30或更少:
INACTIVE = 30 ( 或更少)
检查所有使用密码的用户是否将密码设置为在密码过期后的30天内停用:
输出为空
检测用例信息
检查不活跃的密码锁定是否小于等于30天: useradd -D | grep INACTIVE
INACTIVE = 30 ( 1 -30)
INACTIVE = -1
修改建议
执行以下命令将默认密码不活动期限设置为30天:
修改不合规用户的用户参数:
禁止wheel组以外的用户使用su - root命令
威胁等级:High
规则描述
使用PAM认证模块进行su权限控制,禁止wheel组之外的用户使用su - root命令
审计描述
执行命令cat /etc/pam.d/su,查看文件中是否存在如下配置:
auth sufficient pam_rootok.so
使用pam_rootok.so认证模块认证
auth required pam_wheel.so group = wheel或auth required pam_wheel.so use_uid
且配置了只允许wheel组的用户才能使用su - root命令
检测用例信息
检查文件中是否存在pam_wheel.so配置:grep '^\s*auth' /etc/pam.d/su | egrep "(required|requisite|sufficient)" | grep pam_wheel.so | egrep "\s*(use_uid|group\s*=\s*wheel)\s*"
auth required( requisite| sufficient) pam_wheel.so group = wheel或auth required( requisite| sufficient) pam_wheel.so use_uid
修改建议
修改或添加配置文件/etc/pam.d/su的条目:
auth sufficient pam_rootok.so
auth required pam_wheel.so group = wheel或auth required pam_wheel.so use_uid
限制root用户SSH远程登录
威胁等级:High
规则描述
拒绝root用户通过ssh协议远程登录
ssh协议版本为2
审计描述
查看配置文件/etc/ssh/sshd_config是否有以下配置:
(1)拒绝root用户通过ssh协议远程登录
PermitRootLogin no
(2)ssh协议版本是否为2
Protocol 2
检测用例信息
检查PermitRootLogin是否关闭:egrep -v "^[[:space:]]*#|^[[:space:]]*$" /etc/ssh/sshd_config | grep PermitRootLogin
PermitRootLogin no
PermitRootLogin yes
修改建议
在文件/etc/ssh/sshd_config添加如下配置:
PermitRootLogin no
Protocol 2
备注:PermitRootLogin的默认值为yes,Protocol的默认值为2
检查SSH的MaxAuthTries是否设置为小于等于4
威胁等级:Medium
规则描述
MaxAuthTries参数指定每个连接允许的最大验证尝试次数。当登录失败次数达到设置的一半时,错误消息将被写入syslog文件详细记录登录失败。
审计描述
检查/etc/ssh/sshd_config文件中是否存在 MaxAuthTries 参数,且值小于等于4
检测用例信息
检查SSH的MaxAuthTries是否设置: cat /etc/ssh/sshd_config | grep -v '^\s*#' | grep MaxAuthTries
MaxAuthTries 4 ( 1 -4)
修改建议
编辑/etc/ssh/sshd_config文件将 MaxAuthTries 设置为:小于等于4,并重启服务。
备注:MaxAuthTries的默认值为6
检查SSH空闲超时间隔是否设置
威胁等级:Medium
规则描述
ClientAliveInterval和ClientAliveCountMax这两个选项控制ssh会话超时。ClientAliveInterval设置了ssh服务器端向其客户端发送请求消息(alive消息)的间隔时间,以检测客户端是否还存在;ClientAliveCountMax设置了ssh服务允许客户端在接收到服务端的alive消息未响应的最大超时次数,如果客户端在最大超时次数内均未响应,ssh服务会自动终止与客户端的会话。例如,如果ClientAliveInterval设置为15,ClientAliveCountMax设置为3,那么无应答的客户端会在45秒后被强制断开。
审计描述
检查/etc/ssh/sshd_config文件中是否存在 ClientAliveInterval 300
ClientAliveCountMax 3
检测用例信息
检查SSH的ClientAliveInterval是否设置: cat /etc/ssh/sshd_config | grep -v '^\s*#' | grep ClientAliveInterval
ClientAliveInterval 300 ( 1 -300)
修改建议
编辑/etc/ssh/sshd_config文件将ClientAliveInterval设置为:小于等于300,ClientAliveCountMax设置为:小于等于3,并重启服务。
备注:ClientAliveInterval的默认值为0,ClientAliveCountMax的默认值为3。
登陆超时时间设置
威胁等级:High
规则描述
设置定时帐户自动登出时间。
审计描述
检查/etc/profile文件中是否配置超时设置:TMOUT小于等于300.
检测用例信息
检查/etc/profile文件中是否存在TMOUT: cat /etc/profile | egrep -v ^\ s*
TMOUT小于等于300
修改建议
在/etc/profile文件中添加以下内容:export TMOUT = 300
系统core dump状态
威胁等级:Medium
规则描述
系统core dump状态
审计描述
查看/etc/security/limits.conf文件中是否配置如下内容:* soft core 0 、* hard core 0 ,查看/etc/profile文件中是否存在如下配置:ulimit -S -c 0 > /dev/null 2 >&1
检测用例信息
检查/etc/security/limits.conf文件中是否存在配置* soft core 0 :grep -v "^\s*#" /etc/security/limits.conf | egrep "\*\s+soft\s+core\s+0"
存在* soft core 0
检查/etc/security/limits.conf文件中是否存在配置* hard core 0 : grep -v "^\s*#" /etc/security/limits.conf | egrep "\*\s+hard\s+core\s+0"
存在* hard core 0
修改建议
在/etc/security/limits.conf文件中设置* soft core、* hard core为0,且在/etc/profile文件中注释掉ulimit -S -c 0 > /dev/null 2 >&1 行
历史命令设置
威胁等级:Medium
规则描述
历史命令设置
审计描述
编辑文件/etc/profile查看是否存在如下内容:
HISTFILESIZE = 5
HISTSIZE = 5
检测用例信息
检查文件中是否存在HISTFILESIZE 配置:cat /etc/profile| grep -v "^\s*#" | grep "HISTFILESIZE\s*=" | tail -1
HISTFILESIZE 的值小于等于5
检查文件中是否存在HISTSIZE 配置:cat /etc/profile| grep -v "^\s*#" | grep "HISTSIZE\s*=" | tail -1
HISTSIZE 的值小于等于5
HISTSIZE = 1000
修改建议
在文件/etc/profile中修改添加如下配置:
HISTFILESIZE = 5
HISTSIZE = 5
禁止ICMP重定向
威胁等级:Medium
规则描述
禁止ICMP重定向
审计描述
禁止ICMP重定向,查看文件/etc/sysctl.conf或/etc/sysctl.d/*中net.ipv4.conf.all.accept_redirects参数,值为0合规,
执行命令:1.sysctl net.ipv4.conf.all.accept_redirects ;2.cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4.conf\.all\.accept_redirects" | uniq
检测用例信息
检查系统设置的参数net.ipv4.conf.all.accept_redirects: sysctl net.ipv4.conf.all.accept_redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_redirects = 1
检查文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.conf.all.accept_redirects :cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4.conf\.all\.accept_redirects" | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.conf.all.accept_redirects = 0
修改建议
设置配置文件/etc/sysctl.conf或/etc/sysctl.d/*的参数:net.ipv4.conf.all.accept_redirects= 0 , 执行命令sysctl -p重新加载配置文件使其生效
禁止IP路由转发
威胁等级:Low
规则描述
禁止IP路由转发
审计描述
检查系统是否禁用IP路由转发功能,查看文件/etc/sysctl.conf或/etc/sysctl.d/*中net.ipv4.ip_forward参数,值为0表示合规,执行命令:1.sysctl net.ipv4.ip_forward 2 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.ip_forward" | uniq
检测用例信息
检查文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.ip_forward:cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.ip_forward" | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.ip_forward = 0
修改建议
设置文件/etc/sysctl.conf或/etc/sysctl.d/*的参数:net.ipv4.ip_forward = 0 ,执行命令sysctl -p 重新加载配置文件使其生效
禁止IP源路由
威胁等级:Medium
规则描述
禁止IP源路由
审计描述
检查文件/etc/sysctl.conf或/etc/sysctl.d/*参数accept_source_route值均为0合规,执行命令:
1 .sysctl net.ipv4.conf.all.accept_source_route
2 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v'^\s*#' | grep 'net\.ipv4\.conf\.all\.accept_source_route' | uniq
3 . sysctl net.ipv4.conf.default.accept_source_route
4 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep 'net\.ipv4\.conf\.default\.accept_source_route' | uniq
检测用例信息
检查文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.conf.all.accept_source_route :cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep 'net\.ipv4\.conf\.all\.accept_source_route' | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.conf.all.accept_source_route = 0
检查文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.conf.default.accept_source_route :cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep 'net\.ipv4\.conf\.default\.accept_source_route' | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.conf.default.accept_source_route = 0
修改建议
设置文件/etc/sysctl.conf或/etc/sysctl.d/*的以下参数: net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0 ,执行命令:sysctl -p 重新加载配置文件,使其生效
确保忽略广播的ICMP请求
威胁等级:Medium
规则描述
系统忽略所有广播和多播地址的ICMP回显和时间戳记请求,把配置文件/etc/sysctl.conf或/etc/sysctl.d/*中net.ipv4.icmp_echo_ignore_broadcasts的参数设置为1
审计描述
检查系统是否开启忽略广播ICMP请求功能,检查文件/etc/sysctl.conf或/etc/sysctl.d/*中net.ipv4.icmp_echo_ignore_broadcasts参数,值为1表示合规,
执行命令:1.sysctl net.ipv4.icmp_echo_ignore_broadcasts 2 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.icmp_echo_ignore_broadcasts" | uniq
检测用例信息
查看文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.icmp_echo_ignore_broadcasts:cat /etc/sysctl.conf /etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.icmp_echo_ignore_broadcasts" | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.icmp_echo_ignore_broadcasts = 1
修改建议
设置文件/etc/sysctl.conf或/etc/sysctl.d/*的参数为:net.ipv4.icmp_echo_ignore_broadcasts = 1 ,执行命令:sysctl -p 加载配置文件,使该策略项生效
打开syncookie缓解syn flood攻击
威胁等级:Low
规则描述
打开syncookie缓解syn flood攻击
审计描述
检查文件/etc/sysctl.conf或/etc/sysctl.d/*的参数net.ipv4.tcp_syncookies,值为1表示合规,执行命令:
1 .sysctl net.ipv4.tcp_syncookies 2 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep-v '^\s*#' | grep "net\.ipv4\.tcp_syncookies" | uniq
检测用例信息
检查文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.tcp_syncookies :cat /etc/sysctl.conf /etc/sysctl.d/* | grep-v '^\s*#' | grep "net\.ipv4\.tcp_syncookies" | uniq
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.tcp_syncookies = 1
修改建议
修改文件/etc/sysctl.conf或/etc/sysctl.d/*的参数net.ipv4.tcp_syncookies = 1 ,执行命令sysctl -p 重新加载配置文件,使其生效
检查AIDE是否安装
威胁等级:Medium
规则描述
AIDE生产一个文件系统状态的快照,其中包括修改时间,权限和文件哈希值,然后可以其与文件系统的当前状态进行比较,以检测对系统的修改。
审计描述
检查AIDE是否安装,执行:rpm -q aide 2 > /dev/null
检测用例信息
检查AIDE是否安装:rpm -q aide 2 > /dev/null
aide-< version>
package aide is not installed
修改建议
执行以下命令安装AIDE:
关闭不必要的服务和端口
威胁等级:Low
规则描述
获取系统中所有的系统服务和开放端口后由用户判断是否有非必要的服务和端口开启
审计描述
检测方法: 1 、执行以下命令查看服务列表:chkconfig --list, systemctl list-unit-files | grep enabled, 查看所有服务的开启关闭列表检查基本的网络服务的开启或禁止情况,根据实际情况关闭不必要的服务。 2 、查看开放的端口列表:netstat -tunlp
检测用例信息
显示所有的服务:chkconfig --list 2 > /dev/null
由用户判断,关闭不必要的服务和端口
audit_agent 0 :off 1 :off 2 :on 3 :on 4 :on 5 :on 6 :off
hostguard 0 :off 1 :off 2 :on 3 :on 4 :on 5 :on 6 :off
jexec 0 :off 1 :on 2 :on 3 :on 4 :on 5 :on 6 :off
multi-queue-hw 0 :off 1 :off 2 :on 3 :on 4 :on 5 :on 6 :off
netconsole 0 :off 1 :off 2 :off 3 :off 4 :off 5 :off 6 :off
network 0 :off 1 :off 2 :off 3 :off 4 :off 5 :off 6 :off
显示所有启动的网络服务:systemctl list-unit-files | grep enabled
由用户判断,关闭不必要的服务和端口
atd.service enabled
auditd.service enabled
autovt@.service enabled
chronyd.service enabled
cloud-config.service enabled
cloud-final.service enabled
cloud-init-local.service enabled
cloud-init.service enabled
cloudResetPwdAgent.service enabled
cloudResetPwdUpdateAgent.service enabled
crond.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
getty@.service enabled
irqbalance.service enabled
kdump.service enabled
microcode.service enabled
NetworkManager-dispatcher.service enabled
NetworkManager-wait-online.service enabled
NetworkManager.service enabled
postfix.service enabled
rhel-autorelabel-mark.service enabled
rhel-autorelabel.service enabled
rhel-configure.service enabled
rhel-dmesg.service enabled
rhel-domainname.service enabled
rhel-import-state.service enabled
rhel-loadmodules.service enabled
rhel-readonly.service enabled
rsyslog.service enabled
sshd.service enabled
supervisord.service enabled
systemd-readahead-collect.service enabled
systemd-readahead-drop.service enabled
systemd-readahead-replay.service enabled
tuned.service enabled
uniagent.service enabled
default.target enabled
multi-user.target enabled
remote-fs.target enabled
runlevel2.target enabled
runlevel3.target enabled
runlevel4.target enabled
显示所有的端口列表:netstat -tunlp
由用户判断,关闭不必要的服务和端口
Active Internet connections ( only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0 .0.1:25 0.0 .0.0:* LISTEN 1145 /master
tcp 0 0 0.0 .0.0:22 0.0 .0.0:* LISTEN 2091 /sshd
tcp6 0 0 :::48761 :::* LISTEN 28064 /java
tcp6 0 0 ::1:25 :::* LISTEN 1145 /master
tcp6 0 0 :::28001 :::* LISTEN 28059 /java
tcp6 0 0 :::28002 :::* LISTEN 28058 /java
tcp6 0 0 :::28003 :::* LISTEN 29934 /java
tcp6 0 0 :::28004 :::* LISTEN 28057 /java
tcp6 0 0 :::28100 :::* LISTEN 28056 /java
tcp6 0 0 :::28006 :::* LISTEN 28067 /java
tcp6 0 0 127.0 .0.1:8009 :::* LISTEN 31631 /java
tcp6 0 0 :::5001 :::* LISTEN 28061 /java
tcp6 0 0 :::14033 :::* LISTEN 31631 /java
tcp6 0 0 :::5010 :::* LISTEN 28069 /java
tcp6 0 0 :::8083 :::* LISTEN 31631 /java
tcp6 0 0 :::22 :::* LISTEN 2091 /sshd
udp 0 0 0.0 .0.0:60751 0.0 .0.0:* 5854 /audit_agent
udp 0 0 0.0 .0.0:68 0.0 .0.0:* 721 /dhclient
udp 0 0 127.0 .0.1:323 0.0 .0.0:* 618 /chronyd
udp6 0 0 ::1:323 :::* 618 /chronyd
修改建议
由用户判断,关闭不必要的服务和端口
禁止存在空密码的帐户
威胁等级:Medium
规则描述
空口令账号个数为0
审计描述
查看/etc/passwd中是否存在空口令账号,若不存在则pass
检测用例信息
修改建议
删除空口令账户或者添加口令
禁止UID为0的用户存在多个
威胁等级:Medium
规则描述
UID为0的非root账号数量为0
审计描述
检查/etc/passwd文件中UID 为0的账号有且只有root
检测用例信息
修改建议
删除/etc/passwd文件中UID 为0的非root账号
检查root用户默认组的GID是否为0
威胁等级:Medium
规则描述
usermod命令可用于指定root用户所属的组。这会影响root用户创建的文件的权限。
审计描述
root用户默认组的GID为0
检测用例信息
修改建议
将root用户默认组的GID设置为:0
检查密码散列算法是否为SHA-512
威胁等级:Medium
规则描述
将密码加密从md5更改为sha512(一个更强大的散列算法)。所有现有帐户都需要执行密码更改才能将存储的哈希值升级到新的算法。
审计描述
检查 /etc/pam.d/password-auth 和 /etc/pam.d/system-auth 文件是否存在如下内容: password sufficient pam_unix.so sha512
检测用例信息
修改建议
编辑 /etc/pam.d/password-auth 和 /etc/pam.d/system-auth 文件添加如下内容: password sufficient pam_unix.so sha512
日志文件安全
威胁等级:Low
规则描述
日志文件安全
审计描述
系统中不存在权限> 640 的日志文件
检测用例信息
在/etc/syslog-ng/syslog-ng.conf文件存在的情况下,检查syslog-ng日志文件权限是否满足要求:unset path LOGDIR; path = ` ls /etc/syslog-ng/syslog-ng.conf 2 > /dev/null` ; if [ -n "$path " ] ; then LOGDIR = ` cat /etc/syslog-ng/syslog-ng.conf 2 > /dev/null| grep -v "^[[:space:]]*#" | grep "^destination" | grep file | ( cut -d\ \ " -f2| cut -d\ \ ' -f2) ` ; for file in $LOGDIR ; do if [ -d "$file " -o -f "$file " ] ; then ls -l "$file " | grep -v "[r-][w-]-[r-]-----" | awk '{print $1" "$8" "$9}' ; else echo "$file does not exist" ; fi ; done ; else echo "/etc/syslog-ng/syslog-ng.conf does not exist" ; fi ; unset LOGDIR
不存在日志文件权限大于640(/etc/syslog-ng/syslog-ng.conf文件存在)
/etc/syslog-ng/syslog-ng.conf does not exist
修改建议
对权限> 640 的日志文件赋予640权限
配置su命令使用情况记录
威胁等级:Low
规则描述
文件/var/log/secure必须存在
审计描述
查看文件/etc/rsyslog.conf存在类似如下语句:
authpriv.* /var/log/secure
或查看文件/etc/syslog-ng/syslog-ng.conf,存在类似如下内容:
filter f_secure { facility( authpriv) ; } ;
destination f_authprive { file( "/var/log/secure" ) ; } ;
log { source( src) ; filter( f_secure) ; destination( f_authprive) ; } ;
检测用例信息
检查syslog-ng是否配置su命令使用记录:unset ret ret2 ret3; if [ -s /etc/syslog-ng/syslog-ng.conf ] ; then ret = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | egrep "facility\(authpriv\)" | grep "filter" | awk '{print $2}' ` ; if [ -n "$ret " ] ; then ret2 = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | grep "destination\s*f_authprive" | grep "/var/log/secure" ` ; if [ -n "$ret2 " ] ; then ret3 = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | grep "log" | grep "$ret " ` ; fi ; fi ; fi ; if [ -n "$ret3 " ] ; then echo "The configuration of the security event log is valid." ; fi ; unset ret ret2 ret3;
The configuration of the security event log is valid.
修改建议
在/etc/rsyslog.conf文件中增加/var/log/secure的配置
如果安装了syslog-ng,则进行如下设置:
编辑文件/etc/syslog-ng/syslog-ng.conf,增加如下内容:
filter f_secure { facility( authpriv) ; } ;
destination f_authprive { file( "/var/log/secure" ) ; } ;
log { source( src) ; filter( f_secure) ; destination( f_authprive) ; } ;
创建日志文件,并赋予其权限
记录cron行为日志
威胁等级:Low
规则描述
rsyslog、syslog-ng是否启用记录cron行为日志功能
审计描述
查看文件/etc/rsyslog.conf,看文件中是否存在如下配置:
cron.* /var/log/cron
或查看文件/etc/syslog-ng/syslog-ng.conf,看文件中是否存在如下内容:
filter f_cron { facility( cron) ; } ;
destination cron { file( "/var/log/cron" ) ; } ;
log { source( src) ; filter( f_cron) ; destination( cron) ; } ;
检测用例信息
检查syslog-ng是否记录cron行为日志:if [ -s /etc/syslog-ng/syslog-ng.conf ] ; then cron_1 = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | egrep "filter[[:space:]]*.*[[:space:]]*{[[:space:]]*facility\(cron\);[[:space:]]*};" | wc -l` ; if [ $cron_1 -ge 1 ] ; then cron_2 = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | grep "destination[[:space:]]*cron.*[[:space:]]*{[[:space:]]*file\(.*/var/log/cron.*\)[[:space:]]*;[[:space:]]*};" | awk '{print $2}' ` ; if [ -n $cron_2 ] ; file = ` grep -v "^[[:space:]]*#" /etc/syslog-ng/syslog-ng.conf | grep "destination\s*cron" | grep -E "file\((\" |').+(\" |')\)" | awk -F '"' '{print $2}' ` ; if [ -n $cron_2 -a -f $file ] ; then cron_3 = ` cat /etc/syslog-ng/syslog-ng.conf | grep -v "^[[:space:]]*#" | egrep "log[[:space:]]*{[[:space:]]*source\(src\);[[:space:]]*filter\(.*\);[[:space:]]*destination\($cron_2 \);[[:space:]]*};" | wc -l` ; if [ $cron_3 -ge 1 ] ; then echo "Cron log has been configured" ; fi ; else echo "$file does not exist" ; fi ; fi ; fi ;
Cron日志已配置
修改建议
在文件/etc/rsyslog.conf添加如下配置:
cron.* /var/log/cron
或编辑文件/etc/syslog-ng/syslog-ng.conf,在文件增加如下内容( 如果存在则无需新增) 如下内容:
filter f_cron { facility( cron) ; } ;
destination cron { file( "/var/log/cron" ) ; } ;
log { source( src) ; filter( f_cron) ; destination( cron) ; } ; 其中/var/log/cron为日志文件。
(1)、如果该文件不存在,则创建该文件,命令为:
(2)、同时修改其权限为640,命令为:
使用SSH协议进行远程维护
威胁等级:High
规则描述
查看telnet和ssh服务状态
审计描述
查看telnet和ssh服务状态:
systemctl is-enabled sshd,
systemctl is-enabled telnet.socket
检测用例信息
修改建议
关闭Telnet服务, systemctl disable telnet.socket,并开启ssh服务, systemctl enable sshd
检查SSH的PermitEmptyPasswords是否禁用
威胁等级:Medium
规则描述
PermitEmptyPasswords参数指定SSH服务器是否允许使用空密码登录帐户。
审计描述
检查/etc/ssh/sshd_config文件中是否存在 PermitEmptyPasswords no
检测用例信息
修改建议
/编辑/etc/ssh/sshd_config文件将PermitEmptyPasswords设置为:no,并重启服务。
备注:PermitEmptyPasswords默认值为no
检查SSH的HostbasedAuthentication是否禁用
威胁等级:Medium
规则描述
HostbasedAuthentication参数指定身份验证是否允许。
审计描述
检查/etc/ssh/sshd_config文件中是否存在 HostbasedAuthentication no
检测用例信息
修改建议
编辑/etc/ssh/sshd_config文件将 HostbasedAuthentication 设置为:no,并重启服务。
备注:HostbasedAuthentication的默认值为no
修改SNMP的默认Community
威胁等级:Medium
规则描述
检查snmpd服务是否开启,若开启则修改snmp默认团体名称
审计描述
1 、使用命令systemctl is-enabled snmpd查看snmpd服务是否开启。
2 、snmpd服务若开启,则修改snmp默认团体名称
检测用例信息
修改建议
修改snmp默认团体名称
禁止root用户登录FTP
威胁等级:Medium
规则描述
禁止root用户登录FTP
审计描述
禁止root用户登录ftp
1 )检查是否有ftp服务,如果不存在,直接pass,如果有ftp服务,检查后面内容。
2 )ftp服务启动时,检查下面内容:
检查userlist_enable是YES(默认是NO),同时userlist_deny是否是NO,且查看/etc/vsftpd/user_list文件是否有配置root用户,如果有root配置则不通过。
注:如果userlist_deny是YES(默认),则/etc/vsftpd/user_list中的用户都无法访问服务器,建议使用用户白名单。如果是pure-ftp服务器,查看如下配置文件pure-ftpd.conf。
pure-ftp服务器,pure-ftpd.conf文件中设置了MinUID 100 ,限制了uid<= 100 的用户登录FTP。
如果是wu-ftp服务器,查看如下配置文件/etc/ftpd/ftpusers( /etc/ftpusers) 。
wu-ftp服务器,/etc/ftpd/ftpusers( /etc/ftpusers) 文件中存在root用户。
如果是proftp服务器,查看如下配置文件proftpd.conf。
proftp服务器,proftpd.conf文件中不存在如下配置:
RootLogin on
以上五个条件满足其一则合规,否则不合规。
检测用例信息
检查vsftpd.conf文件确保输出为userlist_enable= YES:if [ ` ps -ef| grep ftpd| grep -v "grep" | wc -l` -ge 1 ] ; then data = ` if [ -f /etc/vsftpd/vsftpd.conf ] ; then printf '/etc/vsftpd/vsftpd.conf' ; else if [ -f /etc/vsftpd.conf ] ; then printf '/etc/vsftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | grep -v "^[[:space:]]*#" | awk -F'#' '{print $1}' | grep '^[[:space:]]*userlist_enable' 2 > /dev/null; fi ; fi ;
userlist_enable = YES
检查vsftpd.conf文件确保输出为userlist_deny= NO:if [ ` ps -ef| grep ftpd| grep -v "grep" | wc -l` -ge 1 ] ; then data = ` if [ -f /etc/vsftpd/vsftpd.conf ] ; then printf '/etc/vsftpd/vsftpd.conf' ; else if [ -f /etc/vsftpd.conf ] ; then printf '/etc/vsftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | grep -v "^[[:space:]]*#" | awk -F'#' '{print $1}' | grep '^[[:space:]]*userlist_deny' 2 > /dev/null; fi ; fi ;
userlist_deny = NO
检查pure-ftpd.conf文件确保存在MinUID 100 :if [ ` ps -ef| grep ftpd| grep -v "grep" | wc -l` -ge 1 ] ; then data = ` if [ -f /etc/pure-ftpd/pure-ftpd.conf ] ; then printf '/etc/pure-ftpd/pure-ftpd.conf' ; else if [ -f /etc/pure-ftpd.conf ] ; then printf '/etc/pure-ftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | egrep -v "^[[:space:]]*#|^[[:space:]]*$" | grep -i "MinUID" ; fi ; unset data; fi ;
MinUID 100
检查ftpusers文件,确保配置root:if [ ` ps -ef| grep ftpd| grep -v "grep" | wc -l` -ge 1 ] ; then data = ` if [ -f /etc/ftpusers ] ; then printf '/etc/ftpusers' ; else if [ -f /etc/ftpd/ftpusers ] ; then printf '/etc/ftpd/ftpusers' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | egrep -v "^[[:space:]]*#|^[[:space:]]*$" | grep "^[[:space:]]*root" ; fi ; unset data; fi ;
root
检查proftpd.conf文件确保输出符合要求:if [ ` ps -ef| grep ftpd| grep -v "grep" | wc -l` -ge 1 ] ; then data = ` if [ -f /etc/proftpd.conf ] ; then printf '/etc/proftpd.conf' ; else if [ -f /etc/proftpd/proftpd.conf ] ; then printf '/etc/proftpd/proftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | egrep -v "^[[:space:]]*#|^[[:space:]]*$" | egrep "RootLogin[[:space:]]+on" ; else printf 'The configuration file of ftp does not exist' ; fi ; unset data; else printf 'Service ftp is not open' ; fi ;
ftp服务开启且proftpd.conf文件中不存在如下配置:RootLogin on
Service ftp is not open
修改建议
如果ftp服务不需要,需要关闭该服务。
如果需要ftp服务,则需要配置userlist_enable为YES,userlist_deny为NO,且/etc/vsftpd/user_list文件中删除root用户。
wu-ftp
编辑/etc/ftpusers或者/etc/ftpd/ftpusers,在文件中录入root,例如:
root
venustech
说明:ftpusers文件中用户将禁止登录FTP
proftp
编辑配置文件proftpd.conf,在文件中查看是否存在如下内容,存在则将其注释掉:
RootLogin on
pure-ftp
编辑配置文件pure-ftpd.conf,在文件中查看是否存在如下内容,没有则新增:
MinUID 100
重启FTP服务
备注:配置文件pure-ftpd.conf文件的默认路径为/etc/pure-ftpd/pure-ftpd.conf或/etc/pure-ftpd.conf
配置文件proftpd.conf的默认路径为/etc/proftpd.conf或/etc/proftpd/proftpd.conf
禁止匿名FTP
威胁等级:High
规则描述
禁止匿名FTP
审计描述
禁止匿名登录ftp
1 )检查是否有ftp服务,如果不存在,直接pass,如果有ftp服务,检查后面内容。
2 )ftp服务启动时,检查下面内容:
a) 禁止匿名用户访问。
检查vsftpd.conf文件中anonymous_enable是否是NO,如果是No,则不需要检查b、c项,默认是YES。
b) 禁止匿名用户在FTP服务器中上传文件和创建目录。
检查vsftpd.conf文件中anon_upload_enable是否是NO,检查anon_mkdir_write_enable是否是NO。
备注:anon_upload_enable和anon_mkdir_write_enable默认为NO。
c) 禁止邮件地址登录。
检查vsftpd.conf文件中deny_email_enables是否是YES,同时检查banned_email_file配置的文件路径
如果是pure-ftp服务器,查看如下配置文件pure-ftpd.conf.
pure-ftp服务器,配置文件中存在NoAnonymous的值为yes
如果是wu-ftp服务器,查看如下配置文件ftpaccess.
wu-ftp服务器,配置文件中不存在class < class_name> [ guest| anonymous] < ip_address>
如果是proftp服务器,查看如下配置文件proftpd.conf.
proftp服务器,配置文件中将匿名用户配置注释掉或者匿名用户配置中存在AnonRequirePassword的值为on
以上四个条件满足其一则合规,否则不合规
检测用例信息
检查vsftpd.conf确保输出为anonymous_enable= NO:data= ` if [ -f /etc/vsftpd/vsftpd.conf ] ; then printf '/etc/vsftpd/vsftpd.conf' ; else if [ -f /etc/vsftpd.conf ] ; then printf '/etc/vsftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | grep -v "^[[:space:]]*#" | awk -F'#' '{print $1}' | grep '^[[:space:]]*anonymous_enable' 2 > /dev/null; fi
anonymous_enable = NO
检查vsftpd.conf确保输出为deny_email_enables= YES:data= ` if [ -f /etc/vsftpd/vsftpd.conf ] ; then printf '/etc/vsftpd/vsftpd.conf' ; else if [ -f /etc/vsftpd.conf ] ; then printf '/etc/vsftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | grep -v "^[[:space:]]*#" | awk -F'#' '{print $1}' | grep '^[[:space:]]*deny_email_enables' 2 > /dev/null; fi
deny_email_enable = YES
检查vsftpd.conf确保有输出:unset data; unset securecat; unset ret; data = ` if [ -f /etc/vsftpd/vsftpd.conf ] ; then printf '/etc/vsftpd/vsftpd.conf' ; else if [ -f /etc/vsftpd.conf ] ; then printf '/etc/vsftpd.conf' ; fi ; fi ; ` ; securecat = ` if [ ! -z "$data " ] ; then cat $data | grep -v "^[[:space:]]*#" | awk -F'#' '{print $1}' | grep '^[[:space:]]*banned_email_file' | awk -F'=' '{print $2}' 2 > /dev/null; fi ` ; if [ ! -z "$securecat " ] ; then ret = ` find $securecat -type f 2 > /dev/null` ; if [ ! -z "$ret " ] ; then echo $ret ; fi ; fi ; unset securecat; unset ret;
文件存在
检查pure-ftpd.conf文件确保输出为NoAnonymous yes:data= ` if [ -f /etc/pure-ftpd/pure-ftpd.conf ] ; then printf '/etc/pure-ftpd/pure-ftpd.conf' ; else if [ -f /etc/pure-ftpd.conf ] ; then printf '/etc/pure-ftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then cat $data | egrep -v "^[[:space:]]*#|^[[:space:]]*$" | egrep -i "NoAnonymous" ; fi ; unset data;
NoAnonymous yes
检查ftpaccess文件确保输出满足要求:data= ` if [ -f /etc/ftpaccess ] ; then printf '/etc/ftpaccess' ; else if [ -f /etc/ftpd/ftpaccess ] ; then printf '/etc/ftpd/ftpaccess' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then grep -v "^[[:space:]]*#" $data | egrep "^class\s*.*(guest|anonymous).*" 2 > /dev/null; else echo "ftpaccess does not exist" ; fi ;
文件存在且不包含内容class [ 类名] [ guest/anonymous] [ IP地址]
ftpaccess does not exist
检查proftpd.conf文件确保输出满足要求:data= ` if [ -f /etc/proftpd.conf ] ; then printf '/etc/proftpd.conf' ; else if [ -f /etc/proftpd/proftpd.conf ] ; then printf '/etc/proftpd/proftpd.conf' ; fi ; fi ; ` ; if [ ! -z "$data " ] ; then Anonymous_1 = ` cat $data| sed '/^[[:space:]]*#/d' | sed '/^[[:space:]]*$/d' | sed -n '/<Anonymous.*/,/<\/Anonymous>/p' | grep -i "AnonRequirePassword[[:space:]]*on" ` ; Anonymous_2 = ` cat $data| sed '/^[[:space:]]*#/d' | sed '/^[[:space:]]*$/d' | sed -n '/<Anonymous.*/,/<\/Anonymous>/p' ` ; if ( [ -n "$Anonymous_1 " ] || [ -z "$Anonymous_2 " ] ) ; then printf "true" ; fi ; fi ;
true
修改建议
如果ftp服务不需要,需要关闭该服务。
如果需要ftp服务,则需要配置vsftpd.conf文件中anonymous_enable为No,禁止匿名用户访问。
pure-ftp
编辑配置文件pure-ftpd.conf,在文件中找到如下行,修改NoAnonymous的值为yes( 没有则添加)
NoAnonymous yes
wu-ftp
编辑配置文件ftpaccess,如果文件中存在类似如下行,则注释掉:
class [ 类名] [ guest/anonymous] [ IP地址]
说明:用户类型不能为guest或者anonymous
proftp
编辑配置文件proftpd.conf,查看文件中找到如下结构:
< Anonymous ~ftp>
Group ftp
UserAlias anonymous ftp
< /Anonymous>
在该结构中添加如下行:
AnonRequirePassword on
或者将< Anonymous ~ftp> .. .. < /Anonymous> 结构注释掉.
重启ftp服务
备注:配置文件pure-ftpd.conf文件的默认路径为/etc/pure-ftpd/pure-ftpd.conf或/etc/pure-ftpd.conf
配置文件proftpd.conf的默认路径为/etc/proftpd.conf或/etc/proftpd/proftpd.conf
root用户环境变量的安全性
威胁等级:Medium
规则描述
查看path环境变量的值,检查root用户的系统路径中是否包含父目录。
审计描述
检查PATH 环境变量的值,确认PATH 环境变量中是否存在.或者.. 的路径
检测用例信息
修改建议
查看PATH 环境变量的值,删除PATH 环境变量中存在.或者.. 的路径
禁止组合键关机
威胁等级:Medium
规则描述
禁止Control-Alt-Delete重启动机器命令
审计描述
检查/usr/lib/systemd/system/reboot.target文件,如果该文件不存在、该文件都注释掉、该文件为空则pass,或者如果软链接文件/usr/lib/systemd/system/ctrl-alt-del.target不存在,也pass
检测用例信息
检查/usr/lib/systemd/system/reboot.target文件是否存在: cat /usr/lib/systemd/system/reboot.target 2 > /dev/null | grep -v "^\s*#"
文件/usr/lib/systemd/system/reboot.target不存在或该文件都注释掉或该文件为空
[ Unit]
Description = Reboot
Documentation = man:systemd.special( 7 )
DefaultDependencies = no
Requires = systemd-reboot.service
After = systemd-reboot.service
AllowIsolate = yes
JobTimeoutSec = 30min
JobTimeoutAction = reboot-force
[ Install]
Alias = ctrl-alt-del.target
检查/usr/lib/systemd/system/ctrl-alt-del.target文件是否存在: ls /usr/lib/systemd/system/ctrl-alt-del.target 2 > /dev/null
文件/usr/lib/systemd/system/ctrl-alt-del.target不存在
/usr/lib/systemd/system/ctrl-alt-del.target
修改建议
删掉/usr/lib/systemd/system/reboot.target文件
修改TELNET的Banner信息
威胁等级:Low
规则描述
检查在TELNET服务开启的时候,其Banner信息中是否包含敏感信息。
审计描述
1 、检查TELNET服务
2 、若TELNET服务开启,检查文件/etc/issue和/etc/issue.net是否不包含系统敏感信息(版本信息),执行命令:1. egrep '(\v|\r|\m|\s)' /etc/issue 2 > /dev/null | grep -v "^\s*#" 2 .egrep '(\v|\r|\m|\s)' /etc/issue.net 2 > /dev/null | grep -v"^\s*#"
检测用例信息
检查/etc/issue文件是否存在敏感信息:egrep '(\v|\r|\m|\s)' /etc/issue 2 > /dev/null | grep -v "^\s*#"
文件/etc/issue不存在敏感信息
Kernel \ r on an \ m
检查/etc/issue.net文件是否存在敏感信息:egrep '(\v|\r|\m|\s)' /etc/issue.net 2 > /dev/null | grep -v"^\s*#"
文件/etc/issue.net不存在敏感信息
Kernel \ r on an \ m
修改建议
删除文件/etc/issue和/etc/issue.net中的系统敏感信息(版本信息)
更改主机解析地址的顺序
威胁等级:Low
规则描述
1、检查是否设置首先通过DNS解析IP地址,然后通过hosts文件解析。
2、检查设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。
3、检查是否设置说明要注意对本机未经许可的IP欺骗。
审计描述
检查文件/etc/host.conf,看是否存在如下内容:
order hosts,bind
multi on
nospoof on
检测用例信息
检查文件中是否存在order hosts,bind:egrep -v "^\s*#" /etc/host.conf | egrep -i "^\s*order\s*hosts\s*"
order hosts,bind
检查文件中是否存在nospoof on:egrep -v "^\s*#" /etc/host.conf | egrep -i "^\s*nospoof\s*"
nospoof on
修改建议
在文件/etc/host.conf中修改或添加如下内容:
order hosts,bind
multi on
nospoof on
检查可疑数据包是否被记录
威胁等级:Medium
规则描述
开启功能后,将不可发送源地址的数据包记录到内核日志
审计描述
检查文件/etc/sysctl.conf或/etc/sysctl.d/*的参数net.ipv4.conf.all.log_martians和net.ipv4.conf.default.log_martians,值为1表示合规,执行命令:
1 .sysctl net.ipv4.conf.all.log_martians 2 .cat /etc/sysctl.conf/etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.conf\.all\.log_martians"
3 .sysctl net.ipv4.conf.default.log_martians 4 .cat /etc/sysctl.conf /etc/sysctl.d/* | grep '^\s*#' | grep "net\.ipv4\.conf\.default\.log_martians"
检测用例信息
查看系统设置的参数net.ipv4.conf.all.log_martians: sysctl net.ipv4.conf.all.log_martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.log_martians = 0
查看文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.conf.all.log_martians: cat /etc/sysctl.conf/etc/sysctl.d/* | grep -v '^\s*#' | grep "net\.ipv4\.conf\.all\.log_martians"
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.conf.all.log_martians = 1
查看系统设置的参数net.ipv4.conf.default.log_martians:sysctl net.ipv4.conf.default.log_martians
net.ipv4.conf.default.log_martians = 1
net.ipv4.conf.default.log_martians = 0
查看文件/etc/sysctl.conf或/etc/sysctl.d/*是否配置参数net.ipv4.conf.default.log_martians: cat /etc/sysctl.conf /etc/sysctl.d/* | grep '^\s*#' | grep "net\.ipv4\.conf\.default\.log_martians"
文件/etc/sysctl.conf或者/etc/sysctl.d/*配置:net.ipv4.conf.default.log_martians = 1
修改建议
设置文件/etc/sysctl.conf或/etc/sysctl.d/*的参数:net.ipv4.conf.all.log_martians= 1 和 net.ipv4.conf.default.log_martians= 1 ,执行命令:sysctl -p重新加载配置文件使策略项生效
检查重复UID是否不存在
威胁等级:Medium
规则描述
虽然useradd命令不会允许创建重复的用户标识(UID),但管理员可以手动编辑 /etc/passwd 文件并更改UID字段。
审计描述
重复UID 不存在
检测用例信息
修改建议
建立唯一的UID 并确保与/etc/passwd文件中用户UID 不重复。
检查重复用户名是否不存在
威胁等级:Medium
规则描述
虽然useradd命令不会允许创建重复的用户名,但管理员可以手动编辑 /etc/passwd 文件并更改用户名。
审计描述
重复用户名不存在
检测用例信息
修改建议
为用户设置唯一的用户名。
检查重复用户组名称是否不存在
威胁等级:Medium
规则描述
虽然groupadd命令不会允许创建重复的用户组名,但管理员可以手动编辑 /etc/group 文件并更改用户组名。
审计描述
重复用户组名称不存在
检测用例信息
修改建议
为用户组设置唯一的组名称。
检查重复GID是否不存在
威胁等级:Medium
规则描述
虽然groupadd命令不会允许创建重复的用户组标识(GID),但管理员可以手动编辑 /etc/group 文件并更改GID字段。
审计描述
重复GID不存在
检测用例信息
修改建议
建立唯一的GID并确保与/etc/group文件已有GID不重复
检查是否对系统账号进行登录限制
威胁等级:Low
规则描述
应限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令
审计描述
检查是否对系统账号进行登录限制,执行:cat /etc/passwd | egrep "^(adm|daemon|bin|sys|lp|uucp|nuucp|smmsp):" | awk -F: '{print $1":"$7}' | egrep -v "/sbin/nologin|/bin/false" ,输出为空。
检测用例信息
修改建议
需要锁定账户有adm、daemon、bin、sys、lp、uucp、nuucp、smmsp。编辑/etc/passwd文件,重命名系统默认帐户,修改这些帐户的默认口令为/sbin/nologin或/bin/false。
限制FTP用户登录后能访问的目录
威胁等级:Low
规则描述
限制FTP用户登录后能访问的目录
审计描述
检查ftp服务状态,若服务开启,在相应的配置文件中查看配置信息:
1 、vsftp服务器,配置文件中存在如下内容:
chroot_list_enable = YES
chroot_local_user = NO
chroot_list_file = /etc/vsftpd/chroot_list
2 、pure-ftp服务器,配置文件中存在ChrootEveryone的值为yes
3 、proftp服务器,配置文件中存在DefaultRoot ~.
4 、wu-ftp服务器,配置文件中存在restricted-uid *
检测用例信息
检查文件中chroot_list_enable是否等于YES:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^\s*#" | grep -i "^\s*chroot_list_enable\s*="
chroot_list_enable = YES
检查文件中chroot_local_user是否等于NO:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^\s*#" | grep -i "^\s*chroot_local_user\s*="
chroot_local_user = NO
检查文件中是否存在chroot_list_file的配置:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^\s*#" | grep -i "^\s*chroot_list_file\s*" | grep "^\s*chroot_list_file\s*="
存在chroot_list_file的配置
检查文件中ChrootEveryone的值是否为YES:cat /etc/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf 2 > /dev/null | grep -v "^\s*#" | grep -i "ChrootEveryone"
ChrootEveryone YES
检查文件中是否存在restricted-uid:cat /etc/ftpaccess /etc/ftpd/ftpaccess 2 > /dev/null | grep -v "^\s*#" | egrep -i "restricted-uid\s+
#### 期望结果
restricted-uid *
#### 检测结果
#### 检测描述
检查文件中是否存在DefaultRoot:cat /etc/proftpd.conf /etc/proftpd/proftpd.conf /usr/local/proftpd/etc/proftpd.conf 2>/dev/null |grep -v " ^\ s*
DefaultRoot ~.
修改建议
若服务开启,在相应的配置文件中添加配置信息:
1 、vsftp服务器,配置文件中添加如下内容:
chroot_list_enable = YES
chroot_local_user = NO
chroot_list_file = /etc/vsftpd/chroot_list
2 、或者在pure-ftp服务器,配置文件中添加ChrootEveryone的值为yes
3 、或者在proftp服务器,配置文件中添加DefaultRoot ~.
4 、或者在wu-ftp服务器,配置文件中存添加restricted-uid *
用户FTP访问安全配置
威胁等级:Medium
规则描述
用户FTP访问安全配置
审计描述
检查ftp服务状态,若服务开启,则查看以下配置:
1 、vsftp服务器,查看/etc/vsftpd.conf( /etc/vsftpd/vsftpd.conf) 是否存在如下内容:
ls_recurse_enable = YES
local_umask = 022 //设置用户上传文件的权限为 755
anon_umask = 022 //匿名用户上传文件的权限为755
2 、proftp服务器,查看proftpd.conf是否存在如下内容:
Umask 022
3 、wu-ftp服务器,如果ftpaccess文件中存在类似如下内容:
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
其文件上载权限必须为0644
4 、pure-ftp服务器,查看pure-ftpd.conf文件中是否存在如下配置:
Umask 177 :077
检测用例信息
检查文件中是否存在ls_recurse_enable的配置:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^[[:space:]]*#" | grep "^\s*ls_recurse_enable\s*="
ls_recurse_enable = YES
检查文件中是否存在local_umask的配置:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^[[:space:]]*#" | grep -i "^\s*local_umask"
local_umask = 022
检查文件中是否存在anon_umask的配置:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^[[:space:]]*#" | grep -i "^\s*anon_umask"
anon_umask = 022
检查文件中是否存在umask的配置:cat /etc/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf 2 > /dev/null | grep -v "^[[:space:]]*#" | grep -i "umask"
存在umask的配置
检查文件中是否存在upload的配置:cat /etc/ftpaccess /etc/ftpd/ftpaccess 2 > /dev/null | grep -v "^[[:space:]]*#" | grep -i "upload"
ftpaccess文件中存在类似内容:upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
检查文件中是否存在umask的配置:cat /etc/proftpd.conf /etc/proftpd/proftpd.conf 2 > /dev/null | grep -v "^[[:space:]]*#" | grep -i "umask"
umask 022
修改建议
若服务开启,则添加以下配置:
1 、vsftp服务器,/etc/vsftpd.conf( /etc/vsftpd/vsftpd.conf) 添加如下内容:
ls_recurse_enable = YES
local_umask = 022 //设置用户上传文件的权限为 755
anon_umask = 022 //匿名用户上传文件的权限为755
2 、或者在proftp服务器,proftpd.conf添加如下内容:
Umask 022
3 、或者在wu-ftp服务器,ftpaccess文件中添加类似如下内容:
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
其文件上载权限必须为0644
4 、或者在pure-ftp服务器,pure-ftpd.conf文件中添加如下配置:
Umask 177 :077
修改FTP的Banner信息
威胁等级:Low
规则描述
检查ftp服务状态,若服务开启,在相应的配置文件中检查是否设置了ftp banner信息
审计描述
检查ftp服务状态,若服务开启,在相应的配置文件中查看配置信息:
1 、vsftp服务器,查看/etc/vsftpd.conf( /etc/vsftpd/vsftpd.conf) 是否存在如下内容:
ftpd_banner = ”Authorized users only. All activity may be monitored and reported.”
2 、wu-ftp服务器,如果ftpaccess文件中存在类似如下内容:
banner /etc/ftpd/banner.msg
且/etc/ftpd/banner.msg内容非空。
3 、pure-ftp服务器,查看pure-ftpd.conf文件中是否存在如下内容:
FortunesFile < file>
且< file> 内容非空。
4 、proftpd服务器,查看proftpd.conf文件中是否存在如下内容:
DisplayConnect < file>
且< file> 内容为非空。
检测用例信息
检查文件中是否存在ftpd_banner的配置:cat /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf 2 > /dev/null | grep -v "^\s*#" | grep "ftpd_banner"
存在ftpd_banner的配置
检查文件pure-ftpd.conf中是否存在FortunesFile的配置:path= $( grep -v '^\s*#' /etc/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf 2 > /dev/null | grep -i "FortunesFile" | awk '{print $2}' ) ; if [ -n $path ] ; then cat $path 2 > /dev/null | grep -v '^\s*#' ; fi
pure-ftpd.conf文件中FortunesFile配置且配置的文件内容不为空
检查文件中ftpaccess是否存在banner的配置:path= $( grep -v "^\s*#" /etc/ftpaccess /etc/ftpd/ftpaccess 2 > /dev/null | grep -i "^\s*banner" | awk '{print $2}' ) ; if [ -n $path ] ; then cat $path 2 > /dev/null | grep -v '^\s*#' ; fi
ftpaccess文件中banner配置且配置的文件内容不为空
检查文件proftpd.conf中是否存在DisplayConnect的配置:path= $( grep -v "^\s*#" /etc/proftpd.conf /etc/proftpd/proftpd.conf 2 > /dev/null | grep -i "DisplayConnect" | awk '{print $2}' ) ; if [ -n $path ] ; then cat $path 2 > /dev/null | grep -v '^\s*#' ; fi
proftpd.conf文件中DisplayConnect配置且配置的文件内容不为空
修改建议
若服务开启,则添加以下配置:
1 、vsftp服务器,/etc/vsftpd.conf( /etc/vsftpd/vsftpd.conf) 添加如下内容:
ftpd_banner = ”Authorized users only. All activity may be monitored and reported.”
2 、或者在wu-ftp服务器,ftpaccess文件中添加类似如下内容:
banner /etc/ftpd/banner.msg
且/etc/ftpd/banner.msg内容非空。
3 、或者在pure-ftp服务器,pure-ftpd.conf文件中添加如下配置:
FortunesFile < file>
且< file> 内容非空。
4 、或者在proftp服务器,proftpd.conf添加如下内容:
DisplayConnect < file>
且< file> 内容为非空。
配置NTP
威胁等级:Low
规则描述
查看ntp服务状态,查看为目标主机配置ntp服务器的个数
审计描述
采用rpm -q ntp检查ntp服务是否有安装,没有安装则pass,若安装则检查以下ntp配置:
1 、检查NTP服务是否开启:
ps -ef| egrep "ntp|ntpd" | grep -v grep
2 、检查/etc/ntp.conf文件设置NTP时间同步服务器:
grep -v "^\s*#" /etc/ntp.conf 2 > /dev/null | egrep -i "server\s*"
检测用例信息
检查NTP服务状态: ps -ef| egrep "ntp|ntpd" | grep -v grep
NTP服务已开启
检查是否设置了NTP时间同步服务器: cat /etc/ntp.conf | grep -v "^\s*#" | egrep -i "server\s*(2(5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})(\.(2(5[0-5]|[0-4][0-9])|[0-1]?[0-9]{1,2})){3}" 2 > /dev/null
存在NTP时间同步服务器
修改建议
1 .如果NTP服务没有安装,则该项通过,
2 .如果NTP服务安装,则启动服务,并要求设置NTP时间同步服务器
配置NFS服务限制
威胁等级:Low
规则描述
检查是否存在与nfs相关的守护进程检查NFS服务开启的情况下,是否限制访问nfs的ip地址
审计描述
查看系统是否存在如下NFS守护进程: rpc.lockd,rpc.nfsd,rpc.statd,rpc.mountd,执行:
检查NFS服务开启的情况下,检查限制访问nfs的ip地址,执行: egrep -i "nfs:all|all:all" /etc/hosts.deny | grep -v "^\s*#"
检查允许访问nfs的ip地址,执行: egrep -i "nfs" /etc/hosts.allow | grep -v "^\s*#"
检测用例信息
检查允许访问nfs的ip地址: egrep -i "nfs" /etc/hosts.allow | grep -v "^\s*#"
nfs:允许访问的IP
检查限制访问nfs的ip地址: egrep -i "nfs:all|all:all" /etc/hosts.deny | grep -v "^\s*#"
nfs:all或者all:all
修改建议
编辑文件/etc/hosts.allow增加一行: nfs:允许访问的IP,编辑文件/etc/hosts.deny增加一行: nfs:all或者all:all
禁止存在心血漏洞
威胁等级:High
规则描述
检查openssl版本,判断设备是否存在心血漏洞
审计描述
查看openssl版本,判断版本是否不在下列列表中
(1.0.0、1.0.1f、1.0.1e、1.0.1d、1.0.1c、1.0.1b、1.0.1a、1.0.1、1.0.2-beta、1.0.2-beta1)
检测用例信息
修改建议
确认openssl版本不在下列列表中
(1.0.0、1.0.1f、1.0.1e、1.0.1d、1.0.1c、1.0.1b、1.0.1a、1.0.1、1.0.2-beta、1.0.2-beta1),如果在列表中需要对openssl进行更新
检查MCS Translation是否未安装
威胁等级:Medium
规则描述
mcstransd守护程序向请求信息的客户端进程提供类别标签信息。标签翻译在/etc/selinux/targeted/setrans.conf中定义。
审计描述
检查MCS Translation是否未安装,执行:rpm -q mcstrans 2 > /dev/null
检测用例信息
修改建议
执行以下以下命令移除MCS Translation:
关闭不必要启动项
威胁等级:Low
规则描述
以S开头的启动不必要服务的脚本文件个数为0
审计描述
检查/etc/rc2.d、/etc/rc3.d、/etc/rc4.d、/etc/rc5.d目录下的所有"S" 打头的脚本文件,确认以下不必要服务脚本文件名是否以“S”打头:lp| rpc| snmpdx| keyserv| nscd| Volmgt| uucp| dmi| sendmail | autoinstall
检测用例信息
修改建议
修改以下脚本文件名使其不以“S”打头,lp| rpc| snmpdx| keyserv| nscd| Volmgt| uucp| dmi| sendmail | autoinstall
检查/etc/passwd中没有遗留的“+”条目
威胁等级:Medium
规则描述
各种文件中的+字符用于系统标记在系统配置文件中的某一点插入来自NIS映射的数据。大多数系统不再需要这些条目,但可能存在于从其他平台导入的文件中
审计描述
检查/etc/passwd文件中是否存在”+“条目,执行命令:grep "^\+:" /etc/passwd
检测用例信息
修改建议
删除/etc/passwd文件中遗留的“+”条目
检查/etc/shadow中没有遗留的"+"条目
威胁等级:Medium
规则描述
各种文件中的+字符用于系统标记在系统配置文件中的某一点插入来自NIS映射的数据。大多数系统不再需要这些条目,但可能存在于从其他平台导入的文件中
审计描述
查找/etc/shadow文件中是否存在“+”的条目,执行命令:grep "^\+:" /etc/shadow
检测用例信息
修改建议
删除/etc/shadow文件中遗留的“+”条目
检查/etc/group中没有遗留的“+”条目
威胁等级:Medium
规则描述
各种文件中的+字符用于系统标记在系统配置文件中的某一点插入来自NIS映射的数据。大多数系统不再需要这些条目,但可能存在于从其他平台导入的文件中
审计描述
查找/etc/group文件中是否存在“+”条目,执行命令:grep "^\+:" /etc/group
检测用例信息
修改建议
删除/etc/group文件中遗留的“+”条目
禁止存在bash安全漏洞
威胁等级:Medium
规则描述
禁止存在bash安全漏洞
审计描述
执行如下命令查看设备是否存在bash安全漏洞。执行命令:
env -i X = "() { (a)=>\" bash -c " /dev echo vulnerable" 2 > /dev/null
检测用例信息
修改建议
升级系统的bash补丁
补丁安装
威胁等级:Low
规则描述
获取系统版本后由用户判断是否进行补丁安装
审计描述
检查系统版本然后由用户判断是否需要进行补丁安装。具体操作参照以下执行命令:cat /etc/centos-release, uname -a
检测用例信息
是否需要补丁安装:cat /etc/centos-release
由用户判断是否需要进行补丁安装
CentOS Linux release 7.9 .2009 ( Core)
是否需要补丁安装:uname -a
由用户判断是否需要进行补丁安装
Linux ecs-215417-0002 3.10 .0-1160.53.1.el7.x86_64
修改建议
对系统中/etc/yum/yum.repos.d下yum源进行配置后,采用命令yum update -y进行手动更新系统。