帐户口令
屏蔽系统帐户
说明
除了用户帐户外,其他帐号被称为系统帐户。系统帐户仅供系统内部特定应用使用,禁止用于登录系统或其他操作,因此需要屏蔽系统帐户的登录功能。
实现
将系统帐户的Shell修改为/sbin/nologin。
usermod -L -s /sbin/nologin $systemaccount
说明: $systemaccount 指系统帐户。
限制使用su命令的帐户
说明
su命令用于在不同帐户之间切换。为了增强系统安全性,有必要对su命令的使用权进行控制,只允许root和wheel群组的帐户使用su命令,限制其他帐户使用。
实现
su命令的使用控制通过修改/etc/pam.d/su文件实现,配置如下:
auth required pam_wheel.so use_uid
表 1 pam_wheel.so配置项说明
设置口令复杂度
说明
用户可以通过修改对应配置文件设置口令的复杂度要求,建议用户根据实际情况设置口令复杂度。
实现
口令复杂度通过/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中的pam_pwquality.so和pam_pwhistory.so模块实现。用户可以通过修改这两个模块中的配置项修改口令复杂度要求。
设置举例
这里给出一个配置口令复杂度的例子,供用户参考。
密码复杂度要求
口令长度至少8个字符。
口令必须包含如下至少3种字符的组合:
- 至少一个小写字母
- 至少一个大写字母
- 至少一个数字
- 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格
口令不能和帐号或者帐号的倒写一样。
不能修改为过去5次使用过的旧口令。
配置实现
在/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中password配置项的前两行添加如下配置内容:
password requisite pam_pwquality.so minlen=8 minclass=3 enforce_for_root try_first_pass local_users_only retry=3 dcredit=0 ucredit=0 lcredit=0 ocredit=0
password required pam_pwhistory.so use_authtok remember=5 enforce_for_root
配置项说明
pam_pwquality.so和pam_pwhistory.so的配置项请分别参见表2和表3。
表 2 pam_pwquality.so配置项说明
表 3 pam_pwhistory.so配置项说明
设置口令有效期
说明
出于系统安全性考虑,建议设置口令有效期限,且口令到期前通知用户更改口令。
实现
口令有效期的设置通过修改/etc/login.defs文件实现,加固项如表4所示。表中所有的加固项都在文件/etc/login.defs中。表中字段直接通过修改配置文件完成。
表 4 login.defs配置项说明所示
说明: login.defs是设置用户帐号限制的文件,可配置口令的最大过期天数、最大长度约束等。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow配置为准,即/etc/shadow的配置优先级高于/etc/login.defs。口令过期后用户重新登录时,提示口令过期并强制要求修改,不修改则无法进入系统。
设置口令的加密算法
说明
出于系统安全考虑,口令不允许明文存储在系统中,应该加密保护。在不需要还原口令的场景,必须使用不可逆算法加密。设置口令的加密算法为sha512,openEuler默认已设置。通过上述设置可以有效防范口令泄露,保证口令安全。
实现
口令的加密算法设置通过修改/etc/pam.d/password-auth和/etc/pam.d/system-auth文件实现,添加如下配置:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
表 5 pam_unix.so配置项说明
登录失败超过三次后锁定
说明
为了保障用户系统的安全,建议用户设置口令出错次数的阈值(建议3次),以及由于口令尝试被锁定用户的自动解锁时间(建议300秒)。
用户锁定期间,任何输入被判定为无效,锁定时间不因用户的再次输入而重新计时;解锁后,用户的错误输入记录被清空。通过上述设置可以有效防范口令被暴力破解,增强系统的安全性。
说明: openEuler默认口令出错次数的阈值为3次,系统被锁定后自动解锁时间为60秒。
实现
口令复杂度的设置通过修改/etc/pam.d/password-auth和/etc/pam.d/system-auth文件实现,设置口令最大的出错次数为3次,系统锁定后的解锁时间为300秒的配置如下:
auth required pam_faillock.so preauth audit deny=3 even_deny_root unlock_time=300
auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=300
auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=300
表 6 pam_faillock.so配置项说明
加固su命令
说明
为了增强系统安全性,防止使用“su”切换用户时将当前用户环境变量带入其他环境,openEuler默认已做配置。总是在使用su切换用户时初始化PATH。
实现
通过修改/etc/login.defs实现,配置如下:
ALWAYS_SET_PATH=yes