CentOS Swap安全设置与防护指南
Swap分区/文件是攻击者潜在的目标(如通过填充Swap耗尽系统资源),若系统物理内存充足(如≥16GB且无内存密集型应用),建议完全禁用以消除风险。
swapoff命令立即关闭所有Swap分区/文件,例如sudo swapoff -a,可通过swapon --show或free -h验证是否关闭。/etc/fstab文件(系统启动时自动挂载Swap的配置文件),找到Swap相关行(如/dev/mapper/centos-swap swap swap defaults 0 0或/swapfile none swap sw 0 0),在行首添加#注释或直接删除,保存后执行sudo swapoff -a关闭当前Swap,重启系统确认生效。即使禁用了Swap,若系统曾使用过Swap,旧数据可能残留,加密可彻底防止敏感信息泄露。推荐使用LUKS(Linux Unified Key Setup)加密:
sudo yum install cryptsetup -y(CentOS 7/8均适用)。dd命令生成随机密钥文件(如4096字节),例如sudo dd if=/dev/urandom of=/root/swap.key bs=1 count=4096,设置密钥文件权限为仅root可读:sudo chmod 600 /root/swap.key。/dev/sda2),执行sudo cryptsetup luksFormat /dev/sda2 /root/swap.key(确认覆盖数据);若为Swap文件(如/swapfile),先删除旧文件,再创建新文件并加密:sudo rm -f /swapfile && sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 && sudo cryptsetup luksFormat /swapfile /root/swap.key。/etc/crypttab文件,添加加密Swap条目(如swap /dev/sda2 /root/swap.key swap,cipher=aes-xts-plain64),编辑/etc/fstab文件,将Swap挂载行改为映射设备(如/dev/mapper/swap none swap defaults 0 0),保存后重启系统,Swap将自动加密挂载。swappiness参数(范围0-100)决定系统使用Swap的倾向,值越高越易使用Swap(默认值为60)。降低该值可减少Swap使用,降低敏感数据写入Swap的风险:
cat /proc/sys/vm/swappiness。echo 10 > /proc/sys/vm/swappiness(将值设为10,仅当前生效)。/etc/sysctl.conf文件,添加vm.swappiness=10,执行sudo sysctl -p使配置生效。确保Swap文件/分区仅root用户可访问,防止普通用户读取或篡改:
/swapfile),创建后立即设置权限:sudo chmod 600 /swapfile。/dev/sda2),可通过lsblk -f查看分区UUID,编辑/etc/fstab文件,确保挂载选项为defaults(默认已限制root访问)。及时发现异常Swap使用(如Swap使用率突然升高),可能是内存泄漏或攻击的迹象:
swapon --show(显示当前启用的Swap分区/文件及大小)、free -h(以易读格式显示内存和Swap使用情况)。watch -n 1 "free -h"(每秒刷新一次内存和Swap使用情况)。sysstat工具(sudo yum install sysstat -y),使用sar -S命令查看Swap历史使用趋势(如每小时Swap使用量)。