加固目的
操作系统作为信息系统的核心,承担着管理硬件资源和软件资源的重任,是整个信息系统安全的基础。操作系统之上的各种应用,要想获得信息的完整性、机密性、可用性和可控性,必须依赖于操作系统。脱离了对操作系统的安全保护,仅依靠其他层面的防护手段来阻止黑客和病毒等对网络信息系统的攻击,是无法满足安全需求的。
因此,需要对操作系统进行安全加固,构建动态、完整的安全体系,增强产品的安全性,提升产品的竞争力
加固方式
用户可以通过手动修改加固配置或执行相关命令对系统进行加固,也可以通过加固工具批量修改加固项。openEuler的安全加固工具security tool以openEuler-security.service服务的形式运行。系统首次启动时会自动运行该服务去执行默认加固策略,且自动设置后续开机不启动该服务。
用户可以通过修改security.conf,使用安全加固工具实现个性化安全加固的效果。
加固内容
openEuler系统加固内容主要分为以下5个部分:
- 系统服务
- 文件权限
- 内核参数
- 授权认证
- 账号口令
加固指导
用户可以通过修改加固策略配置文件或加固脚本进行系统加固方式。
1.账号口令
1.屏蔽系统帐户
1.设置系统用户不能登录,将系统帐户的Shell修改为/sbin/nologin
[root@ljy ~]# usermod -L -s /sbin/nologin user1
[root@ljy ~]# su - user1
This account is currently not available.
2.限制使用su的账户
su命令用于在不同帐户之间切换。为了增强系统安全性,有必要对su命令的使用权进行控制,只允许root和wheel群组的帐户使用su命令,限制其他帐户使用。
修改 /etc/pam.d/su 的配置文件就行设置 use_uid 当前设置的用户
auth required pam_wheel.so use_uid
[root@ljy ~]# vim /etc/pam.d/su
[root@ljy ~]# su user1
此帐户目前不可用。
3.设置口令复杂度
口令复杂度要求
-
口令长度至少8个字符。
-
口令必须包含如下至少3种字符的组合:
-至少一个小写字母
-至少一个大写字母
-至少一个数字
-至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格
-
口令不能和帐号或者帐号的倒写一样。
-
不能修改为过去5次使用过的旧口令
/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中的pam_pwquality.so和pam_pwhistory.so模块实现
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_pwhistory.so配置项说明
设置口令有效期
出于系统安全性考虑,建议设置口令有效期限,且口令到期前通知用户更改口令。
口令有效期的设置通过修改/etc/login.defs文件实现
login.defs配置项说明所示
login.defs是设置用户帐号限制的文件,可配置口令的最大过期天数、最大长度约束等。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow配置为准,即/etc/shadow的配置优先级高于/etc/login.defs。口令过期后用户重新登录时,提示口令过期并强制要求修改,不修改则无法进入系统。
设置密码的加密算法
在 /etc/pam.d/system 和 /etc/pam.d/system-auth 进行修改 使用sha512 加密算法
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
登录失败超过三次后锁定
为了保障用户系统的安全,建议用户设置口令出错次数的阈值(建议3次),以及由于口令尝试被锁定用户的自动解锁时间(建议300秒)。
openEuler默认口令出错次数的阈值为3次,系统被锁定后自动解锁时间为60秒。
在 /etc/pam.d/system 和 /etc/pam.d/system-auth
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
audit 为捕获登录失败
deny 为登录失败的次数
even_deny_root 同样限制root
unlock_time=300 普通用户限制300
加固su命令
为了增强系统安全性,防止使用“su”切换用户时将当前用户环境变量带入其他环境,openEuler默认已做配置。总是在使用su切换用户时初始化PATH。
通过修改/etc/login.defs实现,配置如下:
ALWAYS_SET_PATH=yes