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

要求内容 检查系统帐号和口令,检查是否存UID0的帐号
操作指南: root身份执行:

# awk -F: '($3 == 0) { print $1 }'   /etc/passwd  检查UID0的帐号

 

检测方法: # awk -F: '($3 == 0) { print $1 }'   /etc/passwd  列出UID0的帐号

 

实施风险: 可能影响某些管理维护的应用程序
备注:

 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是否设置密码

操作指南 grublilo设置密码

参考操作: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

应禁止使用publicprivate默认团体字,使用用户自定义的团体字

,例如将以下设置中的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* 命令(rloginrcp)来远程访问本系统时,系统首先检查.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=5HISTFILESIZE=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.conflilo.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安全配置规范

Linux安全配置规范
标签: