在 CentOS 系统中实现文件系统加密,主要有两种主流方案。选择哪种取决于你的需求:是保护整个分区,还是仅加密特定敏感文件。下面将详细解析这两种方法,帮助你根据实际场景做出决策。
方法一:LUKS 加密(基于 dm-crypt)
这种方案适合用于全盘或分区级加密,安全性高且现代 CPU 通常支持硬件加速,性能损耗极小。简单来说,就是为整个硬盘分区添加一道密码锁,解锁后内部数据透明访问。操作步骤清晰易懂:
- 首先安装必要工具包:
sudo yum install cryptsetup。 - 加密指定分区(以 /dev/sdX 为例):
sudo cryptsetup luksFormat /dev/sdX。请注意,此操作会清空该分区现有数据,执行前务必做好备份确认。 - 接着打开加密分区:
sudo cryptsetup luksOpen /dev/sdX encrypted_volume。 - 格式化并挂载使用:先执行
sudo mkfs.ext4 /dev/mapper/encrypted_volume,再运行sudo mount /dev/mapper/encrypted_volume /mnt/encrypted。 - 如需开机自动挂载,还需编辑
/etc/crypttab和/etc/fstab文件,将密钥文件或密码持久化配置好。
方法二:文件级加密
这种方式灵活性更高,无需改动整个分区,仅针对特定文件或目录加密。适用于服务器上需要隔离的配置文件、数据库文件等敏感数据。两种常用工具介绍如下:
- GnuPG:适合加密单个文件。例如
gpg -c file.txt会生成加密文件file.txt.gpg,解密时使用gpg -d file.txt.gpg。操作简单直接,适合小文件场景。 - EncFS:适合加密整个目录。先安装
encfs-utils,然后通过encfs ~/encrypted ~/decrypted创建一对目录:~/encrypted是实际加密存储区域,~/decrypted是解密后挂载出来的可读视图。日常操作仅在~/decrypted中进行,数据会自动加密并回存到~/encrypted。
两种方案各有优势:LUKS 适合虚拟机、数据盘整体加密,解锁后内部文件透明访问;文件级加密则实现更细粒度的保护,即使系统其他部分被攻破,加密文件依然安全。根据你的实际需求选择合适的方案即可。
