一、系统加密策略
全系统加密策略(System-wide Crypto Policy)是 TencentOS Server 的加密子系统配置组件,涵盖 TLS、IPSec、SSH、DNSSEC 和 Kerberos 协议。设置全系统策略后,应用程序会遵循该策略,拒绝使用不符合策略的算法和协议。如需覆盖默认行为,也可对单个应用程序进行自定义。
二、加密策略级别
| 策略级别 | 说明 |
| 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
七、共享系统证书
TencentOS Server 的共享系统证书机制使 NSS、GNUTLS、OpenSSL 和 Java 能够共享默认证书源,包括 CA 证书锚点和黑名单信息。默认信任存储包含 Mozilla CA 列表。
八、证书存储路径
| 用途 | 路径 |
| 信任锚点 | /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
十一、漏洞及配置合规性扫描
TencentOS Server 提供基于 SCAP(Security Content Automation Protocol)标准的自动化合规审计工具,支持对系统进行配置扫描、漏洞扫描和合规修复。
十二、配置合规工具
| 工具 | 说明 |
| SCAP Workbench | 图形化界面工具,对单个系统执行配置和漏洞扫描,生成安全报告 |
| OpenSCAP(oscap) | 命令行工具,对本地系统执行配置和漏洞扫描,支持合规修复 |
| SCAP Security Guide(SSG) | 安全策略集合,提供针对 Linux 系统的 XCCDF 配置文件和 OVAL 检测脚本 |
| Script Check Engine(SCE) | 可选扩展,支持用 Bash、Python 等脚本编写自定义检查逻辑 |
注意:说明:详细使用方法,请联系与你对接的商务人员获取。
十三、完整性检查(AIDE)
AIDE(Advanced Intrusion Detection Environment)通过创建文件数据库快照,检测系统文件是否被篡改。
十四、安装与初始化
# 安装 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
十六、块设备加密(LUKS)
TencentOS Server 使用 LUKS(Linux Unified Key Setup)作为块设备加密的默认实现。LUKS 对整个块设备进行加密,支持多密钥插槽,适合保护移动存储介质和磁盘驱动器中的数据。
注意:警告:
注意:LUKS 仅在系统关闭时保护数据。系统启动并解密后,文件将处于明文状态。
十七、LUKS 特性
·对整个块设备进行加密,适合保护可移动存储介质。
·提供密码增强,防止字典攻击。
·支持多个密钥插槽,可添加备份密钥或密码。
·默认加密算法为 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/ 下的映射设备访问。
20、审计系统(auditd)
Linux 审计系统用于记录系统中的安全策略违规事件,对于生产环境至关重要。
21、审计系统功能
·统计安全策略违规事件的时间、类型和结果
·监控文件访问和系统调用
·记录用户操作和身份验证事件
·支持按条件搜索事件和生成报告
22、auditd 配置参数
主要配置文件为 /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 |
23、启动与管理
# 启动并设置开机自启systemctl start auditdsystemctl enable auditd# 查看状态systemctl status auditd# 重新加载配置service auditd reload
24、定义审计规则
# 监控文件访问(记录对 /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
25、持久化审计规则
将规则写入 /etc/audit/rules.d/ 目录下的 .rules 文件中,然后加载:
# 加载规则augenrules –load# 查看已加载规则auditctl -l
26、查询审计日志
# 搜索特定事件类型ausearch -m AVC,USER_AVC -ts recent# 搜索登录失败记录ausearch -m USER_LOGIN -ts '7/02/2022' '18:00:00' -sv no# 生成登录报告aureport –login -i# 生成所有事件报告aureport
27、USBGuard — 抵御 USB 设备攻击
USBGuard 是一个软件框架,基于内核 USB 设备授权功能,使用允许/禁止设备列表来保护系统免受恶意 USB 设备攻击。
28、安装与启用
注意:警告:
注意: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
29、管理 USB 设备
# 列出识别的 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
30、创建自定义策略
# 生成策略(不包含哈希)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
31、将审计事件记录到 Linux 审计日志
编辑 /etc/usbguard/usbguard-daemon.conf,将 AuditBackend 改为 LinuxAudit:
AuditBackend=LinuxAudit
systemctl restart usbguard# 验证ausearch -ts recent -m USER_DEVICE
32、SELinux 配置
SELinux(Security-Enhanced Linux)提供强制访问控制(MAC),为系统提供额外的安全层。TencentOS Server 默认启用 SELinux(enforcing 模式,targeted 策略)。
33、工作模式
| 模式 | 说明 |
| enforcing | 强制执行安全策略,违反规则的访问被拒绝并记录 |
| permissive | 宽容模式,违反规则仅记录日志,不拒绝 |
| disabled | 禁用 SELinux |
# 查看当前模式getenforcesestatus# 临时切换模式setenforce 0 # 切换到 permissivesetenforce 1 # 切换到 enforcing
永久修改模式:编辑 /etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled,然后重启。
34、管理限制用户
注意: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>
35、SELinux 权限问题排查
注意: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