Linux安全配置基线.docx
《Linux安全配置基线.docx》由会员分享,可在线阅读,更多相关《Linux安全配置基线.docx(16页珍藏版)》请在冰豆网上搜索。
Linux安全配置基线
Linux系统安全配置基线
版本
版本控制信息
更新日期
更新人
审批人
V1.0
创建
2009年1月
V2.0
更新
2012年4月
备注:
1.若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表格。
2.
第1章概述
第2章
2.1目的
2.2
本文档旨在指导系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。
2.3适用范围
2.4
本配置标准的使用者包括:
服务器系统管理员、应用管理员、网络安全管理员。
2.5适用版本
2.6
LINUX系列服务器。
2.7实施
2.8
2.9例外条款
2.10
第3章帐号管理、认证授权
第4章
4.1帐号
4.2
4.2.1用户口令设置
安全基线项目名称
操作系统Linux用户口令设置安全基线要求项
安全基线编号
SBL-Linux-02-01-01
安全基线项说明
对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。
检测操作步骤
1、询问管理员是否存在如下类似的简单用户密码配置,比如:
root/root,test/test,root/root1234
2、执行:
more/etc/login.defs,检查PASS_MAX_DAYS/PASS_MIN_DAYS/PASS_WARN_AGE参数
3、执行:
awk-F:
'($2==""){print$1}'/etc/shadow,检查是否存在空口令帐号
基线符合性判定依据
建议在/etc/login.defs文件中配置:
PASS_MAX_DAYS90#新建用户的密码最长使用天数
PASS_MIN_DAYS0#新建用户的密码最短使用天数PASS_WARN_AGE7#新建用户的密码到期提前提醒天数
不存在空口令帐号
备注
4.2.2用户口令强度要求
安全基线项目名称
操作系统Linux用户口令强度安全基线要求项
安全基线编号
SBL-Linux-02-01-02
安全基线项说明
对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。
检测操作步骤
/etc/pam.d/system-auth文件中是否对pam_cracklib.so的参数进行了正确设置。
基线符合性判定依据
建议在/etc/pam.d/system-auth文件中配置:
passwordrequisitepam_cracklib.sodifok=3minlen=8ucredit=-1lcredit=-1dcredit=1
至少8位,包含一位大写字母,一位小写字母和一位数字
备注
4.2.3用户锁定策略
安全基线项目名称
操作系统Linux用户口令锁定策略安全基线要求项
安全基线编号
SBL-Linux-02-01-03
安全基线项说明
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次,锁定该用户使用的帐号。
检测操作步骤
/etc/pam.d/system-auth文件中是否对pam_tally.so的参数进行了正确设置。
基线符合性判定依据
设置连续输错10次密码,帐号锁定5分钟,
使用命令“vi/etc/pam.d/system-auth”修改配置文件,添加
authrequiredpam_tally.soonerr=faildeny=10unlock_time=300
注:
解锁用户faillog-u<用户名>-r
备注
4.2.4root用户远程登录限制
安全基线项目名称
操作系统Linux远程登录安全基线要求项
安全基线编号
SBL-Linux-02-01-04
安全基线项说明
帐号与口令-root用户远程登录限制
检测操作步骤
执行:
more/etc/securetty,检查Console参数
基线符合性判定依据
建议在/etc/securetty文件中配置:
CONSOLE=/dev/tty01
备注
4.2.5检查是否存在除root之外UID为0的用户
安全基线项目名称
操作系统Linux超级用户策略安全基线要求项
安全基线编号
SBL-Linux-02-01-05
安全基线项说明
帐号与口令-检查是否存在除root之外UID为0的用户
检测操作步骤
执行:
awk-F:
'($3==0){print$1}'/etc/passwd
基线符合性判定依据
返回值包括“root”以外的条目,则低于安全要求;
备注
补充操作说明
UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0
4.2.6root用户环境变量的安全性
安全基线项目名称
操作系统Linux超级用户环境变量安全基线要求项
安全基线编号
SBL-Linux-02-01-06
安全基线项说明
帐号与口令-root用户环境变量的安全性
检测操作步骤
执行:
echo$PATH|egrep'(^|:
)(\.|:
|$)',检查是否包含父目录,
执行:
find`echo$PATH|tr':
'''`-typed\(-perm-002-o-perm-020\)-ls,检查是否包含组目录权限为777的目录
基线符合性判定依据
返回值包含以上条件,则低于安全要求;
备注
补充操作说明
确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录
4.3认证
4.4
4.4.1远程连接的安全性配置
安全基线项目名称
操作系统Linux远程连接安全基线要求项
安全基线编号
SBL-Linux-02-02-01
安全基线项说明
帐号与口令-远程连接的安全性配置
检测操作步骤
执行:
find/-name.netrc,检查系统中是否有.netrc文件,
执行:
find/-name.rhosts,检查系统中是否有.rhosts文件
基线符合性判定依据
返回值包含以上条件,则低于安全要求;
备注
补充操作说明
如无必要,删除这两个文件
4.4.2用户的umask安全配置
安全基线项目名称
操作系统Linux用户umask安全基线要求项
安全基线编号
SBL-Linux-02-02-02
安全基线项说明
帐号与口令-用户的umask安全配置
检测操作步骤
执行:
more/etc/profilemore/etc/csh.loginmore/etc/csh.cshrcmore/etc/bashrc检查是否包含umask值且umask=027
基线符合性判定依据
umask值是默认的,则低于安全要求
备注
补充操作说明
建议设置用户的默认umask=027
4.4.3重要目录和文件的权限设置
安全基线项目名称
操作系统Linux目录文件权限安全基线要求项
安全基线编号
SBL-Linux-02-02-03
安全基线项说明
文件系统-重要目录和文件的权限设置
检测操作步骤
执行以下命令检查目录和文件的权限设置情况:
ls–l/etc/
ls–l/etc/rc.d/init.d/
ls–l/tmp
ls–l/etc/inetd.conf
ls–l/etc/passwd
ls–l/etc/shadow
ls–l/etc/group
ls–l/etc/security
ls–l/etc/services
ls-l/etc/rc*.d
基线符合性判定依据
若权限过低,则低于安全要求;
备注
补充操作说明
对于重要目录,建议执行如下类似操作:
#chmod-R750/etc/rc.d/init.d/*
这样只有root可以读、写和执行这个目录下的脚本。
4.4.4查找未授权的SUID/SGID文件*
安全基线项目名称
操作系统LinuxSUID/SGID文件安全基线要求项
安全基线编号
SBL-Linux-02-02-04
安全基线项说明
文件系统-查找未授权的SUID/SGID文件
检测操作步骤
用下面的命令查找系统中所有的SUID和SGID程序,执行:
forPARTin`grep-v^#/etc/fstab|awk'($6!
="0"){print$2}'`;do
find$PART\(-perm-04000-o-perm-02000\)-typef-xdev-print
Done
基线符合性判定依据
若存在未授权的文件,则低于安全要求;
备注
需要手工检查。
补充操作说明
建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序
4.4.5检查任何人都有写权限的目录*
安全基线项目名称
操作系统Linux目录写权限安全基线要求项
安全基线编号
SBL-Linux-02-02-05
安全基线项说明
文件系统-检查任何人都有写权限的目录
检测操作步骤
在系统中定位任何人都有写权限的目录用下面的命令:
forPARTin`awk'($3=="ext2"||$3=="ext3")\
{print$2}'/etc/fstab`;do
find$PART-xdev-typed\(-perm-0002-a!
-perm-1000\)-print
Done
基线符合性判定依据
若返回值非空,则低于安全要求;
备注
需要手工检查。
4.4.6查找任何人都有写权限的文件*
安全基线项目名称
操作系统Linux文件写权限安全基线要求项
安全基线编号
SBL-Linux-02-02-06
安全基线项说明
文件系统-查找任何人都有写权限的文件
检测操作步骤
在系统中定位任何人都有写权限的文件用下面的命令:
forPARTin`grep-v^#/etc/fstab|awk'($6!
="0"){print$2}'`;do
find$PART-xdev-typef\(-perm-0002-a!
-perm-1000\)-print
Done
基线符合性判定依据
若返回值非空,则低于安全要求;
备注
需要手工检查。
4.4.7检查没有属主的文件*
安全基线项目名称
操作系统Linux文件所有权安全基线要求项
安全基线编号
SBL-Linux-02-02-07
安全基线项说明
文件系统-检查没有属主的文件
检测操作步骤
定位系统中没有属主的文件用下面的命令:
forPARTin`grep-v^#/etc/fstab|awk'($6!
="0"){print$2}'`;do
find$PART-nouser-o-nogroup-print
done
注意:
不用管“/dev”目录下的那些文件。
基线符合性判定依据
若返回值非空,则低于安全要求;
备注
需要手工检查。
补充操作说明
发现没有属主的文件往往就意味着有黑客入侵你的系统了。
不能允许没有主人的文件存在。
如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。
有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。
4.4.8检查异常隐含文件*
安全基线项目名称
操作系统Linux隐含文件安全基线要求项
安全基线编号
SBL-Linux-02-02-08
安全基线项说明
文件系统-检查异常隐含文件
检测操作步骤
用“find”程序可以查找到这些隐含文件。
例如:
#find/-name"..*"-print–xdev
#find/-name"…*"-print-xdev|cat-v
同时也要注意象“.xx”和“.mail”这样的文件名的。
(这些文件名看起来都很象正常的文件名)
基线符合性判定依据
若返回值非空,则低于安全要求;
备注
需要手工检查。
补充操作说明
在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用“ls”命令看不到的文件),因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等)。
在UNIX下,一个常用的技术就是用一些特殊的名,如:
“…”、“..”(点点空格)或“..^G”(点点control-G),来隐含文件或目录。
4.4.9登录超时设置
安全基线项目名称
操作系统Linux登录超时设置
安全基线编号
SBL-Linux-02-02-09
安全基线项说明
帐号与口令-检查登录超时设置
检测操作步骤
使用命令“cat/etc/profile|grepTMOUT”查看TMOUT是否被设置
基线符合性判定依据
返回值为空或值低于180,则低于安全要求
备注
使用命令“vi/etc/profile”修改配置文件,添加“TMOUT=”行开头的注释,建议设置为“TMOUT=180”,即超时时间为3分钟
4.4.10使用SSH远程登录
安全基线项目名称
操作系统LinuxSSH安全连接要求
安全基线编号
SBL-Linux-02-02-10
安全基线项说明
对于使用IP协议进行远程维护的设备,设备应配置使用SSH等加密协议。
检测操作步骤
查看SSH服务状态:
#servicesshstatus
查看telnet服务状态:
#servicetelnetstatus
基线符合性判定依据
SSH服务状态查看结果为:
running
telnet服务状态查看结果为:
notrunning/unrecognized
备注
4.4.11Root远程登录限制
安全基线项目名称
操作系统Linux超级用户登录设置
安全基线编号
SBL-Linux-02-02-11
安全基线项说明
对SSH服务进行安全检查
检测操作步骤
使用命令“cat/etc/ssh/sshd_config”查看配置文件
(1)检查是否允许root直接登录
检查“PermitRootLogin”的值是否为no
(2)检查SSH使用的协议版本
检查“Protocol”的值
基线符合性判定依据
使用命令“vi/etc/ssh/sshd_config”编辑配置文件
(1)不允许root直接登录
设置“PermitRootLogin”的值为no
(2)修改SSH使用的协议版本
设置“Protocol”的版本为2
备注
root用户需要使用普通用户远程登录后su进行系统管理
4.4.12关闭不必要的服务*
安全基线项目名称
操作系统Linux关闭不必要的服务
安全基线编号
SBL-Linux-02-02-12
安全基线项说明
帐号与口令-关闭不必要的服务
检测操作步骤
使用命令“who-r”查看当前init级别
使用命令“chkconfig--list<服务名>”查看所有服务的状态
基线符合性判定依据
若有不必要的系统在当前级别下为on,则低于安全要求
备注
需要手工检查。
使用命令“chkconfig--level<服务名>on|off|reset”设置服务在个init级别下开机是否启动
第5章日志审计
第6章
6.1日志
6.2
6.2.1syslog登录事件记录*
安全基线项目名称
操作系统Linux登录审计安全基线要求项
安全基线编号
SBL-Linux-03-01-01
安全基线项说明
日志审计-syslog登录事件记录
检测操作步骤
执行命令:
more/etc/syslog.conf
查看参数authpriv值
基线符合性判定依据
若未对所有登录事件都记录,则低于安全要求;
备注
需要手工检查。
6.3审计
6.4
6.4.1Syslog.conf的配置审核*
安全基线项目名称
操作系统Linux配置审计安全基线要求项
安全基线编号
SBL-Linux-03-02-01
安全基线项说明
日志审计-Syslog.conf的配置审核
检测操作步骤
执行:
more/etc/syslog.conf,查看是否设置了下列项:
kern.warning;*.err;authpriv.none\t@loghost
*.info;mail.none;authpriv.none;cron.none\t@loghost
*.emerg\t@loghost
local7.*\t@loghost
基线符合性判定依据
若未设置,则低于安全要求;
备注
需要手工检查。
补充操作说明
建议配置专门的日志服务器,加强日志信息的异地同步备份
第7章系统文件
第8章
8.1系统状态
8.2
8.2.1系统coredump状态
安全基线项目名称
操作系统Linuxcoredump状态安全基线要求项
安全基线编号
SBL-Linux-04-01-01
安全基线项说明
系统文件-系统coredump状态
检测操作步骤
执行:
more/etc/security/limits.conf检查是否包含下列项:
*softcore0
*hardcore0
基线符合性判定依据
若不存在,则低于安全要求
备注
补充操作说明
coredump中可能包括系统信息,易被入侵者利用,建议关闭
第9章评审与修订
第10章