在 CentOS Minimal 上实现“加密”通常有几种不同层面,最常见的是 磁盘加密(全盘加密) 和 文件/目录加密。下面按使用场景给你一些实用方案。
一、磁盘加密(推荐:LUKS,最常用)
适用场景:防止服务器或硬盘丢失导致数据泄露
方式:使用 LUKS(Linux Unified Key Setup)
1️⃣ 安装系统时加密(最推荐)
在 CentOS Minimal 安装过程中:
- 进入 INSTALLATION DESTINATION
- 勾选 Encrypt my data
- 设置 磁盘加密密码
✅ 优点:
- 系统分区自动加密
- 启动时需要输入密码(或密钥)
⚠️ 注意:
-
/boot不能加密 - 服务器环境通常需要配置 自动解锁(Tang / Clevis / 密钥文件)
2️⃣ 已安装系统后加密(复杂,不推荐)
已安装系统再加密 风险高,通常需要:
- 备份数据
- 重新分区
- 使用
cryptsetup手动迁移
一般不建议在已有系统上折腾。
3️⃣ 手动创建加密分区(数据盘)
# 安装工具
yum install -y cryptsetup
# 加密分区(例如 /dev/sdb1)
cryptsetup luksFormat /dev/sdb1
# 打开加密设备
cryptsetup open /dev/sdb1 securedata
# 格式化
mkfs.ext4 /dev/mapper/securedata
# 挂载
mount /dev/mapper/securedata /mnt
开机自动挂载(可选):
/etc/crypttab
/etc/fstab
二、文件/目录加密(轻量级)
1️⃣ 使用 GPG(单文件加密)
gpg -c file.txt # 加密
gpg file.txt.gpg # 解密
✅ 简单、安全
❌ 不适合大量文件
2️⃣ 使用 eCryptfs(目录级加密)
yum install -y ecryptfs-utils
mount -t ecryptfs /data /data
✅ 透明加密
❌ 性能一般,维护较少
3️⃣ 使用 fscrypt(ext4 原生加密,较新)
仅适用于 ext4 / f2fs,CentOS 7 支持有限,CentOS 8+ 更好。
三、网络与远程访问加密(常见补充)
1️⃣ SSH 加密(默认)
systemctl enable sshd
建议:
- 禁用 root 密码登录
- 使用密钥认证
2️⃣ HTTPS / TLS
如果是服务器:
- Nginx / Apache + Let’s Encrypt
- 或自签证书
四、服务器无人值守自动解锁(进阶)
如果是 CentOS Minimal 服务器,不想每次输入密码:
方案 1:密钥文件
cryptsetup luksAddKey /dev/sda2 /root/keyfile
方案 2:Tang + Clevis(网络解锁)
适合数据中心、云环境
五、总结建议
| 需求 | 推荐方案 |
|---|---|
| 防止硬盘被盗 | ✅ LUKS 全盘加密 |
| 只保护部分数据 | ✅ 加密分区 |
| 单文件 | ✅ GPG |
| 服务器自动启动 | ✅ LUKS + 密钥 / Tang |
| 云服务器 | ✅ 云厂商磁盘加密 + LUKS |
如果你愿意,可以告诉我:
- ✅ CentOS 7 还是 8 / Stream?
- ✅ 物理机还是虚拟机?
- ✅ 是否允许重装系统?
我可以给你 一步一步的具体命令方案。