Tomb - Linux 的文件加密和个人备份工具
Tomb是一款免费的开源、小型、功能强大且简单的 GNU/Linux 文件加密工具。在撰写本文时,它由一个使用通用文件系统 GNU 工具和 Linux 内核加密 API(cryptsetup和LUKS )的 shell 脚本( zsh )组成。
它还采用各种 GNU/Linux 工具(如steghide、lsof、mlocate、resizefs、dcfld等)来扩展其功能。
Tomb用于在加密的、受密码保护的目录中创建秘密或个人文件的安全备份,这些目录称为tombs。这些目录只能使用其关联的密钥文件和密码打开。
创建tomb后,您可以单独存储其密钥文件,例如,您的 tomb 文件可以存在于远程服务器上,而密钥文件则位于您家中或办公室的笔记本电脑或台式机上。如果 tomb 文件位于您的笔记本电脑或台式机上,您可以将其隐藏在文件系统中,或者作为一种更安全的选择,将密钥存储在 USB 驱动器中。
此外,您还可以将墓穴隐藏在文件系统中,或将其安全地通过网络或外部存储介质移动;与其他朋友或同事分享。您还可以将钥匙隐藏在图像中,我们稍后会看到。
要求
为了运行,Tomb需要在系统上安装一些程序,例如zsh、gnupg、cryptsetup和pinentry-curses 。
如何在 Linux 系统中安装 Tomb
首先使用发行版默认包管理器安装以下所需的工具,并且我们还将安装steghide来添加在图像中隐藏密钥的功能。
$ sudo apt install gnupg zsh cryptsetup pinentry-curses steghide #Debian/Ubuntu $ sudo yum install gnupg zsh cryptsetup pinentry-curses steghide #CentOS/RHEL $ sudo dnf install gnupg zsh cryptsetup pinentry-curses steghide #Fedora 22+
安装所需的软件包后,下载适合您的发行版的稳定的 tomb 源代码,或者使用以下wget 命令直接在终端中下载,如图所示。
$ cd Downloads/ $ wget -c https://files.dyne.org/tomb/Tomb-2.5.tar.gz
接下来,提取刚刚下载的 tar 存档文件并将其移至解压后的文件夹中。
$ tar -xzvf Tomb-2.5.tar.gz $ cd Tomb-2.5
最后,以root 身份运行以下命令或使用sudo 命令获取 root 权限,以安装下的二进制文件/usr/local/bin/
。
$ sudo make install
如何在 Linux 系统中创建坟墓
安装tomb后,您可以通过为其创建新密钥来生成 tomb,并按照下面的说明设置其密码。
要创建一个墓穴,请使用dig子命令和-s
标志来设置它的大小(以MB为单位)(当添加文件后墓穴容量已满时,可以增加此大小)。
$ sudo tomb dig -s 30 example.tomb
example.tomb
然后使用forge子命令创建一个新密钥,并在系统提示时设置其密码。此操作需要一些时间才能完成,您只需坐下来放松一下,或者去给自己泡杯咖啡。
$ sudo tomb forge example.tomb.key
在创建密钥时,如果磁盘上存在交换空间, tomb会发出警告,如果交换内存已打开,tomb 会终止,如以下屏幕截图所示。这是因为磁盘上的交换内存存在安全风险(有关详细信息,请参阅文档或手册页)。
您可以使用-f
标志强制操作或通过以下命令关闭交换内存。
$ sudo swapoff -a
然后再次尝试创建古墓钥匙。
接下来,example.tomb
使用上述密钥对其进行格式化以将其锁定。-k
标志指定要使用的密钥文件的位置。
$ sudo tomb lock example.tomb -k example.tomb.key
如何开启新墓穴
要打开坟墓,请使用open子命令,系统将提示您输入创建坟墓时设置的密码。
$ sudo tomb open -k example.tomb.key example.tomb
从上一个命令的输出来看,坟墓已经被打开并安装上/media/example/
——这是你可以添加你的秘密文件的地方。
如果您有许多坟墓,您可以列出所有开放的坟墓并获取有关它们的一些信息,如下所示。
$ sudo tomb list
如何复制文件到 Open Tomb
现在,您可以按照如下方式将秘密或重要文件添加到墓穴中。每次需要添加更多文件时,请先打开墓穴,如上图所示。
$ sudo cp -v passwds.txt accounts.txt keys.txt -t /media/example/
打开 tomb 后,一旦您使用完毕或向其中添加文件,请使用close子命令关闭 tomb 文件。但如果某个进程正在使用打开的 tomb,则可能无法关闭。
$ sudo tomb close
您可以通过奔跑来关闭所有坟墓。
$ sudo tomb close all
要强制关闭打开的墓穴,即使有进程正在与其交互,也可以使用slam子命令。
$ sudo tomb slam OR $ sudo tomb slam all
如何在图像中隐藏古墓钥匙
也可以使用bury 子命令隐藏/编码图像中的 tomb 键,如下所示
$ sudo tomb bury -k example.tomb.key zizu.jpg
然后使用新创建的jpeg图像打开坟墓,如图所示。
$ sudo tomb open -k zizu.jpg example.tomb
您还可以使用exhume子命令恢复 jpeg 图像中编码的密钥。
$ sudo tomb exhume zizu.jpg -k example.tomb.key OR $ sudo tomb -f exhume zizu.jpg -k example.tomb.key #force operation if key exists in current directory
注意:请记住隐藏 tomb 密钥,不要将其与 tomb 保存在同一目录中。例如,我们将密钥移动example.tomb
到一个秘密位置(您可以使用自己的位置)或将其保存在外部媒体上,或通过 SSH 将其移动到远程服务器。
$ sudo mv example.tomb.key /var/opt/keys/
不幸的是,我们无法利用本指南中的所有 tomb 使用命令和选项,您可以查阅其手册页以获取更多信息。在那里,您将找到有关如何更改 tomb 的密钥和密码、调整其大小等的说明。
$ man tomb
Tomb Github 仓库:https://github.com/dyne/Tomb
概括
Tomb是一款简单但功能强大且易于使用的加密工具,用于在 GNU/Linux 系统上处理机密文件。通过下面的评论表分享您的想法。