1、身份鉴别配置:
1.1 用户组的创建和管理:
- 创建用户组:使用命令
groupadd <groupname>
来创建一个新的用户组。 - 删除用户组:使用命令
groupdel <groupname>
来删除一个用户组。 - 修改用户组:使用命令
groupmod <options> <groupname>
来修改一个用户组的属性。
1.2 用户的创建和管理:
- 创建用户:使用命令
useradd <username>
来创建一个新的用户。 - 设置用户密码:使用命令
passwd <username>
来为用户设置密码。 - 删除用户:使用命令
userdel <username>
来删除一个用户。 - 修改用户密码:使用命令
passwd <username>
来修改用户的密码。 - 验证用户和用户组的配置: 使用命令
id <username>
验证用户所属的用户组和其他属性。例如,检查用户"myuser"的用户组和其他属性:id myuser
1.3 赋权:
- 添加用户到用户组:
使用命令 usermod -aG <groupname> <username>
将用户添加到一个用户组。- 修改文件权限: 使用命令
chmod <permissions> <filename>
来修改文件的权限。- 例子-1: 对于特定目录赋予特定用户组的权限,可以使用
chown
命令结合 chmod
命令来完成。下面是一种方法:
- 首先,将"data"目录的所有者更改为root用户,并将用户组更改为"wheel"用户组。可以使用以下命令:
chown -R root:wheel /path/to/data
- 解释:
-
chown
:修改文件或目录的所有者和用户组的命令。 -
-R
:递归地修改目录及其子目录中的所有文件所有者和用户组。 -
root:wheel
:指定新的所有者和用户组。 -
/path/to/data
:目标目录的路径。
- 然后,给"wheel"用户组授予"data"目录的读写权限。可以使用以下命令:
chmod -R g+rw /path/to/data
解释:
-
chmod
:修改文件或目录权限的命令。 -
-R
:递归地修改目录及其子目录中的文件权限。 -
g+rw
:为用户组添加读取和写入权限。 -
/path/to/data
:目标目录的路径。
这样,就把"data"目录的所有者更改为root用户,并将用户组更改为"wheel"用户组,然后给"wheel"用户组授予该目录的读写权限。
1.4 禁止su非法提权
检查是否使用PAM认证模块禁止wheel组之外的用户su为root
检查步骤
执行命令cat /etc/pam.d/su,
查看文件中是否存在如下配置: auth sufficient pam_rootok.so auth required pam_wheel.so group=wheel 合规标准 只允许wheel组的用户才能su为root则合规,否则不合规。
加固方案
1、编辑文件/etc/pam.d/su 在文件开头加入如下两行(有则修改,没有则添加):
auth sufficient pam_rootok.so auth required pam_wheel.so use_uid #注意auth与sufficient之间由两个tab建隔开,sufficient与动态库路径之间使用一个tab建隔开 说明:(这表明只有wheel组中的用户可以使用su命令成为root用户。你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。) 添加方法:
#usermod -G wheel username #username为需要添加至wheel组的账户名称。
2、访问控制及口令安全策略配置:
2.1 空口令策略:
- 禁止空口令:确保所有用户都有密码,不允许使用空密码。
- 理论依据: 所有帐户都必须有密码以防止帐户被未经授权的用户使用。
- 检查步骤 执行以下命令查看系统中是否存在空口令账号
#/bin/cat /etc/shadow | /bin/awk -F: '($2 == "" ) { print "user " $1 " does not have a password "}'
- 合规标准 不存在空口令的账号则合规,否则不合规。
2.2 口令有效期策略:
- 设置口令有效期:使用命令
chage -M <maxdays> <username>
来设置口令的最大有效天数。 - 设置口令过期警告:使用命令
chage -W <warndays> <username>
来设置口令过期前的警告天数。 OR - 检查是否设置口令过期前警告天数 检测步骤: 查看文件/etc/login.defs,检查如下参数值是否满足要求: PASS_WARN_AGE 合规标准: PASS_WARN_AGE等于7天则合规,否则不合规。 加固方案: 1、执行备份:
#cp -p /etc/login.defs /etc/login.defs_bak
- 2、修改策略设置,编辑文件/etc/login.defs,在文件中加入如下内容(如果存在则修改,不存在则添加):
PASS_WARN_AGE 7
2.3 口令复杂度策略:
- 修改密码复杂度要求:编辑文件
/etc/pam.d/system-auth
,找到包含password requisite pam_pwquality.so
的行,并修改其中的参数来增加密码的复杂度要求。 - 配置要求:
pam_cracklib模块检查密码的强度。它执行检查,例如确保密码不是字典单词,它是一定长度的,包含字符的混合(如字母、数字、其他)等 retry= 3 -在返回失败前允许3次尝试。 minlen = 14 -密码必须是14个字符或更多 dcredit = - 1 -提供至少1位数字 ucredit = - 1 -提供至少一个大写字符 ocredit = - 1 -提供至少一个特殊字符 lcredit = - 1 -提供至少一个小写字符 上面所示的设置是一种可能的策略。更改这些值以符合您自己的组织的密码策略。
- 检测步骤:
查看文件/etc/pam.d/system-auth,确认密码强度校验配置。 合规标准: 密码长度>=8,且至少包含大写字母、小写字母、数字、特殊字符中的3类则合规,否则不合规。 - 加固方案 1、配置文件备份
#cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
- 2、编辑配置文件/etc/pam.d/system-auth,在文件中找到开头为如下字样的内容:
password requisite pam_cracklib.so 将其修改为: password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 #口令长度不小于8,至少包含1位数字、大写字母、特殊字符、小写字母。
2.4 登录失败策略:
- 登录失败策略是一种安全措施,用于防止恶意用户通过持续尝试登录来暴力破解密码或进行其他攻击。下面是关于登录失败策略的检查步骤、配置方法和加固方法:
- 检查步骤:
查看文件/etc/pam.d/system-auth,检查是否存在如下内容: auth required pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180 account required pam_tally2.so - 合规标准 用户连续认证失败次数设置为5则合规,否则不合规。
- 配置要求: 对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。
- 加固方法: 参考配置操作 1、执行备份
#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
- 2、修改策略设,编辑文件/etc/pam.d/system-auth增加如下内容:
auth required pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180 #unlock_time单位为秒 account required pam_tally2.so #(redhat5.1以上版本支持 pam_tally2.so,其他版本使用pam_tally.so)
请注意,在进行任何修改之前,请备份原始配置文件,并确保你理解每个配置选项的含义和影响。建议在测试环境中进行配置更改,并在生产环境中谨慎操作
以上是基于Linux CentOS 7操作系统的身份鉴别和口令安全策略的详细配置文档。请根据实际需求和安全要求进行相应的配置。
2.5 检查口令生存周期
- 理论依据: 攻击者利用网络暴力攻击的机会,通过网络暴力攻击的机会窗口,受到密码生存周期的限制。因此,减少密码的最大年龄也会减少攻击者的机会窗口。
- 配置要求: 建议将PASS_MAX_DAYS参数设置为小于或等于90天。
- 检测步骤: 查看文件/etc/login.defs,检查如下参数值是否满足要求: PASS_MAX_DAYS
- 合规标准: PASS_MAX_DAYS不大于90则合规,否则不合规。
- 加固方案 1、执行备份: #cp -p /etc/login.defs /etc/login.defs_bak 2、修改策略设置,编辑文件/etc/login.defs,在文件中加入如下内容(如果存在则修改,不存在则添加): PASS_MAX_DAYS 90
- 分险说明 如果密码最长使用期限设置过低,用户就需要经常更改密码。这样的配置会减少组织中的安全性,因为用户可能会在一个不安全的位置写下他们的密码,或者丢失他们的密码。如果该策略设置的值过高,则会降低组织内的安全级别,因为它允许潜在的攻击者有更多的时间来发现用户密码或使用受攻击的帐户。
2.6 检查密码重复使用次数限制
- 理论依据: 强迫用户不重用他们过去的5个密码就不太可能让攻击者猜出密码。请注意,这些更改只适用于在本地系统上配置的帐户。
- 配置要求: 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。
- 检查步骤 查看文件/etc/pam.d/system-auth,是否有配置口令重复使用次数限制。
- 合规标准 口令重复使用次数限制不小于5次则合规,否则不合规。
- 加固方案 1、配置文件备份
#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
- 2、创建文件/etc/security/opasswd用于存储旧密码,并设置权限。
#touch /etc/security/opasswd #chown root:root /etc/security/opasswd #chmod 600 /etc/security/opasswd
- 3、编辑文件/etc/pam.d/system-auth, 找到类似行password sufficient pam_unix.so,在行末尾增加remember=5,中间以空格隔开.如果没有则新增。
password sufficient pam_unix.so remember=5
2.7 检查是否安装chkrootkit进行系统监测
- 配置要求: 安装入侵检测攻击检查Linux系统是否遭受攻击。审计步骤执行如下命令查看系统是否安装入侵检测工具#rpm -qa
- 合规标准: 系统安装了入侵检测工具chkrootkit则合规,否则不合规。
- 加固方案 1、工具chkrootkit下载链接 http://pkgs.repoforge.org/chkrootkit/chkrootkit-0.49-1.el5.rf.x86_64.rpm 2、使用rpm命令安装 #rpm -ivh chkrootkit-0.49-1.el5.rf.i386.rpm 3、运行chkrootkit #chkrootkit
- 备注:chkrootkit输出,not infected就表示没有被感染
2.8 禁止root用户远程登录
- vim /etc/ssh/sshd_config
- 找到
PermitRootLogin
配置项,并将其值修改为"no"。 - 保存并关闭文件。
- 运行命令
systemctl restart sshd
以重新启动SSH服务使配置生效。