CentOS 文件系统加密方法概览
在 CentOS 上,可按“范围与形态”将加密分为以下几类:块设备/分区级加密(如 LUKS/dm-crypt)、目录级堆叠加密(如 eCryptFS、EncFS)、文件级工具(如 GnuPG、OpenSSL),以及容器/虚拟化场景的卷加密。下面按场景给出方法与要点。
块设备与分区级加密 LUKS dm-crypt
sudo yum install -y cryptsetupsudo cryptsetup luksFormat /dev/sdX(输入强口令)sudo cryptsetup luksOpen /dev/sdX enc_volsudo mkfs.xfs /dev/mapper/enc_vol(或 ext4)sudo mount /dev/mapper/enc_vol /mntsudo umount /mnt && sudo cryptsetup luksClose enc_volsudo dd if=/dev/urandom of=/etc/luks.key bs=4096 count=1 && chmod 600 /etc/luks.keysudo cryptsetup luksAddKey /dev/sdX /etc/luks.key(先输入旧口令)/etc/crypttab:enc_vol /dev/sdX /etc/luks.key luks/etc/fstab:/dev/mapper/enc_vol /mnt xfs defaults 1 0目录级堆叠加密 eCryptFS EncFS
sudo yum install -y ecryptfs-utilssudo mount -t ecryptfs /path/encrypted /path/decrypted(按向导选择 cipher、key bytes、是否启用文件名加密 等)sudo umount /path/decryptedsudo yum install -y encfsencfs /path/encrypted /path/decrypted(首次设置挂载密码)fusermount -u /path/decrypted文件级与传输加密工具
gpg --gen-keygpg --encrypt --recipient "Name" file.txtgpg --decrypt file.txt.gpgopenssl genrsa -out private.key 2048;导出公钥:openssl rsa -in private.key -pubout -out public.keyopenssl rsautl -encrypt -in input.txt -inkey public.key -pubin -out encrypted.txtopenssl rsautl -decrypt -in encrypted.txt -inkey private.key -out output.txtvim -x file.txt(保存时设置口令,再次打开需口令)容器与虚拟化场景的加密
选型与实施建议