适用于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 |
实施风险: | 无 |
备注: |
最后
原文始发于微信公众号(工程师江湖):Linux安全配置规范