如何制作加密文件/目录?(Ubuntu 20.04 LTS)

Dun*_*can 14 encryption

我有一台联想电脑,正在运行 Ubuntu 20.04 LTS。

我想加密通过 USB 端口连接到电脑的外置硬盘上的文件或目录(以存储应该非常安全的数据)。

如何解决这个问题?

C.S*_*ron 13

如何制作加密文件/目录

  • 从 Universe 存储库安装 p7zip-full

  • 右键单击文件或文件夹并选择Compress

  • 确认存档名称并选择.7z,然后选择Create

  • 右键单击 .7z 存档选择使用存档管理器打开。

  • 选择右上角的三行图标,单击密码以创建 AES-256 加密存档。

笔记

您需要安装 7Zip 才能在 Windows 机器上打开存档。

选择并记住强密码是加密安全的重要组成部分。互联网上有很多关于这个主题的好文章。

HDD、SSD 和闪存驱动器都可以在没有通知的情况下变砖。SLC、(单级单元)SSD 和闪存驱动器的使用寿命最长。最好在保险箱中保留备份驱动器和密码副本。

有关 P7Zip-Desktop 的完整教程,请访问:https ://www.how2shout.com/linux/how-to-install-p7zip-gui-on-ubuntu-20-04-lts/


Rin*_*ind 10

(对于目录,我会将其压缩为文件)

加密可以通过...

gpg -c {file}
Run Code Online (Sandbox Code Playgroud)

提供一个合适的密码。解密:

gpg {file}.gpg
Run Code Online (Sandbox Code Playgroud)

并提供您使用的密码。如果您想使用 Windows 解密,您可以使用“gpg4win”。完成后删除原始文件。


rinzwind@schijfwereld:~$ ls -ltr test
-rwx------ 1 rinzwind rinzwind 418 mei 14 18:11 test
rinzwind@schijfwereld:~$ file test
test: POSIX shell script, ASCII text executable
rinzwind@schijfwereld:~$ gpg -c test
rinzwind@schijfwereld:~$ file test*
test:     POSIX shell script, ASCII text executable
test.gpg: GPG symmetrically encrypted data (AES256 cipher)
rinzwind@schijfwereld:~$ more test.gpg 
?
?KY+?7???S/?Gp??(????z&???Ag?????)|?IT[???>e?:\#/????Xko??^?)??@??m?6?'?
                                                                        ?vp;???
    ?XX???&?>Uk?v???rY!??sD????A?
r??=???'Ug??G?|6&(?l???\????fc??Q?Xn \?k?^?
?-?????G*??J??E
Run Code Online (Sandbox Code Playgroud)

然后我会添加一些额外的安全性:

  • sudo -i
  • chown root:root {file}
  • chmod 000 {file}
  • chattr +i {file}

最后一个设置不可变位并更改您第一次需要做的任何事情chattr -i {file}。它看起来像这样:

---------- 1 root     root       353 mei 16 09:05  test.gpg
Run Code Online (Sandbox Code Playgroud)

一个额外的额外方法可能是添加一个“。” 到文件的开头以使其隐藏。

  • 更改 USB 连接 HDD 的所有者或权限不会带来任何安全性,因为将其插入另一台主机可以轻松绕过它。更改一个额外点的名称也是一种通过默默无闻的安全性。 (2认同)

gro*_*taj 6

您可以使用cryptsetup稀疏文件来创建自动增长的加密容器。

如果您还没有cryptsetup安装,请运行:

$ sudo apt update && sudo apt install cryptsetup
Run Code Online (Sandbox Code Playgroud)

注意:这不适用于 FAT32 或 exFAT 卷,因为它们不支持稀疏文件。您需要使用 NTFS 或 ext4,或者提前预分配磁盘空间。

需要根,因为cryptsetup/dev.

  1. 创建一个稀疏文件,用于存储加密数据。稀疏文件不会预先占用所有空间,但会随着您向其中添加数据而增长。10G这意味着您将能够在容器中存储多达 10 GB 的数据(由于文件系统开销,实际上略少)。

    $ truncate -s 10G encrypted.luks
    
    Run Code Online (Sandbox Code Playgroud)

    (有些工具会从一开始就将此文件报告为 10 GB - 这很好)

  2. 在文件中创建一个加密容器。

    $ sudo cryptsetup luksFormat encrypted.luks
    
    
    WARNING!
    ========
    This will overwrite data on encrypted.luks irrevocably.
    
    Are you sure? (Type uppercase yes): YES
    Enter passphrase for encrypted.luks:
    Verify passphrase:
    
    Run Code Online (Sandbox Code Playgroud)
  3. 打开加密容器。

    $ sudo cryptsetup open encrypted.luks encrypted
    Enter passphrase for encrypted.luks:
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在容器内创建一个文件系统。(选择任何一个 - 它不必与驱动器的文件系统匹配。)

    $ sudo mkfs.ext2 -m0 -Lencrypted /dev/mapper/encrypted
    mke2fs 1.45.5 (07-Jan-2020)
    Creating filesystem with 2617344 4k blocks and 655360 inodes
    Filesystem UUID: d61f80bc-e3aa-41c8-91ca-97b8302d8bc0
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    
    Allocating group tables: done
    Writing inode tables: done
    Writing superblocks and filesystem accounting information: done
    
    Run Code Online (Sandbox Code Playgroud)
  5. 您现在可以挂载文件系统。

    $ sudo mount /dev/mapper/encrypted /mnt
    $ ls /mnt
    lost+found
    
    Run Code Online (Sandbox Code Playgroud)

如果使用正确的工具进行检查,容器文件应该远小于 10 GB:

$ du -h encrypted.luks
249M    encrypted.luks
$ du -h --apparent-size encrypted.luks
10G     encrypted.luks
Run Code Online (Sandbox Code Playgroud)

要“弹出”或移除容器:

  1. 卸载它。

    $ sudo umount /mnt
    
    Run Code Online (Sandbox Code Playgroud)
  2. 关闭容器。

    $ sudo cryptsetup close encrypted
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您想销毁容器,可以选择删除该文件。

    $ sudo rm encrypted.luks
    
    Run Code Online (Sandbox Code Playgroud)

请注意,当您从中删除文件时,容器不会缩小。您可以尝试打开它,--allow-discards然后fstrim -v /mnt再次在稀疏文件中打孔。它在本地磁盘上对我有用,但在 USB 驱动器上不起作用。也许这取决于“父”文件系统,我不知道。