策略级别 | 说明 |
DEFAULT | 默认级别。允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。 |
LEGACY | 兼容性策略。在 DEFAULT 基础上额外支持 TLS 1.0 和 1.1 协议,允许 DSA、3DES 和 RC4 算法。 |
FUTURE | 保守安全级别。不允许在签名算法中使用 SHA-1,允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。 |
# 查看当前加密策略update-crypto-policies --show# 设置为 FUTURE 策略update-crypto-policies --set FUTURE
reboot
/etc/crypto-policies/back-ends/ 目录中删除与应用程序相关的符号链接。# wget 示例:自定义 TLS 版本和密码套件wget --secure-protocol=TLSv1_1 --ciphers="SECURE128" https://example.com# curl 示例:指定密码列表curl https://example.com --ciphers '@SECLEVEL=0:DES-CBC3-SHA:RSA-DES-CBC3-SHA'
# 1. 创建子策略文件cd /etc/crypto-policies/policies/modules/touch MYCRYPTO-1.pmod
MYCRYPTO-1.pmod 中添加:min_rsa_size = 3072hash = SHA2-384 SHA2-512 SHA3-384 SHA3-512
# 2. 启用子策略update-crypto-policies --set DEFAULT:MYCRYPTO-1# 3. 重启生效reboot# 4. 验证cat /etc/crypto-policies/state/CURRENT.pol | grep rsa_size
# 1. 创建策略文件(可复制系统预定义策略作为基础)cp /usr/share/crypto-policies/policies/DEFAULT.pol /etc/crypto-policies/policies/MYPOLICY.pol# 2. 编辑策略文件内容vim /etc/crypto-policies/policies/MYPOLICY.pol# 3. 启用自定义策略update-crypto-policies --set MYPOLICY# 4. 重启生效reboot# 5. 验证update-crypto-policies --show
用途 | 路径 |
信任锚点 | /usr/share/pki/ca-trust-source/anchors/ 或 /etc/pki/ca-trust/source/anchors/ |
不信任证书 | /usr/share/pki/ca-trust-source/blacklist/ 或 /etc/pki/ca-trust/source/blacklist/ |
扩展格式证书 | /usr/share/pki/ca-trust-source/ 或 /etc/pki/ca-trust/source/ |
/etc/pki/ca-trust/ 中的设置优先级高于 /usr/share/pki/ca-trust-source/。# 安装 ca-certificates(通常已预装)dnf install ca-certificates# 将证书复制到信任锚点目录cp ~/certificate.pem /usr/share/pki/ca-trust-source/anchors/# 更新系统证书存储update-ca-trust
# 列出所有信任锚点trust list# 添加信任锚点trust anchor path/to/certificate.crt# 删除信任锚点trust anchor --remove path/to/certificate.crt# 查看子命令帮助trust list --help
工具 | 说明 |
SCAP Workbench | 图形化界面工具,对单个系统执行配置和漏洞扫描,生成安全报告 |
OpenSCAP(oscap) | 命令行工具,对本地系统执行配置和漏洞扫描,支持合规修复 |
SCAP Security Guide(SSG) | 安全策略集合,提供针对 Linux 系统的 XCCDF 配置文件和 OVAL 检测脚本 |
Script Check Engine(SCE) | 可选扩展,支持用 Bash、Python 等脚本编写自定义检查逻辑 |
# 安装 AIDEdnf install aide# 初始化数据库aide --init# 启用数据库(从文件名中删除 .new)mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
/etc/aide.conf,可在此定义需要监控的目录和文件。# 检查文件是否被篡改aide --check# 系统变更后更新数据库aide --updatemv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
aes-xts-plain64,默认密钥大小 512 位。# 1. 格式化为 LUKS 分区cryptsetup luksFormat /dev/vdb1# 2. 打开加密分区cryptsetup open /dev/vdb1 vdb1_encrypted# 3. 创建文件系统mkfs -t ext4 /dev/mapper/vdb1_encrypted# 4. 挂载mount /dev/mapper/vdb1_encrypted /mnt/encrypted
# 卸载分区umount /dev/vdb1# 安装 cryptsetupdnf install cryptsetup# 启动加密(LUKS 标头存储在设备头部)cryptsetup reencrypt --encrypt --init-only --reduce-device-size 32M /dev/vdb1 vdb1_encrypted
cryptsetup reencrypt --encrypt --init-only --header /path/to/header /dev/vdb1 vdb1_encrypted
/dev/mapper/ 下的映射设备访问。/etc/audit/auditd.conf,常用参数:参数 | 说明 |
log_file | 审计日志路径,默认 /var/log/audit/audit.log |
max_log_file | 日志文件最大大小 |
max_log_file_action | 日志达到上限时的动作,建议设为 keep_logs |
space_left | 磁盘剩余空间阈值 |
space_left_action | 空间不足时的动作,建议设为 email |
disk_full_action | 磁盘满时的动作,设为 halt 或 single |
flush | 日志刷新模式,建议设为 incremental_async |
# 启动并设置开机自启systemctl start auditdsystemctl enable auditd# 查看状态systemctl status auditd# 重新加载配置service auditd reload
# 监控文件访问(记录对 /etc/passwd 的写操作)auditctl -w /etc/passwd -p wa -k passwd_changes# 监控目录(记录对 /etc/selinux/ 目录的写操作)auditctl -w /etc/selinux/ -p wa -k selinux_changes# 系统调用规则(记录时间相关系统调用)auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change# 记录用户删除文件操作auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete# 记录可执行文件执行auditctl -a always,exit -F exe=/bin/id -F arch=b64 -S execve -k execution_bin_id
/etc/audit/rules.d/ 目录下的 .rules 文件中,然后加载:# 加载规则augenrules --load# 查看已加载规则auditctl -l
# 搜索特定事件类型ausearch -m AVC,USER_AVC -ts recent# 搜索登录失败记录ausearch -m USER_LOGIN -ts '7/02/2022' '18:00:00' -sv no# 生成登录报告aureport --login -i# 生成所有事件报告aureport
usbguard generate-policy 生成的初始规则仅放行执行命令时已连接的 USB 设备。在物理服务器上启用 USBGuard 后,新接入的键盘、鼠标等设备默认会被拒绝,可能导致无法本地操作。建议您先确认规则集内容,并在保留带外管理通道(如 BMC/IPMI)的情况下再启用该服务;若被锁定,可通过带外通道执行 systemctl stop usbguard 恢复。# 安装 USBGuarddnf install usbguard# 生成初始规则集(基于当前已连接设备)usbguard generate-policy > /etc/usbguard/rules.conf# 启动并设置开机自启systemctl enable --now usbguard# 查看服务状态systemctl status usbguard
# 列出识别的 USB 设备usbguard list-devices# 临时授权设备与系统交互usbguard allow-device <device_id># 临时拒绝设备usbguard reject-device <device_id># 永久授权设备(写入规则)usbguard allow-device <device_id> -p# 永久拒绝设备usbguard block-device <device_id> -p# 查看当前规则usbguard list-rules
# 生成策略(不包含哈希)usbguard generate-policy --no-hashes > ./rules.conf# 编辑规则,例如只允许大容量存储设备vim ./rules.conf# 添加:allow with-interface equals { 08:*:* }# 安装策略install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf# 重启生效systemctl restart usbguard
/etc/usbguard/usbguard-daemon.conf,将 AuditBackend 改为 LinuxAudit:AuditBackend=LinuxAudit
systemctl restart usbguard# 验证ausearch -ts recent -m USER_DEVICE
模式 | 说明 |
enforcing | 强制执行安全策略,违反规则的访问被拒绝并记录 |
permissive | 宽容模式,违反规则仅记录日志,不拒绝 |
disabled | 禁用 SELinux |
# 查看当前模式getenforcesestatus# 临时切换模式setenforce 0 # 切换到 permissivesetenforce 1 # 切换到 enforcing
/etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled,然后重启。semanage login -m -s user_u -r s0 __default__ 会修改默认用户映射,影响之后登录的所有非映射用户(root 等显式映射的用户除外)。请您先在测试环境验证影响,再用于生产环境;如需恢复,可执行 semanage login -m -s unconfined_u -r s0 __default__。# 查看 SELinux 用户映射semanage login -l# 将默认用户映射到 user_u(限制常规用户)semanage login -m -s user_u -r s0 __default__# 创建受限管理员用户adduser -G wheel -Z sysadm_u <username>
audit2allow 基于现有拒绝日志自动生成的策略可能过于宽泛,赋予超出必要的权限。建议您在生成后审查 mypolicy.te 中的规则内容,确认授权范围合理后再执行 semodule -i 安装。# 1. 搜索 AVC 拒绝日志ausearch -m AVC,USER_AVC,SELINUX_ERR -ts recent# 2. 如果无日志,可能被 dontaudit 规则屏蔽semodule -DB # 临时禁用 dontaudit# 3. 使用 sealert 查看详细分析sealert -l "*"# 4. 用 audit2allow 自动生成策略audit2allow -M mypolicy < /var/log/audit/audit.logsemodule -i mypolicy.pp# 5. 恢复 dontaudit 规则semodule -B
文档反馈