插件窝 干货文章 如何在Linux上设置数据加密

如何在Linux上设置数据加密

加密 文件 sudo encrypted 459    来源:    2025-04-15

在Linux系统中设置数据加密可以通过多种方式实现,涵盖磁盘加密、文件系统加密、目录/文件加密以及网络传输加密。以下是详细的方案分类和操作指南:


一、全盘加密(适用于新系统安装)

1. LUKS (Linux Unified Key Setup) + dm-crypt

  • 适用场景:加密整个磁盘或分区(如 /home 或根分区)。
  • 步骤

    # 安装工具
    sudo apt-get install cryptsetup (Debian/Ubuntu)
    sudo dnf install cryptsetup (Fedora/RHEL)
    
    # 加密分区(如 /dev/sdaX)
    sudo cryptsetup luksFormat /dev/sdaX  # 设置密码
    sudo cryptsetup open /dev/sdaX encrypted_volume  # 解锁
    sudo mkfs.ext4 /dev/mapper/encrypted_volume    # 格式化
    sudo mount /dev/mapper/encrypted_volume /mnt   # 挂载
    
  • 开机自动解锁
    • 修改 /etc/crypttab 添加条目: encrypted_volume /dev/sdaX none luks
    • 更新 initramfs:sudo update-initramfs -u

二、目录/文件加密

1. eCryptfs(用户空间文件系统加密)

  • 适用场景:加密用户主目录或特定目录。
  • 步骤

    # 安装工具
    sudo apt-get install ecryptfs-utils
    
    # 加密目录(交互式设置)
    sudo mount -t ecryptfs ~/Private /mnt/private
    # 按提示选择加密选项(密码、算法等)
    
  • 自动挂载:通过 /etc/fstab 或 PAM 模块(如 pam_ecryptfs)实现。

2. EncFS(基于FUSE的加密文件系统)

  • 适用场景:动态加密目录内容。
  • 步骤bash sudo apt-get install encfs encfs ~/.encrypted ~/visible # 创建加密目录 # 输入密码后,文件在 `~/visible` 中透明解密

三、单文件加密

1. GPG(对称加密)

```bash # 加密文件 gpg -c secret.txt # 生成 secret.txt.gpg(需输入密码)

# 解密文件 gpg -d secret.txt.gpg > secret.txt ```

2. OpenSSL

```bash # AES加密文件 openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# 解密 openssl enc -d -aes-256-cbc -in file.enc -out file.txt ```


四、网络传输加密

1. SSH(SCP/SFTP)

bash scp -r encrypted_dir user@remote:/path/to/dest sftp user@remote

2. VPN(WireGuard/OpenVPN)

bash # WireGuard示例 sudo apt install wireguard wg genkey | tee privatekey | wg pubkey > publickey # 配置见 /etc/wireguard/wg0.conf


五、密钥管理

  • 密码保护:使用 gpg-agentssh-agent 缓存密码。
  • 硬件安全模块(HSM):如 YubiKeyOpenSC 集成。

六、审计与验证

  • 检查加密状态bash sudo cryptsetup status /dev/mapper/encrypted_volume sudo dmsetup info /dev/mapper/encrypted_volume
  • 日志监控:通过 journalctl -u systemd-cryptsetup 查看解密日志。

注意事项

  1. 备份密钥:LUKS 头备份:cryptsetup luksHeaderBackup /dev/sdaX --header-backup-file luks_header.bak
  2. 性能影响:加密可能降低 I/O 性能(AES-NI 可加速)。
  3. 灾难恢复:确保密码或密钥安全存储(如离线USB)。

根据需求选择合适方案:全盘加密(LUKS)适合物理安全风险,目录加密(eCryptfs/EncFS)适合多用户环境,文件加密(GPG)适合灵活场景。