1、版 本 号 : 1.0.0Linux 操 作 系 统安 全 配 置 规 范目录1 概述 11.1 适用范围 .11.2 外部引用说明 .11.3 术语和定义 .11.4 符号和缩略语 .12 LINUX 设备安全配置要求 12.1 账号管理、认证授权 .22.1.1 账号 .22.1.2 口令 .42.1.3 授权 .102.2 日志配置要求 .112.3 IP 协议安全配置要求 .132.3.1 IP 协议安全 132.4 设备其他安全配置要求 .142.4.1 检查 SSH 安全配置 142.4.2 检查是否启用信任主机方式,配置文件是否配置妥当 .152.4.3 检查是否关闭不必要服务
2、.152.4.4 检查是否设置登录超时 .162.4.5 补丁管理 .1711 概述1.1 适用范围本规范适用于 LINUX 操作系统的设备。本规范明确了 LINUX 操作系统配置的基本安全要求,在未特别说明的情况下,适用于 Redhat 与 Suse 操作系统版本。1.2 外部引用说明1.3 术语和定义1.4 符号和缩略语(对于规范出现的英文缩略语或符号在这里统一说明。 )缩写 英文描述 中文描述2 LINUX 设备安全配置要求本规范所指的设备为采用 LINUX 操作系统的设备。本规范提出的安全配置要求,在未特别说明的情况下,均适用于采用 LINUX 操作系统的设备。本规范从运行 LINUX
3、 操作系统设备的认证授权功能、安全日志功能、IP网络安全功能,其他自身安全配置功能四个方面提出安全配置要求。22.1 账号管理、认证授权2.1.1 账号2.1.1.1 检查是否删除或锁定无关账号检查项名称 检查是否删除或锁定无关账号中文编号英文编号要求内容 应删除或锁定与设备运行、维护等工作无关的账号。 检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 1、执行:#more /etc/passwd /etc/shadow查看是否存在以下可能无用的帐户:lp uucp nobody games rpm smmsp nfsnobo
4、dy。Adm、sync 、 shutdown、halt、news 、operator判定条件 lp uucp nobody games rpm smmsp nfsnobody 这些帐户不存在或者它们的密码字段为! ,则这些帐户被锁定,符合安全要求,否则低于安全要求。补充说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/passwd /etc/passwd_bak#cp -p /etc/shadow /etc/shadow_bak2、锁定无用帐户:方法一:#vi /etc/shadow在需要锁定的用户名的密码字段前面加!,如test:!$1$QD1ju03H$LbV4vdBbp
5、w.MY0hZ2D/Im1:14805:0:99999:7:方法二:#passwd -l test3、将/etc/passwd 文件中的 shell 域设置成/bin/false 。补充操作说明 lp uucp nobody games rpm smmsp nfsnobodyAdm、sync 、 shutdown、halt、news 、operator 这些帐户不存在或者它们的密码字段为!32.1.1.2 检查是否限制 root 远程登录检查项名称 检查是否限制 root 远程登录中文编号英文编号要求内容 限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录
6、后,再切换到超级管理员权限账号后执行相应操作。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 查看配置文件# more /etc/securetty# more /etc/ssh/sshd_config判定条件 # more /etc/securetty检查是否有下列行:pts/x( x 为一个十进制整数)#more /etc/ssh/sshd_config检查下列行设置是否为 no 并且未被注释:PermitRootLogin不存在 pts/x 则禁止了 telnet 登录,PermitRootLogin no 禁止了 s
7、sh 登录,符合以上条件则禁止了 root 远程登录,符合安全要求,否则低于安全要求。补充说明 # Authentication:#LoginGraceTime 2m#PermitRootLogin yes#StrictModes yes#MaxAuthTries 6PermitRootLogin 的值改为 no,不允许 root 远程登录加固方案类别参考操作配置 1、执行备份:#cp -p /etc/securetty /etc/securetty_bak#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak2、新建一个普通用户并设置高强度密
8、码:#useradd username#passwd username3、禁止 root 用户远程登录系统:#vi /etc/securetty注释形如 pts/x 的行,保存退出,则禁止了 root 从 telnet 登录。#vi /etc/ssh/sshd_config修改 PermitRootLogin 设置为 no 并不被注释,保存退出,则禁止了root 从 ssh 登录。4#/etc/init.d/sshd restart补充操作说明 以下为测试 telnet 登录结果:/etc/pam.d/login /etc/seruretty 结果注释掉 存在文件,存在 PTS 能登录注释掉
9、存在文件,不存在 PTS 不能登录注释掉 不存在文件 能登录不注释 不存在文件 能登陆不注释 存在文件,不存在 PTS 不能登录不注释 存在文件,存在 PTS 能登录/etc/ssh/sshd_config 文件中 PermitRootLogin 值为 no,并且/etc/security/user 下值为 pts2.1.2 口令2.1.2.1 检查口令策略设置是否符合复杂度要求检查项名称 检查口令策略设置是否符合复杂度要求中文编号 安全要求-设备-通用- 配置-4英文编号要求内容 对于采用静态口令认证技术的设备,口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 2
10、 类。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 #more /etc/pam.d/system-auth检查以下参数配置:password requisite pam_cracklib.so dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 minclass=2 minlen=8password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok是否配置了 minlen=8,minclass=2。或
11、者password requisite pam_passwdqc.so min=disabled,24,12,8,7 passphrase=3password sufficient pam_unix.so nullok use_authtok md5 shadow是否配置了 min=N0,N1,N2,N3,N4。其中 N1 代表使用两种字符时,5口令最短长度。判定条件 使用 pam_cracklib 模块时,配置了 minclass 大于等于 2,minlen 大于等于 6,符合安全要求,否则低于安全要求;如果使用 pam_passwdqc 模块,配置了 min=N0,N1,N2,N3,N4,
12、其中 N1大于等于 6,符合安全要要求,否则低于安全要求。补充说明 可使用 pam pam_cracklib module 或 pam_passwdqc module 实现密码复杂度,两者不能同时使用。pam_cracklib 主要参数说明:tretry=N:重试多少次后返回密码修改错误difok=N:新密码必需与旧密码不同的位数dcredit=N:N = 0 密码中最多有多少个数字; N = 0 密码中最多有多少个数字; N 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 执行:# more /etc/login.defs检查 PASS_MAX_DAYS/P
13、ASS_MIN_DAYS/PASS_WARN_AGE 参数。判定条件 PASS_MAX_DAYS 值不大于 90 天则符合安全要求,否则低于安全要求。补充说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/login.defs /etc/login.defs_bak82、修改策略设置:#vi /etc/login.defs修改 PASS_MIN_LEN 的值为 8,修改 PASS_MAX_DAYS 的值为90,按要求修改 PASS_MIN_DAYS/PASS_WARN_AGE 的值,保存退出补充操作说明 /etc/login.defs 文件中 PASS_MAX_DAYS 值不大
14、于 902.1.2.3 检查口令重复次数限制检查项名称 检查口令重复次数限制中文编号 安全要求-设备-通用- 配置-6- 可选英文编号要求内容 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近 5 次(含 5 次)内已使用的口令。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 #cat /etc/pam.d/system-auth检查 password required pam_unix.so 所在行是否存在 remember=5判定条件 存在 remember 大于等于 5,则符合安全要求,否则低于安全要
15、求。补充说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak2、创建文件/etc/security/opasswd,并设置权限:#touch /etc/security/opasswd#chown root:root /etc/security/opasswd#chmod 600 /etc/security/opasswd3、修改策略设置:#vi /etc/pam.d/system-auth在 password required pam_unix.so 所在行增加 remember=5,保存
16、退出;补充操作说明 /etc/pam.d/system-auth 文件中存在 passwordxxxremember=值大于等于52.1.2.4 检查口令锁定策略9检查项名称 检查口令锁定策略中文编号 安全要求-设备-通用- 配置-7- 可选英文编号要求内容 对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6 次(不含 6 次),锁定该用户使用的账号。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 1、执行:#cat /etc/pam.d/system-auth检查是否存在auth required pam_
17、env.soauth required pam_tally2.so deny=6 onerr=fail no_magic_root unlock_time=120判定条件 存在 deny 的值小于等于 6,则符合安全要求,否则低于安全要要求。补充说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak2、修改策略设置:#vi /etc/pam.d/system-auth增加 auth required pam_tally2.so deny=6 onerr=fail no_magic_root u
18、nlock_time=120到第二行。保存退出;补充操作说明 使配置生效需重启服务器。root 帐户不在锁定范围内。帐户被锁定后,可使用 faillog -u -r 或 pam_tally -user -reset解锁。/etc/pam.d/system-auth 文件中存在 deny 的值小于等于 62.1.2.5检查 FTP 是否禁止匿名登录 检查项名称 检查 FTP 是否禁止匿名登录中文编号英文编号要求内容 FTP 是否禁止匿名登录。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 执行命令:ftp localhost输
19、出成果:使用 anonymous 用户登录, 输入密码:,测试是否10成功。判定条件 符合:使用 anonymous 用户登录, 输入密码:,登录失败不符合:使用 anonymous 用户登录, 输入密码:,登录成功补充说明加固方案类别参考操作配置补充操作说明2.1.2.6检查是否存在弱口令检查项名称 检查是否存在弱口令中文编号英文编号要求内容 用户密码不能是易猜测破解的简单密码,要求修改为复杂密码,符合密码复杂度要求并且不易联想猜测的密码检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 查看密码是否是易猜测破解的简单密码判定
20、条件 是否存在弱口令补充说明加固方案类别参考操作配置 更改口令使口令满足复杂度要求并且不易猜测补充操作说明2.1.3 授权2.1.3.1 检查帐号文件权限设置检查项名称 检查帐号文件权限设置中文编号英文编号要求内容 在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 2010-03-0311检查方式 自动检测操作步骤 执行:#ls -l /etc/passwd /etc/shadow /etc/group/etc/passwd 必须所有用户都可读,root 用户可写 rw-rr/etc/shadow 只有 roo
21、t 可读 r-/etc/group 必须所有用户都可读, root 用户可写 rw-rr判定条件 /etc/passwd 权限为 644,/etc/shadow 权限为 400,/etc/group 权限为644,则符合安全要要求,如果权限高,则低于安全要求。补充说明加固方案类别参考操作配置 1、执行备份:#cp p /etc/passwd /etc/passwd_bak#cp p /etc/shadow /etc/shadow_bak#cp p /etc/group /etc/group_bak2、修改文件权限:#chmod 0644 /etc/passwd#chmod 0400 /etc/
22、shadow#chmod 0644 /etc/group补充操作说明 /etc/passwd 权限为 644,/etc/shadow 权限为 400,/etc/group 权限为6442.2 日志配置要求本部分对 LINUX 操作系统设备的日志功能提出要求,主要考察设备所具备的日志功能,确保发生安全事件后,设备日志能提供充足的信息进行安全事件定位。根据这些要求,设备日志应能支持记录与设备相关的重要事件,包括违反安全策略的事件、设备部件发生故障或其存在环境异常等,以便通过审计分析工具,发现安全隐患。如出现大量违反 ACL 规则的事件时,通过对日志的审计分析,能发现隐患,提高设备维护人员的警惕性,
23、防止恶化。2.2.1.1 检查是否记录安全事件日志检查项名称 检查是否记录安全事件日志中文编号英文编号要求内容 设备应配置日志功能,记录对与设备相关的安全事件。12检查项类型 日志配置 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 执行:#more /etc/syslog.conf存在类似如下语句:*.err;kern.debug;daemon.notice; /var/log/messages判定条件 存在类似*.err;kern.debug;daemon.notice; /var/log/messages 配置,则符合安全要求,否则低于安全要求。补充
24、说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/syslog.conf /etc/syslog.conf_bak2、修改配置:#vi /etc/syslog.conf配置形如*.err;auth.info /var/adm/messages 的语句,保存退出3、重启 syslog 服务#/etc/init.d/syslog stop#/etc/init.d/syslog start补充操作说明 /etc/syslog.conf 文件中存在*.info 或者 filter f_messages 或者*.err;auth.info2.2.1.2 检查是否配置远程日志保存检查项名
25、称 检查是否配置远程日志保存中文编号 安全要求-设备-通用- 配置-14- 可选英文编号要求内容 设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。检查项类型 日志配置 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 Redhat6 以下版本执行:#more /etc/syslog.confRedhat6 以上版本执行:#more /etc/rsyslog.conf存在类似如下语句:*.* 10.4.83.218 或者*.* 10.4.83.217判定条件 配置日志发送到远程日志服务器,则符合安全要求,否则低于安全要求。补充说明加固方案类别1
26、3参考操作配置 1、执行备份:#cp -p /etc/syslog.conf /etc/syslog.conf_bak(Redhat6 以上版本使用rsyslog 替换 syslog)2、修改配置:#vi /etc/syslog.conf(Redhat6 以上版本使用 rsyslog 替换 syslog)加上这一行:*.* 10.4.83.218 或者 *.* 10.4.83.217可以将“*.*“替换为你实际需要的日志信息。比如:kern.* / mail.* 等等。10.4.83.218 与 10.4.83.217 修改为实际的日志服务器。*.*和之间为一个 Tab。3、重启 syslog
27、 服务#/etc/init.d/syslog stop#/etc/init.d/syslog start补充操作说明 /etc/syslog.conf 中存在类似 IP 或者 udp IP注意: *.*和之间为一个 Tab2.3 IP 协议安全配置要求2.3.1 IP 协议安全2.3.1.1 检查 SNMP 配置- 修改 SNMP 的默认Community检查项名称 检查 SNMP 配置-修改 SNMP 的默认 Community中文编号 安全要求-设备-LINUX-配置-21-可选英文编号要求内容 如果采用了默认的 SNMP 配置,那么,SNMP 的通讯字符串将是默认的public(只读)和
28、 private(可写),应对其进行更改。检查项类型 其他配置 - 操作系统 - LINUX发布日期 2010-03-03检查方式 自动检测操作步骤 1、检查 SNMP 是否开启,若未开启,则符合要求。若开启,执行第 2 步。检查操作:chkconfig -list snmpd 显示 snmpd 服务是否启动,所有运行级别下均为关闭,则符合要求。142、若 SNMP 开启,检查是否使用默认字符串,如未修改,则不符合要求。检查操作:R 执行:cat /etc/snmp/snmpd.conf输出结果:检查 SNMP 的通讯字符串 rocommunity 或 rwcommunity 是否是默认的 p
29、ublic(只读)和 private(可写)(备注:应更改默认团体名 public 和 private,才能满足安全要求)判定条件 符合:未开启 SNMP 或连接字符串未设置为 public、private不符合:连接字符串设置为 public、private补充说明加固方案类别参考操作配置补充操作说明2.4 设备其他安全配置要求本部分作为对于 LINUX 操作系统设备除账号认证、日志、协议等方面外的安全配置要求的补充,对 LINUX 操作系统设备提出上述安全功能需求。包括补丁升级、文件系统管理等其他方面的安全能力,该部分作为前几部分安全配置要求的补充。2.4.1 检查 SSH 安全配置检查项
30、名称 检查 SSH 安全配置中文编号英文编号要求内容 检查是否只允许协议 2检查项类型 账号口令和认证授权 - 操作系统 - LINUX发布日期 检查方式检测操作步骤 检查操作:执行:grep Protocol /etc/ssh/sshd_config输出结果:“Protocol 2” (备注:若为“Protocol 2”则符合安全要求。 )备注:如果 Protocol 行被注释,利用 SSH 登录工具(如SecureCRT)登录,如果允许协议 1,则不符合要求。15判定条件 符合:Protocol 2不符合:Protocol 2 不存在或被注释补充说明加固方案类别参考操作配置补充操作说明2.
31、4.2 检查是否启用信任主机方式,配置文件是否配置妥当检查项名称 检查是否启用信任主机方式,配置文件是否配置妥当中文编号英文编号要求内容 检查 root,数据库管理账号目录下的.rhosts、hosts.equiv检查项类型 其他配置 - 操作系统 - LINUX发布日期 检查方式检测操作步骤 执行命令:cat $HOME/.rhosts 或者 cat /etc/hosts.equiv结果输出:( 不能设置 +,要配置具体的 IP 地址或主机名)判定条件 符合:/.rhosts 、/etc/hosts.equiv 不存在+、只配置了具体 IP 地址或主机名不符合:/.rhosts 、/etc/
32、hosts.equiv 存在+补充说明加固方案类别参考操作配置补充操作说明2.4.3 检查是否关闭不必要服务检查项名称 检查是否关闭不必要服务中文编号英文编号要求内容 列出所需要服务的列表(包括所需的系统服务) ,不在此列表的服务需关闭。检查项类型 其他配置 - 操作系统 - LINUX16发布日期 检查方式检测操作步骤 执行:#chkconfig -list #所有服务的开启关闭列表检查基本的网络服务的开启或禁止情况,以下服务都需要关闭:amanda chargen chargen-udp cups cups-lpd daytime daytime-udp echo echo-udp ekl
33、ogin ekrb5-telnet finger gssftp imap imaps ipop2 ipop3 klogin krb5-telnet kshell ktalk ntalk rexec rlogin rsh rsync talk tcpmux-server telnet tftp time-dgram time-stream uucp;shell, login, exec, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd,sendmail判定条件 以下服务都需要关闭:amanda chargen chargen-udp
34、cups cups-lpd daytime daytime-udp echo echo-udp eklogin ekrb5-telnet finger gssftp imap imaps ipop2 ipop3 klogin krb5-telnet kshell ktalk ntalk rexec rlogin rsh rsync talk tcpmux-server telnet tftp time-dgram time-stream uucp;shell, login, exec, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd
35、,sendmail补充说明加固方案类别参考操作配置 1、#chkconfig -list2、禁止非必要服务:#chkconfig service off开启服务为:#chkconfig service on补充操作说明 以下服务都需要关闭:amanda chargen chargen-udp cups cups-lpd daytime daytime-udp echo echo-udp eklogin ekrb5-telnet finger gssftp imap imaps ipop2 ipop3 klogin krb5-telnet kshell ktalk ntalk rexec rlo
36、gin rsh rsync talk tcpmux-server telnet tftp time-dgram time-stream uucp;shell, login, exec, finger, auth,Anancron,Cups,Gpm,Isdn,Kudzu,Pcmcia,Rhnsd,sendmail2.4.4 检查是否设置登录超时检查项名称 检查是否设置登录超时中文编号英文编号要求内容 对于具备字符交互界面的设备,应配置定时帐户自动登出。17检查项类型 其他配置 - 操作系统 - LINUX发布日期 检查方式检测操作步骤 1、 查看/etc/profile 文件中是否有 TMOUT
37、;#cat /etc/profile |grep -i TMOUT2、 查看文件/etc/csh.cshrc 中是否有 set autologout =30#cat /etc/csh.cshrc |grep -i autologout判定条件 如果文件 cat /etc/profile 中配置了超时参数,则符合安全要求,否则低于安全要求。符合:设置了 TMOUT 选项【180 为建议值】补充说明加固方案类别参考操作配置 1、执行备份:#cp -p /etc/profile /etc/profile_bak#cp -p /etc/csh.cshrc /etc/csh.cshrc_bak2、在/e
38、tc/profile 文件增加以下两行:#vi /etc/profileTMOUT=180export TMOUT3、修改/etc/csh.cshrc 文件,添加如下行:set autologout=30改变这项设置后,重新登录才能有效补充操作说明 /etc/profile 文件中 TMOUT 值小于等于 600 或者/etc/csh.cshrc 文件中autologout 小于等于 6002.4.5 补丁管理2.4.5.1 检查是否安装系统补丁检查项名称 检查是否安装系统补丁中文编号英文编号要求内容 应根据需要及时进行补丁装载。对服务器系统应先进行兼容性测试。检查项类型 其他配置 - 操作系
39、统 - LINUX发布日期 检查方式 自动检测操作步骤 对于 Redhat 系统,版本查看方法:cat /etc/redhat-release对于 SuSe 系统,查看/etc/SuSe-release 文件:18SUSE Linux Enterprise Server 10 (x86_64)VERSION = 10PATCHLEVEL = 1判定条件 1. 验证方法:# uname -a2. 预期结果:系统安装必要的补丁。补充说明加固方案类别参考操作配置 可以使用 Online Update 或 Patch CD Update 等方式升级系统补丁。 补充操作说明 安装未经过产品进行兼容性测试的补丁,对业务正常运行造成的影响难以预料。通过集团工单发布的补丁确认那些系统补丁需要安装