Ubuntu Swap安全设置指南
Swap存储的是系统临时数据(如未使用的内存页),必须防止普通用户误操作或恶意篡改。通过chmod命令设置权限为600(仅root可读写),是Swap安全的基础要求。
操作命令:
sudo chmod 600 /swapfile # 若使用Swap文件
# 或针对Swap分区(如/dev/sda2):
sudo chmod 600 /dev/sda2
验证方法:
运行ls -l /swapfile,若输出显示-rw-------(所有者root可读写,其他用户无权限),则说明权限设置正确。
vm.swappiness参数决定了系统使用Swap的频率(取值0-100,值越高越倾向于使用Swap)。降低该值可减少敏感数据(如内存中的密码、密钥)被写入Swap的风险,尤其适合内存充足的系统。
操作命令:
echo 'vm.swappiness = 10' | sudo tee -a /etc/sysctl.conf # 推荐值:10-20(默认60)
sudo sysctl -p # 立即生效
说明:
10-20;1或0(0表示仅在内存耗尽时使用Swap)。通过工具定期检查Swap使用情况,及时发现异常(如Swap长期高占用,可能提示内存泄漏或配置不合理)。
常用命令:
free -h # 查看内存与Swap总使用量
swapon --show # 查看当前启用的Swap设备及大小
vmstat 1 5 # 实时监控Swap in/out速率(1秒采样,共5次)
建议:
每周至少检查1次,若Swap used值长期超过总Swap大小的30%,需考虑升级物理内存或优化应用。
Swap本身不提供加密功能,若系统处理敏感数据(如用户密码、数据库记录),需通过LUKS(Linux统一密钥设置)加密Swap,确保数据在硬盘中不可读。
操作步骤:
① 安装cryptsetup工具:
sudo apt update && sudo apt install cryptsetup -y
② 关闭现有Swap:
sudo swapoff -a # 关闭所有Swap
③ 加密Swap分区(以/dev/sda2为例):
sudo cryptsetup luksFormat /dev/sda2 # 格式化分区为LUKS加密卷(需确认操作)
sudo cryptsetup luksOpen /dev/sda2 my_encrypted_swap # 打开加密卷(命名为my_encrypted_swap)
④ 格式式化并启用加密Swap:
sudo mkswap /dev/mapper/my_encrypted_swap # 格式化为Swap文件系统
sudo swapon /dev/mapper/my_encrypted_swap # 启用加密Swap
⑤ 配置开机自启:
编辑/etc/crypttab(添加加密卷映射):
echo 'my_encrypted_swap /dev/sda2 none luks' | sudo tee -a /etc/crypttab
编辑/etc/fstab(开机自动启用Swap):
echo '/dev/mapper/my_encrypted_swap none swap sw 0 0' | sudo tee -a /etc/fstab
重启验证:
sudo reboot
sudo swapon --show # 应显示加密的Swap设备(如/dev/mapper/my_encrypted_swap)
注意:
fallocate -l 4G /swapfile),再按上述步骤加密。若系统内存充足(如≥16GB)且无需内存密集型任务,可完全关闭Swap,避免数据写入硬盘带来的泄露风险。
操作步骤:
① 关闭当前Swap:
sudo swapoff -a
② 删除Swap文件/分区配置:
/etc/fstab中的对应行:sudo rm /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab
fdisk/gparted工具删除分区,并更新/etc/fstab。cryptsetup)为最新版本,修复已知安全漏洞;