scathatheworm.security-settings
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 | 这是一个多行变量,如果定义,应该包含完整的审计规则以添加到配置文件中 |