1、Linux 系统安全配置基线Linux 系统安全配置基线ii目 录第 1 章 概述 .11.1 目的 .11.2 适用范围 .11.3 适用版本 .1第 2 章 安装前准备工作 .12.1 需准备的光盘 .1第 3 章 操作系统的基本安装 .13.1 基本安装 .1第 4 章 账号管理、认证授权 .24.1 账号 .24.1.1 用户口令设置 24.1.2 检查是否存在除 root 之外 UID 为 0 的用户 34.1.3 检查多余账户 34.1.4 分配账户 44.1.5 账号锁定 44.1.6 检查账户权限 54.2 认证 .54.2.1 远程连接的安全性配置 54.2.2 限制 ssh
2、 连接的 IP 配置 .64.2.3 用户的 umask 安全配置 64.2.4 查找未授权的 SUID/SGID 文件 .74.2.5 检查任何人都有写权限的目录 74.2.6 查找任何人都有写权限的文件 84.2.7 检查没有属主的文件 84.2.8 检查异常隐含文件 9第 5 章 日志审计 .105.1 日志 .105.1.1 syslog 登录事件记录 .105.2 审计 .105.2.1 Syslog.conf 的配置审核 .105.2.2 日志增强 115.2.3 syslog 系统事件审计 .11第 6 章 其他配置操作 .126.1 系统状态 .126.1.1 系统超时注销 1
3、26.2 LINUX 服务 .12Linux 系统安全配置基线iii6.2.1 禁用不必要服务 12第 7 章 持续改进 .13Linux 系统安全配置基线1第 1 章 概述1.1 目的本文规定了 Linux 操作系统主机应当遵循的操作系统安全性设置标准,本文档旨在指导系统管理人员或安全检查人员进行 Linux 操作系统的安全合规性检查和配置。1.2 适用范围本配置标准的使用者包括:服务器系统管理员、安全管理员和相关使用人员。本配置标准适用的范围包括:Linux 服务器。1.3 适用版本适用于 Redhat AS 5。第 2 章 安装前准备工作2.1 需准备的光盘从 RedHat 官网下载高级
4、企业服务器版操作系统,并制作成光盘。第 3 章 操作系统的基本安装3.1 基本安装(1)应在隔离网络进行安装。选择 custom 方式,根据最小化原则,仅安装需要的软件包。(2)根据服务器的实际用途来确实是否需要给/VAR,/HOME 划分单独的分区。(3)安装完成后尽快通过合适可行的方式安装重要的补丁程序。Linux 系统安全配置基线2第 4 章 账号管理、认证授权4.1 账号4.1.1 用户口令设置安全基线项目名称操作系统 Linux 用户口令安全基线要求项安全基线项说明 帐号与口令-用户口令设置, 配置用户口令强度检查达到 12 位,要求用户口令包括数字、小写字母、大写字母和特殊符号 4
5、 类中至少 2 类。检测操作步骤1、询问管理员是否存在如下类似的简单用户密码配置,比如:root/root, test/test, root/root12342、执行:more /etc/login,检查PASS_MIN_LEN 12PASS_MAX_DAYS 90PASS_WARN_AGE 73、执行:awk -F: ($2 = “) print $1 /etc/shadow, 检查是否存在空口令账号4、编辑/etc/pam.d/system-auth 文件,将password requisite pam_cracklib.so try_first_pass retry=3改为passwor
6、d requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 ocredit=-1基线符合性判定依据不允许存在简单密码,密码设置至少包括一个数字和一个特殊字符,长度至少为 12 位检查 grep pam_cracklib /etc/pam.d/system-auth修改已有用户的口令生存期和过期告警天数#chage -M 90 -W 7 htsc_tempLinux 系统安全配置基线3备注4.1.2 检查是否存在除 root 之外 UID 为 0 的用户安全基线项目名称操作系统 Linux 超级用户策略安全基线要求项安全基线项说明
7、帐号与口令-检查是否存在除 root 之外 UID 为 0 的用户检测操作步骤执行:awk -F: ($3 = 0) print $1 /etc/passwd基线符合性判定依据返回值包括“root”以外的条目,则低于安全要求。备注 补充操作说明UID 为 0 的任何用户都拥有系统的最高特权,保证只有 root 用户的 UID 为04.1.3 检查多余账户安全基线项目名称操作系统 Linux 无用账户策略安全基线要求项安全基线项说明 帐号与口令-检查是否存在如下不必要账户: lp, sync, shutdown, halt, news, uucp, operator, games, gopher
8、 等,检测操作步骤执行:cat /etc/passwd如果不使用,用以下命令进行删除。#deluser test01基线符合性判定依据如发现上述账户,则低于安全要求。如主机存在 gnone,则需要保留 games 账号备注Linux 系统安全配置基线44.1.4 分配账户安全基线项目名称操作系统 Linux 账户策略安全基线要求项安全基线项说明 给不同的用户分配不同的帐号,避免多个用户共享帐号。至少分配 root,auditor,operator 角色。检测操作步骤1、参考配置操作#useradd auditor #新建帐号#passwd auditor #设置口令#chmod 700 aud
9、itor #修改用户主目录权限,确保只有该用户可以读写#vi /etc/passwd 注释掉不用的账户 auditor #停用不用的账户 基线符合性判定依据1、判定条件用新建的用户登陆系统成功,可以做常用的操作,用户不能访问其他用户的主目录。2、检测操作用不同用户登陆,检查用户主目录的权备注4.1.5 账号锁定安全基线项目名称操作系统 Linuxr 认证失败锁定要求项安全基线项说明 设置帐号在 3 次连续尝试认证失败后锁定,锁定时间为 1 分钟,避免用户口令被暴力破解。检测操作步骤1、参考配置操作建立/var/log/faillog 文件并设置权限#touch /var/log/faillog
10、#chmod 600 /var/log/faillog编辑/etc/pam.d/system-auth 文件,在auth required pam_env.so后面添加auth required pam_tally.so onerr=fail deny=3 unlock_time=60基线符合性 1、判定条件Linux 系统安全配置基线5判定依据 连续输入错误口令 3 次以上,再输正确口令,用户不能登陆。2、检测操作grep pam_tally /etc/pam.d/system-auth备注4.1.6 检查账户权限安全基线项目名称操作系统 Linux 无用账户策略安全基线要求项安全基线项说明
11、 帐号与口令-检查除 ROOT 外是否有其他账户拥有 shell 权限检测操作步骤执行:cat /etc/passwd 观察是否有非 root 账户设置/bin/bash 或/bin/sh 权限基线符合性判定依据无特殊应用情况下,如发现上述账户,则低于安全要求。备注4.2 认证4.2.1 远程连接的安全性配置安全基线项目名称操作系统 Linux 远程连接安全基线要求项安全基线项说明 帐号与口令-远程连接的安全性配置检测操作步骤执行:find / -name .netrc,检查系统中是否有.netrc 文件;执行:find / -name .rhosts ,检查系统中是否有.rhosts 文件基
12、线符合性判定依据返回值包含以上条件,则低于安全要求。备注 补充操作说明Linux 系统安全配置基线6如无必要,删除这两个文件4.2.2 限制 ssh 连接的 IP 配置安全基线项目名称操作系统 Linux 远程连接安全基线要求项安全基线项说明 配置 tcp_wrappers,限制允许远程登陆系统的 IP 范围。检测操作步骤1、参考配置操作编辑/etc/hosts.deny添加sshd:ALL编辑/etc/hosts.allow添加sshd:168.8.44.0/255.255.255.0 #允许 168.8.44.0 网段远程登陆sshd:168.8.43.0/255.255.255.0 #允
13、许 168.8.43.0 网段远程登陆基线符合性判定依据1、判定条件只有网管网段可以 ssh 登陆系统。2、检测操作cat /etc/hosts.denycat /etc/hosts.allow备注 对于不需要 sshd 服务的无需配置该项。中心机房以外的服务器管理,暂时不做源地址限制。4.2.3 用户的 umask 安全配置安全基线项目名称操作系统 Linux 用户 umask 安全基线要求项安全基线项说明 帐号与口令-用户的 umask 安全配置检测操作步骤执行:more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /
14、etc/bashrc 检查是否包含 umask 值Linux 系统安全配置基线7基线符合性判定依据umask 值是默认的,则低于安全要求。备注 补充操作说明:vi /etc/profile建议设置用户的默认 umask=0774.2.4 查找未授权的 SUID/SGID 文件安全基线项目名称操作系统 Linux SUID/SGID 文件安全基线要求项安全基线项说明 文件系统-查找未授权的 SUID/SGID 文件检测操作步骤用下面的命令查找系统中所有的 SUID 和 SGID 程序,执行:for PART in grep -v # /etc/fstab | awk ($6 != “0“) pr
15、int $2 ; dofind $PART ( -perm -04000 -o -perm -02000 ) -type f -xdev -printDone基线符合性判定依据若存在未授权的文件,则低于安全要求。备注 补充操作说明建议经常性的对比 suid/sgid 文件列表,以便能够及时发现可疑的后门程序4.2.5 检查任何人都有写权限的目录安全基线项目名称操作系统 Linux 目录写权限安全基线要求项安全基线项说明 文件系统-检查任何人都有写权限的目录检测操作步骤在系统中定位任何人都有写权限的目录用下面的命令:for PART in awk ($3 = “ext2“ | $3 = “ext
16、3“) print $2 /etc/fstab; dofind $PART -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -printDoneLinux 系统安全配置基线8基线符合性判定依据若返回值非空,则低于安全要求。备注4.2.6 查找任何人都有写权限的文件安全基线项目名称操作系统 Linux 文件写权限安全基线要求项安全基线项说明 文件系统-查找任何人都有写权限的文件检测操作步骤在系统中定位任何人都有写权限的文件用下面的命令:for PART in grep -v # /etc/fstab | awk ($6 != “0“) print $
17、2 ; dofind $PART -xdev -type f ( -perm -0002 -a ! -perm -1000 ) -printDone基线符合性判定依据若返回值非空,则低于安全要求。备注4.2.7 检查没有属主的文件安全基线项目名称操作系统 Linux 文件所有权安全基线要求项安全基线项说明 文件系统-检查没有属主的文件检测操作步骤定位系统中没有属主的文件用下面的命令:for PART in grep -v # /etc/fstab | awk ($6 != “0“) print $2 ; dofind $PART -nouser -o -nogroup -printdone注意
18、:不用管“/dev”目录下的那些文件基线符合性判定依据若返回值非空,则低于安全要求。Linux 系统安全配置基线9备注 补充操作说明发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有属主的文件存在。如果在系统中发现了没有属主的文件或目录,先查看它的完整性,如果一切正常,给它一个属主。有时候卸载程序可能会出现一些没有属主的文件或目录,在这种情况下可以把这些文件和目录删除掉。4.2.8 检查异常隐含文件安全基线项目名称操作系统 Linux 隐含文件安全基线要求项安全基线项说明 文件系统-检查异常隐含文件检测操作步骤用“find”程序可以查找到这些隐含文件。例如:# find / -n
19、ame “ *“ -print xdev# find / -name “*“ -print -xdev | cat -v同时也要注意象“.xx”和“.mail”这样的文件名的。 (这些文件名看起来都很象正常的文件名)基线符合性判定依据若返回值非空,则低于安全要求。备注 补充操作说明在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用“ls”命令看不到的文件) ,因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等) 。在UNIX/LINUX 下,一个常用的技术就是用一些特殊的名,如: “”、 “ ”(点点空格)或“G” (点点 control
20、-G) ,来隐含文件或目录。Linux 系统安全配置基线10第 5 章 日志审计5.1 日志5.1.1 syslog 登录事件记录安全基线项目名称操作系统 Linux 登录审计安全基线要求项安全基线项说明 日志审计-syslog 登录事件记录检测操作步骤执行命令:more /etc/syslog.conf查看参数 authpriv 值Authpriv.* /var/log/secure基线符合性判定依据若未对所有登录事件都记录,则低于安全要求。备注5.2 审计5.2.1 Syslog.conf 的配置审核安全基线项目名称操作系统 Linux 配置审计安全基线要求项安全基线项说明 开启系统的审计
21、功能,记录用户对系统的操作,包括但不限于账号创建、删除,权限修改和口令修改。检测操作步骤1、参考配置操作#chkconfig auditd on基线符合性判定依据1、判定条件系统能够审计用户操作。2、检测操作chkconfig -list auditdLinux 系统安全配置基线11用 aureport、ausearch 查看审计日志。备注5.2.2 日志增强安全基线项目名称操作系统 Linux 日志增强要求项安全基线项说明 使 messages 只可追加,使轮循的 messages 文件不可更改,从而防止非法访问目录或者删除日志的操作检测操作步骤执行命令:Chattr +a /var/log
22、/messagesChattr +i /var/log/messages.*Chattr +i /etc/shadowChattr +i /etc/passwdChattr +i /etc/group基线符合性判定依据使用 lsattr 判断属性备注5.2.3 syslog 系统事件审计安全基线项目名称操作系统 Linux 登录审计安全基线要求项安全基线项说明 日志审计-syslog 系统安全事件记录,方便管理员分析检测操作步骤执行命令:more /etc/syslog.conf查看参数:*.err;kern.debug;daemon.notice; /var/adm/messages基线符合
23、性判定依据若未对所有登录事件都记录,则低于安全要求。Linux 系统安全配置基线12备注第 6 章 其他配置操作6.1 系统状态6.1.1 系统超时注销安全基线项目名称操作系统超时注销要求项安全基线项说明 设置帐号超时自动注销。检测操作步骤1、参考配置操作编辑/etc/profile 文件,添加TMOUT=300用户登陆后如果 300 秒内没有做任何操作,则自动注销登陆。基线符合性判定依据1、判定条件用户登陆后,在指定的时间内没进行操作,可以自动注销。2、检测操作登陆系统,在设定时间内不做任何操作动作,检查是否注销。备注6.2 Linux 服务6.2.1 禁用不必要服务安全基线项目名称操作系统
24、系统服务管理安全基线要求项安全基线项说明 根据实际情况,关闭不必要的系统服务,如:finger,kudzu,isdn,nfs,apm, sound,pcmcia,vsftpd, rhnsd,Bluetooth,sendmail,lpd,netfs,telnet,RPC,imap等服务。Linux 系统安全配置基线13检测操作步骤1. grep -v “#“ /etc/inetd.conf 检查不必要开启的服务。2. #chkconfig -list #显示服务列表#chkconfig servicename off #关闭服务自启动#service stop servicename #关闭指定服务基线符合性判定依据在无特殊应用情况下,若有上述提到的服务开启,则不符合要求。备注第 7 章 持续改进本文件由 XXX 定期进行审查,根据审查结果修订标准,并重新颁发执行。