Linux安全配置规范
适用于redhat、suse、fedroa、Linux 操作系统。
本规范明确了设备的基本配置安全要求,为设备工程验收和设备运行维护环节明确相关安全要求提供指南。
出自公众号:工程师江湖
一. Linux企业版安全配置规范
1.1 口令帐号
1.1.1 检查空口令帐号
| 
 编号  | 
 安全要求-系统-Linux配置-2.1.1  | 
| 
 要求内容  | 
 检查系统帐号和口令,禁止使用空口令帐号  | 
| 
 操作指南:  | 
 以root身份执行: # awk -F: '($2 == "") { print $1 }' /etc/shadow 检查空口令帐号 #pwck 帐号检查 # cat /etc/passwd # cat /etc/shadow # cat /etc/group 对照检查结果,询问管理员有效帐号有无异常,有无弱密码,建议删除不必要帐户并修改简单密码为复杂密码  | 
| 
 检测方法:  | 
 # awk -F: '($2 == "") { print $1 }' /etc/shadow 列出空密码帐号 
  | 
| 
 实施风险:  | 
 可能影响某些管理维护的应用程序  | 
| 
 备注:  | 
1.1.2 检查Root帐号
| 
 编号  | 
 安全要求-系统-Linux配置-2.1.2  | 
| 
 要求内容  | 
 检查系统帐号和口令,检查是否存UID为0的帐号  | 
| 
 操作指南:  | 
 以root身份执行: # awk -F: '($3 == 0) { print $1 }' /etc/passwd 检查UID为0的帐号 
  | 
| 
 检测方法:  | 
 # awk -F: '($3 == 0) { print $1 }' /etc/passwd 列出UID为0的帐号 
  | 
| 
 实施风险:  | 
 可能影响某些管理维护的应用程序  | 
| 
 备注:  | 
1.1.3 检查帐号超时注销
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.3  | 
| 
 要求内容  | 
 应该设置帐号超时自动注销  | 
| 
 操作指南:  | 
 以root身份执行: vi /etc/profile 增加 export TMOUT=600  | 
| 
 检测方法:  | 
 # cat /etc/profile | grep TMOUT  | 
| 
 实施风险:  | 
 可能影响某些管理维护的应用程序  | 
| 
 备注:  | 
1.1.4 root用户远程登录限制
| 
 编号  | 
 安全要求-系统-Linux配置-2.1.4  | 
| 
 要求内容  | 
 限制root远程登录  | 
| 
 操作指南:  | 
 /etc/securetty文件中配置:CONSOLE = /dev/tty01  | 
| 
 检测方法:  | 
 执行:more /etc/securetty,检查Console参数  | 
| 
 实施风险:  | 
 可能影响某些管理维护的应用程序  | 
| 
 备注:  | 
1.1.5 检测密码策略
| 
 编号  | 
 安全要求-系统-Linux配置-2.1.5  | 
| 
 要求内容  | 
 检查系统密码策略,是否符合必要的强度  | 
| 
 操作指南:  | 
 以root身份执行: # vi /etc/login.defs 建议设置参数如下: PASS_MAX_DAYS 180 最大口令使用日期 PASS_MIN_LEN 8 最小口令长度 PASS_WARN_AGE 30 口令过期前警告天数 #vi /etc/pam.d/system-auth password required /lib/security/pam_cracklib.so retry=3 type= minlen=8 difok=3 最小口令长度设置为8  | 
| 
 检测方法:  | 
 # cat /etc/login.defs #cat /etc/pam.d/system-auth  | 
| 
 实施风险:  | 
 可能影响管理维护  | 
| 
 备注:  | 
1.1.6 检查Grub/Lilo密码
| 
 编号  | 
 安全要求-系统-Linux配置-2.1.6  | 
| 
 要求内容  | 
 检查系统引导管理器是否设置密码  | 
| 
 检查方法  | 
 使用命令“cat /etc/grub.conf|grep password”查看grub是否设置密码 使用命令“cat /etc/lilo.conf|grep password”查看lilo是否设置密码  | 
| 
 操作指南  | 
 为grub或lilo设置密码 参考操作:vi /etc/grub.conf default=1 timeout=10 splashimage=(hd0,7)/boot/grub/splash.xpm.gz password=123456 title Fedora Core (2.4.22-1.2061.nptl) lock root (hd0,7)  | 
| 
 实施风险:  | 
 可能影响某些管理维护的应用程序  | 
1.2 系统服务
1.2.1 关闭不需要的服务
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.1  | 
| 
 要求内容  | 
 禁用不必要的服务  | 
| 
 操作指南:  | 
 以root身份执行 # chkconfig --list (debian不支持) 使用命令“chkconfig --level <init级别> <服务名> on|off|reset”设置服务在个init级别下开机是否启动  | 
| 
 检测方法:  | 
 chkconfig –list 查看是否有不需要的服务  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.2.2 openssh安全配置
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.2  | 
| 
 要求内容  | 
 检查系统openssh安全配置,禁止使用协议1,和使用root直接登录  | 
| 
 操作指南:  | 
 以root权限执行命令: # cat /etc/ssh/sshd_config 或 #cat /etc/ssh2/sshd2_config Openssh应禁止使用协议1,禁止root直接登录等,编辑sshd_config文件,设置: Protocol 2 StrictModes yes PermitRootLogin no PrintLastLog yes PermitEmptyPasswords no  | 
| 
 检测方法:  | 
 # cat /etc/ssh/sshd_config 或 #cat /etc/ssh2/sshd2_config 是否符合以上设置  | 
| 
 实施风险:  | 
 无  | 
| 
 备注:  | 
1.2.3 SNMP团体字
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.3  | 
| 
 要求内容  | 
 如果打开了SNMP协议,snmp团体字设置不能使用默认的团体字  | 
| 
 操作指南:  | 
 以root身份执行: #cat /etc/snmp/snmpd.conf 应禁止使用public、private默认团体字,使用用户自定义的团体字 ,例如将以下设置中的public替换为用户自定义的团体字: com2sec notConfigUser default public 如无必要,管理员应禁止使用snmp服务  | 
| 
 检测方法:  | 
 #cat /etc/snmp/snmpd.conf 
  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.2.4 禁用ctlraltdel组合键
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.4  | 
| 
 要求内容  | 
 禁用ctlr+alt+del组合键  | 
| 
 操作指南:  | 
 检查系统是否禁用ctlraltdel组合键,以root身份执行以下命令: # vi /etc/inittab # grep –i ctrlaltdel /etc/inittab 禁止ctrl+alt+del组合键,以root身份编辑/etc/inittab文件,注释如下一行后重起系统: ca::ctrlaltdel:/sbin/shutdown -t3 -r now  | 
| 
 检测方法:  | 
 # grep –i ctrlaltdel /etc/inittab # ca::ctrlaltdel:/sbin/shutdown -t3 -r now (表示已经禁用)  | 
| 
 实施风险:  | 
 需要重起系统,可能影响应用  | 
| 
 备注:  | 
1.2.5 检查root 路径
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.5  | 
| 
 要求内容  | 
 检查系统root用户环境变量path设置中是否包含”.” (root为了方便使用在他的当前路径末尾加了个点".",存在安全隐患)  | 
| 
 操作指南:  | 
 root用户环境变量path中不应包含当前目录”.“ 以root身份执行如下命令: # echo $PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:.  | 
| 
 检测方法:  | 
 # echo $PATH  | 
| 
 实施风险:  | 
 无  | 
| 
 备注:  | 
1.2.6 检查信任主机
| 
 编号  | 
 安全要求-系统-Linux配置-2.2.6  | 
| 
 要求内容  | 
 关闭系统信任主机  | 
| 
 操作指南:  | 
 .rhosts文件中存储的是可以直接远程访问本系统的主机及用户名。当你用telnet命令或r* 命令(如rlogin、rcp等)来远程访问本系统时,系统首先检查.rhosts文件中是否存有你此时的主机名和用户名。当找到你的主机名和用户名后,它将允许你直接访问它,而不需输入口令。如果不是应用需要,管理员应禁用所有rhosts文件。 检查rhosts文件内容,以root身份执行如下命令: #find / -name .rhosts # find / -name .hosts.equiv #查看上述rhosts文件和/etc/hosts.equiv内容  | 
| 
 检测方法:  | 
 在各用户主目录下查看rhosts文件内容 应禁止rhosts文件和/etc/hosts.equiv 
  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
 hosts.equiv是不同主机间的信任关系,.rhosts是同一用户在不同主机间的信任。  | 
1.3 文件系统检查
1.3.1 检查系统umask设置
| 
 编号  | 
 安全要求-系统-Linux配置-2.3.1  | 
| 
 要求内容  | 
 检查系统umask设置  | 
| 
 操作指南:  | 
 以root权限执行命令: 使用命令“vi /etc/profile”修改配置文件,添加行“UMASK 027”, 即新创建的文件属主读写执行权限,同组用户读和执行权限,其他用户无权限,使用命令“umask 027”应用设置  | 
| 
 检测方法:  | 
 #umask 至少设为027,最佳是077  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.3.2 保留历史命令的条数
| 
 编号  | 
 安全要求-系统-Linux配置-2.3.2  | 
| 
 要求内容  | 
 检查系统umask设置  | 
| 
 操作指南:  | 
 使用命令“vi /etc/profile”修改配置文件,修改HISTSIZE=5和HISTFILESIZE=5即保留最新执行的5条命令  | 
| 
 检测方法:  | 
 使用命令“cat /etc/profile|grep HISTSIZE=”和““cat /etc/profile|grep HISTFILESIZE=”查看保留历史命令的条数  | 
| 
 实施风险:  | 
 无  | 
| 
 备注:  | 
1.3.3 检查关键文件的属性
| 
 编号  | 
 安全要求-系统-Linux配置-2.3.3  | 
| 
 要求内容:  | 
 检查关键文件的属性, 把重要文件加上不可修改属性,  | 
| 
 操作指南:  | 
 # chattr +i /etc/passwd # chattr +i /etc/shadow # chattr +i /etc/gshadow # chattr +i /etc/group 修改密码时,有时会提示: "userdel: unable to open password file" 或: "userdel: unable to open group " 等 这时, 可以先 
 chattr -i /etc/passwd chattr -i /etc/group chattr -i /etc/shadow 
 然后再执行: 
 userdel -rf UserName 
 执行完后, 最好再把文件还原回去: 
 chattr +i /etc/passwd chattr +i /etc/group chattr +i /etc/shadow  | 
| 
 检测方法:  | 
 # lsattr /etc/passwd # lsattr /etc/shadow # lsattr /etc/gshadow # lsattr /etc/group  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.3.4 检查关键文件的权限
| 
 编号  | 
 安全要求-系统-Linux配置-2.3.4  | 
| 
 要求内容:  | 
 检查关键文件的权限, /etc/shadow 文件属性应为400 /etc/xinetd.conf 文件属性应为600 grub.conf或lilo.conf 文件属性应为600  | 
| 
 操作指南:  | 
 chmod +400 /etc/shadow chomd +600 /etc/xinetd.conf chomd +600 /etc/grub.conf  | 
| 
 检测方法:  | 
 ls –la /etc/shadow ls –la /etc/xinetd.conf ls –la /etc/grub.conf  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.4 检查磁盘分区剩余空间
| 
 编号  | 
 安全要求-系统-Linux配置-2.11  | 
| 
 要求内容:  | 
 检查系统磁盘分区剩余空间情况,区剩余空间应维持在20%以上,即已使用空间不超过80%  | 
| 
 实施方案:  | 
 如果磁盘动态分区空间不足,建议管理员扩充磁盘空间。  | 
| 
 检测方法:  | 
 以root身份执行: # df –k 
  | 
| 
 实施风险:  | 
 可能影响应用  | 
| 
 备注:  | 
1.5 检查日志审核
| 
 编号  | 
 安全要求-系统-Linux配置-2.12  | 
| 
 要求内容:  | 
 检查系统日志审核,系统是否开启了日志审核  | 
| 
 实施方案:  | 
 以root身份执行: #vi /etc/syslog.conf 建议authpriv.* /var/log/secure  | 
| 
 检测方法:  | 
 service syslog status Checking for service syslog: running  | 
| 
 实施风险:  | 
 无  | 
| 
 备注:  | 
最后
                    
                

                
            
        
浙公网安备 33010602011771号