一、 概述
1.1 适用范围
本配置规范适用于凝思操作系统,主要涉及LINUX操作系统安全配置方面的基本要求,用于指导LINUX操作系统安全加固工作,落实信息安全等级保护等保三级系统操作系统安全配置,为主机安全配置核查提供依据。
1.2 实施策略
|--------|----------|----------------------------|-------------|
| 序号 | 配置类别 | 配置项名称 | 实施策略 |
| 1 | 身份鉴别 | 口令复杂度策略 | 合规 |
| 2 | 身份鉴别 | 登录失败账户锁定策略 | 合规 |
| 3 | 身份鉴别 | 口令最长生存期策略 | 合规 |
| 4 | 身份鉴别 | SSH 登录配置 | 合规 |
| 5 | 访问控制 | 多余账户锁定策略 | 合规 |
| 6 | 访问控制 | 共享账号检查 | 合规 |
| 7 | 访问控制 | 系统关键目录权限控制 | 合规 |
| 8 | 访问控制 | 用户缺省权限控制 | 合规 |
| 9 | 访问控制 | 禁止Control-Alt-Delete键盘关闭命令 | |
| 10 | 安全审计 | 是否开启日志审计 | |
| 11 | 安全审计 | 安全日志完备性要求 | 合规 |
| 12 | 安全审计 | 统一远程日志服务器配置 | 合规 |
| 13 | 安全审计 | 日志文件权限控制 | 不合规 rwrwx-r |
| 15 | 资源控制 | 字符操作界面账户定时退出 | 合规 |
| 16 | 资源控制 | root 账户远程登录账户限制 | 不合规 |
| 17 | 入侵防范 | 关闭不必要的服务 | 合规 |
二、 基本安全配置
本规范主要依据等级保护三级主机安全配置要求相关规范,明确SUSE LINUX操作系统安全配置的基本要求,分为身份鉴别、访问控制、安全审计、资源控制和入侵防范5个方面。
安全配置项详细描述配置要求及依据,结合LINUX操作系统配置文件,明确实现安全配置项涉及的系统配置参数和配置方法,并明确对应配置项的手工检查所对应的检查项。
2.1 身份鉴别
2.1.1 口令复杂度策略
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-1 |
| 安全配置名称 | 操作系统口令复杂度策略 |
| 配置要求内容 | 口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
| 配置要求依据 | 1、《信息系统等级保护基本要求》 主机安全---身份鉴别 b) 应对登录操作系统和数据库系统的用户进行身份标识和鉴别; c) 操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,系统的静态口令应在8位以上并由字母、数字、符号等混合组成并每三个月更换口令。 |
| 涉及的系统配置项 | 涉及系统文件:/etc/pam.d/passwd 涉及参数: Minlen //密码最小长度要求; Lcredit //小写字符数量 Ocredit //特殊字符数量 |
| 安全配置方法 | 以root账户登录系统 修改/etc/pam.d/passwd文件: #vi /etc/pam.d/passwd 确保下面行未被注释,如没有,请添加: password required /lib64/security/pam_cracklib.so retry=5 minlen=8 difok=1 | credit=1 ucredit =1 dcredit =1 ocredit=1 reject_username |
| 检查方法 | 以root账户登录系统 查看/etc/pam.d/passwd文件中是否存在口令复杂度策略配置 # cat /etc/pam.d/passwd //检查口令策略文件 //minlen=8 最小长度为8位 //lcredit=2 口令中最少应包含的字母字符数量为2个 //ocredit=1 口令中最少应包含的非字母数字字符数量为1个 |
2.1.2 登录失败账户锁定策略
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-2 |
| 安全配置名称 | 多次登录失败锁定策略 |
| 配置要求内容 | 系统应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号,root 用户不适用该项配置。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---身份鉴别 d) 应启用登录失败处理功能,可采取结束会话、限制登录间隔、限制非法登录次数和自动退出等措施 |
| 涉及的系统配置项 | 涉及系统文件:/etc/pam.d/sshd /etc/pam.d/login /etc/pam.d/kde 涉及参数: audit deny //允许的账户登录重试次数 |
| 安全配置方法 | 修改/etc/pam.d/sshd /etc/pam.d/login /etc/pam.d/kde,增加一行 auth required /lib64/security/pam_tally.so per_user unlock_time=300 onerr=succeed audit deny=5 |
| 检查方法 | 以root账户登录SUSE Linux系统 #cat /etc/pam.d/login; 查看是否有锁定配置; |
| 备注 | |
2.1.3 口令最长生存期策略
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-3 |
| 安全配置名称 | 口令最长生存期策略 |
| 配置要求内容 | 要求操作系统的账户口令的最长生存期不长于 90 天。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---身份鉴别 c) 操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,系统的静态口令应在7位以上并由字母、数字、符号等混合组成并每三个月更换口令; |
| 涉及的系统配置项 | 涉及系统文件:/etc/login.defs 涉及参数: PASS_MAX_DAYS //密码最长使用期限 PASS_MIN_DAYS //密码最短使用期限 PASS_WARN_AGE //系统在密码过期指定天数前发出修改密码的警告信息给用户 |
| 安全配置方法 | 对未创建的用户进行设置: 查看 /etc/login.defs,修改PASS_MAX_DAYS值为小于等于90 #vi /etc/login.defs PASS_MAX_DAYS 90 //密码最长使用期限为90天 PASS_MIN_DAYS 0 //密码最短使用期限为0天 PASS_WARN_AGE 10 //密码到期10天前提醒 对已创建的用户进行设置: chage --M 90 用户名 |
| 检查方法 | 查看/etc/login.defs 文件中"PASS_MAX_DAYS"值小于等于90为符合; 查看用户口令过期时间的命令:chage --l 用户名 |
| 备注 | |
2.1.4 SSH 登录配置
|--------------|----------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-4 |
| 安全配置名称 | SSH 登录配置 |
| 配置要求内容 | 系统应配置使用SSH 等加密协议进行远程登录维护,并安全配置SSHD的设置。不使用 TELENT 进行远程登录维护。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---身份鉴别 e)主机系统应对与之相连的服务器或终端设备进行身份标识和鉴别 当对服务器进行远程管理时,应采取加密措施,防止鉴别信息在网络 传输过程中被窃听。 |
| 涉及的系统配置项 | 无 |
| 安全配置方法 | |
| 检查方法 | netstat --ano | grep |
| 备注 | |
2.2 访问控制
2.2.1 多余账户锁定策略
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-5 |
| 安全配置名称 | 多余账户锁定策略 |
| 配置要求内容 | 应锁定与设备运行、维护等工作无关的账号。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---访问控制 e)应及时删除多余的、过期的账户,避免共享账户的存在。 |
| 涉及的系统配置项 | 涉及系统文件:/etc/password 涉及参数:无 |
| 安全配置方法 | 以root账户登录SUSE Linux系统 锁定用户方法一: 修改/etc/password文件,将需要锁定的用户的shell域后添加nologin; #vi /etc/passwd test:x:1000:100:SUSE-LINUX:/home/test:/bin/bash/nologin 锁定用户方法二: 在超级权限的账户下使用"passwd"命令 #passwd --l username //锁定账户; #passwd --d username//解锁用户; 解锁用户后需重新设置密码,且/etc/passwd文件内容不会发生变化。该操作比较麻烦,不推荐使用。 一般情况下,需要锁定的用户:rocky/news/games |
| 检查方法 | 以root账户登录系统 # cat /etc/password 查看多余账户的shell域为nologin/flase为符合; |
| 备注 | |
2.2.2 共享账号检查
|--------------|-------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统--LINUX--配置-6 |
| 安全配置名称 | 共享账号检查 |
| 配置要求内容 | 系统需按照实际用户分配账号; 应按照不同的用户分配不同的账号,避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---访问控制 e)应及时删除多余的、过期的账户,避免共享账户的存在。 |
| 涉及的系统配置项 | 无 |
| 安全配置方法 | 以root账户登录系统 如需建立用户,参考如下: #useradd username //创建账号 #passwd username //设置密码 使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。 |
| 检查方法 | 以root账户登录系统 #cat /etc/passwd 输出所有用户信息后,与管理员确认是否有共享账号情况存在。 |
| 备注 | |
2.2.3 系统关键目录权限控制
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-7 |
| 安全配置名称 | 关键目录权限控制 |
| 配置要求内容 | 根据安全需要,配置某些关键目录其所需的最小权限; 重点设置password、shadow、group、service、login.defs、xinetd.conf、security、ssh_config文件权限。 当前主流版本的linux系统在默认情况下即对重要文件做了必要的权限设置,在日常管理和操作过程中应避免修改此类文件权限,除此以外,应定期对权限进行检查及复核,确保权限设置正确。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---访问控制 应启用访问控制功能,依据安全策略控制用户对资源的访问。 |
| 涉及的系统配置项 | 涉及系统文件:/etc/passwd,/etc/shadow,/etc/group,/etc/services,/etc/login.def,/etc/xinetd.conf,/etc/security,/etc/ssh/ssh_config 涉及参数:无 |
| 安全配置方法 | 以root账户登录系统 通过chmod命令对目录的权限进行实际设置。 /etc/passwd 所有用户都可读,root用户可写 --rw-r---r--- 配置命令:chmod 644 /etc/passwd /etc/shadow 只有root可读写 --rw------- 配置命令:chmod 600 /etc/shadow; /etc/group 必须所有用户都可读,root用户可写 --rw-r---r--- 配置命令:chmod 644 /etc/group; /etc/services必须所有用户都可读,root用户可写 --rw-r---r--- 配置命令:chmod 644 /etc/service; /etc/login.defs必须所有用户都可读,root用户可写 --rw-r---r--- 配置命令:chmod 644 /etc/login.defs; /etc/xinetd.conf只有root可读写--rw------- 配置命令:chmod 600 /etc/xinetd.conf; /etc/security只有root可读写 --rw------- 配置命令:chmod 600 /etc/security; /etc/ssh/ssh_config只有root可读写 --rw------- 配置命令:chmod 600 /ssh/ssh_config; |
| 检查方法 | 以root账户登录SUSE Linux系统 查看关键目录的用户对应权限参考命令 # ls --l /etc/passwd //查看passwd文件是否为644权限 # ls --l /etc/shadow //查看shadow文件是否为600权限 # ls --l /etc/group //查看group文件是否为644权限 # ls --l /etc/service //查看service文件是否为644权限 # ls --l /etc/login.defs //查看login.defs是否为644权限 # ls --l /etc/xinetd.conf //查看xinetd.conf文件是否为600权限 # ls --l /etc/security //查看security文件是否为600权限 # ls -l /ssh/ssh_config //查看ssh_config文件是否为600权限 |
| 备注 | 在UNIX类系统中777是最高权限,4是读,2是写,1是执行,加起来等于7,三个7分别代表系统用户,本组用户和其他用户的权限。 |
2.2.4 用户缺省权限控制
|--------------|---------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-8 |
| 安全配置名称 | 用户缺省权限控制 |
| 配置要求内容 | 控制用户缺省访问权限,当在创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限,防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。全局默认设置umask值应为027或更小权限。 |
| 配置要求依据 | 《信息系统等级保护基本要求》 主机安全---访问控制 b)应根据管理用户的角色(如:系统管理员、安全管理员、安全审计员等)分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限。 |
| 涉及的系统配置项 | 涉及系统文件:.profile 涉及参数: Umask //用户创建文件的默认权限 |
| 安全配置方法 | 以root账户登录系统 单独针对用户设置 可修改用户home目录下的.profile脚本文件,在文件末尾增加一条行:umask 027 全局默认设置: 修改/etc目录下的 profile脚本文件,在文件末尾增加一条行:umask 027 |
| 检查方法 | 以root账户登录系统 查看全局默认umask值 # cat /etc/profile | grep umask 查看特定用户umask值 # cat $home/.profile | grep umask |
| 备注 | umask系统默认设置一般为022,新创建的文件默认权限755(777-022=755);导致其他用户有执行权利。 在UNIX类系统中777是最高权限,4是读,2是写,1是执行,加起来等于7,三个7分别代表系统用户,本组用户和其他用户的权限。 |
2.2.5 禁止Control-Alt-Delete键盘关闭命令
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-9 |
| 安全配置名称 | 禁止Control-Alt-Delete键盘关闭命令 |
| 配置要求内容 | 禁止Control-Alt-Delete键盘关闭命令,使得在控制台直接按ctl-alt-del不能重新启动计算机。 |
| 配置要求依据 | 建议禁用此类危险操作,规避恶意操作或误操作带来的风险 |
| 涉及的系统配置项 | 涉及系统文件:/etc/inittab 涉及参数:无 |
| 安全配置方法 | 以root账户登录SUSE Linux系统 在"/etc/inittab" 文件中注释掉下面这行(使用#):ca::ctrlaltdel:/sbin/shutdown -t3 -r now 改为:#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 输入如下命令使改动生效:# /sbin/init q |
| 检查方法 | 以root账户登录SUSE Linux系统 #cat /etc/inittab 确认如下行是否被注释: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now |
| 备注 | |
2.3 安全审计
2.3.1 是否开启日志审计
|--------------|----------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-10 |
| 安全配置名称 | 是否开启日志审计 |
| 配置要求内容 | 系统应配置完备日志记录,记录对与系统相关的安全事件。 |
| 配置要求依据 | 主机安全---安全审计 |
| 涉及的系统配置项 | 涉及系统文件:/etc/init.d/auditd |
| 安全配置方法 | 手动开启审计功能: /etc/init.d/auditd start |
| 检查方法 | 以root账户登录系统,检查审计功能是否开启 ps --ef |grep auditd |
| 备注 | |
2.3.1 安全日志完备性要求
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-10 |
| 安全配置名称 | 安全日志完备性要求 |
| 配置要求内容 | 系统应配置完备日志记录,记录对与系统相关的安全事件。 |
| 配置要求依据 | 主机安全---安全审计 b) 审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用、账号的分配、创建与变更、审计策略的调整、审计系统功能的关闭与启动等系统内重要的安全相关事件。 c) 审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等 |
| 涉及的系统配置项 | 涉及系统文件:/etc/syslog.conf,/usr/lib/acct/accton 涉及参数: LASTLOG_ENAB //登录日志 |
| 安全配置方法 | 以root账户登录SUSE Linux系统 修改配置文件,记录与设备相关的安全事件 #vi /etc/syslog.conf。 配置如下类似语句: *.err /var/log/errors authpriv.info /var/log/authpriv_info *.info /var/log/info auth.none /var/log/auth_none 修改配置文件,记录用户登录信息 #vi /etc/login.defs 修改LASTLOG_ENAB的属性: LASTLOG_ENAB yes 开启系统记账功能 通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行/usr/lib/acct目录下的accton文件,格式如下 #/usr/lib/acct/accton /var/adm/pact 开启acct服务: #chkconfig acct on 执行读取命令 #lastcomm [user name] |
| 检查方法 | 以root账户登录SUSE Linux系统 确认已配置设备安全日志 #cat /etc/syslog.conf 确认已配置记录用户登录信息 #cat /etc/login.defs | grep LASTLOG_ENAB 确认开启系统记账功能 #chkconfig --list | grep acct |
| 备注 | |
2.3.2 统一远程日志服务器配置
|--------------|------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-11 |
| 安全配置名称 | 统一远程日志服务器配置 |
| 配置要求内容 | 当前系统应配置远程日志功能,将需要重点关注的日志内容传输到日志服务器进行备份。 |
| 配置要求依据 | 主机安全---安全审计 f)应保护审计记录,避免受到未预期的删除、修改或覆盖等,保存时间不少于半年。 |
| 涉及的系统配置项 | 涉及系统文件:/etc/syslog.conf |
| 安全配置方法 | 以root账户登录系统 修改配置文件 #vi /etc/syslog.conf, 增加syslog服务器配置: *.* @logserver 保存退出后重新启动syslog服务: # services syslogd restart |
| 检查方法 | 以root账户登录系统 查看syslog.conf中是否配置了远程日志服务器 #cat /etc/syslog.conf *.* @ logserver |
| 备注 | 可以将"*.*"替换为实际需要的日志信息。比如:*.err / *.info 等等;可以将此处192.168.0.1替换为实际的IP或域名。 |
2.3.3 日志文件权限控制
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统-- LINUX --配置-12 |
| 安全配置名称 | 日志文件权限控制 |
| 配置要求内容 | 系统应合理配置日志文件权限,控制对日志文件读取、修改和删除等操作。 |
| 配置要求依据 | 主机安全---访问控制 应启用访问控制功能,依据安全策略控制用户对资源的访问。 |
| 涉及的系统配置项 | 涉及系统文件:/var/log |
| 安全配置方法 | 以root权限账户登录系统 修改文件权限: 配置日志文件权限,如下命令: chmod 600 /var/log/authpriv_info chmod 644 /var/log/errors chmod 644 /var/log/info chmod 644 /var/log/auth_none |
| 检查方法 | 以root权限账户登录系统 #ls --l /var/log 查看的目录下日志文件的权限,syslog messages的权限应为644,如下所示: -rw-r---r-- 1 root root errors -rw-r---r-- 1 root bin info -rw-r---r-- 1 root bin auth_none authpriv_info的权限应为600,如下所示: -rw------- 1 root root authpriv_info |
| 备注 | |
2.4 资源控制
2.4.1 字符操作界面账户定时退出
|--------------|--------------------------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统--LINUX--配置-14 |
| 安全配置名称 | 字符操作界面账户定时退出 |
| 配置要求内容 | 对于具备字符交互界面的系统,应配置定时帐户自动登出,超时时间为300秒。如不使用字符交互界面,该配置可忽略。 |
| 配置要求依据 | 主机安全---资源控制 b) 应根据安全策略设置登录终端的操作超时锁定。 |
| 涉及的系统配置项 | 涉及系统文件:/etc/profile, 涉及参数:TMOUT //超时时间 |
| 安全配置方法 | 对于bash用户: 在/etc/profile中增加export TMOUT=600 #vi /etc/profile export TMOUT=600 针对tcsh用户: 在/etc/csh.cshrc中增加set --r autologout=10 |
| 检查方法 | cat /etc/profile| grep TMOUT cat /etc/csh.cshrc |
| 备注 | 仅适用于使用字符界面操作的系统。 |
2.4.2 root 账户远程登录限制
|--------------|-------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-15 |
| 安全配置名称 | root账户远程登录账户限制 |
| 配置要求内容 | 限制具备超级管理员权限的用户远程登录。 远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作;既要限制远程telent登录;又要限制ssh登录。 |
| 配置要求依据 | 主机安全---资源控制 a) 应通过设定终端接入方式、网络地址范围条件限制登录; |
| 涉及的系统配置项 | 无 |
| 安全配置方法 | 以root账户登录系统 禁止root远程登录: # vi /etc/ssh/sshd_config PermitRootLogin no 重启使之生效, /etc/init.d/sshd restart |
| 检查方法 | cat /etc/ssh/sshd_config | grep PermitRootLogin |
| 备注 | |
2.5 入侵防范
2.5.1 关闭不必要的服务
|--------------|------------------------------------------------------------------------------------------------------------|
| 安全配置编号 | 操作系统---LINUX---配置-17 |
| 安全配置名称 | 关闭不必要的网络和系统服务 |
| 配置要求内容 | 根据每台机器的不同角色,关闭不需要的系统服务。如无特殊需要,应关闭lpd,telnet,routed,sendmail, bluetooth,identd,xfs,rlogin,rwho,rsh,rexec服务。 |
| 配置要求依据 | 主机安全---入侵防范 c) 操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器、系统软件预防性维护服务等方式保持系统补丁及时得到更新。 |
| 涉及的系统配置项 | 无 |
| 安全配置方法 | |
| 检查方法 | netstat -ano |