
ansible-security-settings
用于执行企业合规相关安全设置的 Ansible 角色,适用于企业级操作系统
描述
该角色配置多个安全设置,包括登录、密码管理、SSH、PAM、SELinux 配置等。旨在满足企业合规要求。
配置内容包括:
- 自动账户锁定登录失败的 PAM tally 和 faillock 模块
- 密码历史记录
- 密码复杂度
- SSH 端口、Root 登录、欢迎信息、加密、端口转发设置
- SELinux 和防火墙状态
- Shell 超时
- 物理发送中断和 Ctrl-Alt-Del 禁用
- Linux auditd 配置
- 防火墙状态
- 魔法 SysRq 配置
密码过期变量:
| 名称 |
默认值 |
描述 |
os_auth_pw_max_age |
60 |
密码在需要更换之前的最大有效天数 |
os_auth_pw_min_age |
10 |
密码在可更换之前的最小有效天数 |
os_auth_pw_warn_age |
7 |
密码过期前的警告天数 |
passhistory |
6 |
要记住的密码数量以避免重复使用 |
密码复杂度变量:
| 名称 |
默认值 |
描述 |
pwquality_minlen |
8 |
密码的最小字符长度 |
pwquality_maxrepeat |
3 |
密码中同一字符的最大重复次数 |
pwquality_lcredit |
-1 |
密码中必须出现的小写字母数量 |
pwquality_ucredit |
-1 |
密码中必须出现的大写字母数量 |
pwquality_dcredit |
-1 |
密码中必须出现的数字数量 |
pwquality_ocredit |
-1 |
密码中必须出现的特殊字符数量 |
solaris_dictionary_minwordlength |
5 |
Solaris 字典最小单词长度 |
账户不活动和登录失败变量:
| 名称 |
默认值 |
描述 |
fail_deny |
5 |
登录失败次数达到后锁定账户数 |
fail_unlock |
0 |
登录失败后账户解除锁定的秒数,设置为 0 禁用自动解锁 |
inactive_lock |
0 |
账户不活动的天数,达到后锁定,设置为 0 禁用不活跃锁定 |
shell_timeout |
900 |
期望的 shell 超时(秒),设置为 0 以禁用 |
系统服务和设置变量:
| 名称 |
默认值 |
描述 |
selinux_state |
permissive |
SELinux 配置值 |
firewall_check |
false |
配置是否检查防火墙设置 |
firewall_state |
stopped |
防火墙期望状态 |
firewall_enable |
'no' |
期望的防火墙配置状态 |
disable_ctrlaltdel |
True |
是否在 Solaris 中禁用 Ctrl-Alt-Del 和物理发送中断 |
solaris_disable_services |
false |
禁用不安全的 Solaris 服务 |
magic_sysrq |
1 |
Linux 内核的 kernel.sysrq 设置值 |
SSH 配置变量:
| 名称 |
默认值 |
描述 |
sshrootlogin |
'no' |
是否允许 SSH root 登录,请保持单引号以避免布尔计算 |
sshportforwarding |
'no' |
配置端口转发选项,值如配置文件中的:yes, no, remote, local |
sshmainport |
22 |
主要 SSH 端口 |
sshextraport |
0 |
次要 SSH 端口,设置为 0 以禁用额外端口 |
setloginbanner |
true |
在 SSH 中使用登录横幅 |
sshd_solaris_restrict_ipv4 |
True |
在 Solaris 中限制 SSH 连接为 IPv4 以解决 DISPLAY 问题 |
ssh_enforce_ciphers |
True |
强制使用 SSH 中强加密和 MACs,设置为 false 以允许所有支持的 MAC 和加密 |
sha1_mac_enabled |
False |
禁用 SSH 中使用 sha1 HMAC,存在理论攻击向量 |
md5_mac_enabled |
False |
禁用 SSH 中使用 md5 HMAC,已知存在漏洞和攻击向量 |
truncated_mac_enabled |
False |
禁用 SSH 中使用 md5 或 sha1 截断的 96 位 HMAC |
cbc_ciphers_enabled |
False |
禁用 SSH 中使用分组密码链模式,加密被认为脆弱,容易受到多种填充攻击 |
sweet32_ciphers_enabled |
False |
启用 SSH 中使用的 64 位分组密码链模式,加密被认为容易受到 SWEET32 攻击 |
rc4_ciphers_enabled |
False |
启用 SSH 中使用的 arcfour 加密,被认为存在实际攻击 |
nist_curves_enabled |
false |
禁用 NIST KEX 曲线密码学,因为在多个方面较弱 |
logjam_sha1_enabled |
false |
禁用 SHA1 KEX 算法,容易受到 logjam 攻击 |
审计配置变量:
| 名称 |
默认值 |
描述 |
auditd_configure: |
true |
启用 auditd 配置管理 |
auditd_max_log_filesize |
25 |
审计日志的最大文件大小(MB) |
auditd_num_logs |
8 |
保留的最大审计日志数量 |
security_audit_datetime_changes |
true |
auditd 将记录所有日期或时间修改 |
security_audit_account_modifications |
true |
auditd 将记录所有账户修改 |
security_audit_network_changes |
true |
auditd 将记录所有网络配置修改 |
security_audit_selinux_changes |
true |
auditd 将记录 SELinux 配置的变化 |
security_audit_permission_changes |
false |
auditd 将记录所有文件权限变化 |
security_audit_fileaccess_failedattempts |
false |
auditd 将记录所有未授权访问文件的尝试 |
security_audit_filesystem_mounts |
true |
auditd 将记录所有文件系统的挂载/卸载 |
security_audit_deletions |
false |
auditd 将记录所有文件删除操作 |
security_audit_sudoers |
true |
auditd 将记录所有对 sudoers 规则的修改 |
security_audit_kernel_modules |
false |
auditd 将记录所有模块操作和 sysctl 配置 |
security_audit_logon |
true |
auditd 将记录所有登录/注销/会话 |
security_audit_elevated_privilege_commands |
true |
auditd 将记录所有特权命令 |
security_audit_all_commands |
false |
auditd 将记录所有命令 |
security_audit_log_integrity |
false |
auditd 将监测日志和日志配置的完整性 |
security_audit_configuration_immutable |
false |
auditd 将使其规则不可变,重启后才能更改 |
security_audit_custom_rules |
empty |
这是一个多行变量,如果定义,应该包含完整的审计规则以添加到配置文件中 |