centos缓存安全设置建议
小樊
46
2025-12-13 09:57:30
CentOS 缓存安全设置建议
一 通用安全原则
- 明确缓存边界:区分可缓存与不可缓存内容,避免将含有敏感信息(如个人数据、凭据、会话标识)的资源放入公共缓存;对动态、个性化或含Set-Cookie响应的内容禁用或缩短缓存时间。
- 最小权限与隔离:缓存目录与服务运行账户分离,仅授予必要权限;禁止缓存目录执行权限;系统分区与缓存分区分离,降低被污染或提权风险。
- 加密与完整性:对包含敏感数据的磁盘/目录级缓存使用LUKS加密;在虚拟化/云环境启用存储加密与宿主机安全基线。
- 高可用与可观测:为缓存服务配置健康检查与自动恢复(如服务异常自动拉起),并保留访问与缓存命中日志用于审计与故障排查。
- 变更可控:变更前备份配置与数据,变更后在灰度/低峰期滚动发布,并保留回滚方案。
二 Web 服务器与反向代理缓存
- Apache HTTP Server
- 启用并合理配置mod_cache/mod_cache_disk与mod_expires:对静态资源设置明确过期时间;对含Set-Cookie或用户私有内容使用CacheIgnoreHeaders Set-Cookie与CacheIgnoreNoLastMod On避免误缓存;为缓存目录设置受限权限与属主,仅httpd可读写。
- 示例(要点):
- LoadModule cache_module modules/mod_cache.so
- LoadModule cache_disk_module modules/mod_cache_disk.so
- CacheEnable disk /static
- CacheRoot “/var/cache/apache2/mod_cache_disk”
- CacheIgnoreHeaders Set-Cookie
- ExpiresActive On; ExpiresByType text/css “access plus 1 week”
- Nginx
- 对静态资源使用Cache-Control/Expires与ETag,通过location细粒度控制;对含敏感信息的接口与登录页设置no-store/no-cache与private。
- 启用open_file_cache时限制大小与年龄,避免缓存过时的文件元数据;为缓存与临时目录设置最小权限。
- 通用验证:使用curl -I检查响应头中的Cache-Control/Expires/ETag,确认仅预期资源被缓存。
三 应用层缓存 Redis 安全
- 网络与访问控制
- 仅在内网或VPC中开放,使用firewalld限制来源 IP:
- firewall-cmd --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port protocol=“tcp” port=“6379” accept’ --permanent
- firewall-cmd --reload
- 绑定到127.0.0.1或内网接口,禁用公网监听;为应用配置强口令与ACL(Redis 6+)。
- 持久化与高可用
- 根据业务选择RDB/AOF或两者结合;在异常断电风险场景下优先AOF(appendfsync everysec),并配置自动故障转移(如 Sentinel/Cluster)。
- 运行安全
- 以非 root专用用户运行;限制内存使用与最大连接数;开启日志与慢查询日志;定期升级与打补丁。
四 代理与透明缓存 Squid 安全
- 访问控制与最小暴露
- 仅允许来自受控网段的访问,默认deny all;限制管理接口仅localhost;仅开放必要端口(默认3128)。
- 示例(要点):
- http_access allow manager localhost
- http_access deny manager
- http_access deny !Safe_ports
- http_access deny CONNECT !SSL_ports
- http_access allow localnet
- http_access deny all
- 认证与细粒度策略
- 启用基本认证(htpasswd),结合源地址白名单与域名过滤实现“白名单+域名过滤+用户认证”三重防护;对敏感目标可配置cache deny。
- 运行与审计
- 指定cache_effective_user squid与专用缓存目录;保留access.log/cache.log并设置合理的轮转与保留周期;为透明代理配置iptables/nftables策略时注意回程路径与合规性。
五 虚拟机与存储层缓存安全
- KVM 磁盘缓存模式
- 权衡性能与安全:writethrough(安全性高、性能较低)、none(折中)、writeback(性能高、掉电风险大)。对含关键数据的虚机优先writethrough/none,写回模式应配合UPS与一致性检查。
- SSD 缓存加速(bcache)
- 使用bcache为HDD加速时,选择writethrough提升安全性,或writeback提升性能但需UPS与断电保护;动态调整策略与容量前确保数据备份与停机窗口。
- 目录/磁盘级加密
- 对缓存目录或专用缓存盘使用LUKS加密:cryptsetup luksFormat → luksOpen → 格式化挂载 → 在**/etc/crypttab与/etc/fstab配置自动解锁与挂载;妥善管理密钥/口令**并定期演练恢复流程。