![关于 Linux 目录数据/加密的问题](https://linux22.com/image/1412715/%E5%85%B3%E4%BA%8E%20Linux%20%E7%9B%AE%E5%BD%95%E6%95%B0%E6%8D%AE%2F%E5%8A%A0%E5%AF%86%E7%9A%84%E9%97%AE%E9%A2%98.png)
我有一个目录,里面全是敏感数据,我想加密这个目录来防止外部攻击者。我仍然希望能够从目录中读取数据,并以原始形式将这些数据显示在网页上。数据加密工具(例如 eCryptFs)是否允许这样做?如果允许,当数据被挂载/卸载时,它究竟是如何工作的?自动挂载在这里起作用吗?
答案1
通常,如果安装了加密的文件系统/文件,则所有有权访问该文件夹(和 root)的用户都可以访问其内容。我认为解决您的问题最可行的方法是:
- 使用 LUKS 创建加密文件系统
- 在启动时挂载(或启动 HTTP 守护进程时)
- 不要把容器的钥匙放在盒子上(每次都输入密码很麻烦,但却是一个常见的错误)
- 将目录权限改为700
- 将所有权更改为网络服务器用户(通常
www-data
)
这将禁止系统上的任何人(www-data 和 root 除外)访问这些文件。
如果你真的想要获得最高程度的安全性,你可以编写如下脚本:
- 访问网页时,要求输入加密容器密码
- 挂载加密容器
- 检索必要的文件
- 卸载容器
请记住,安装/卸载是非常昂贵的操作,所以你的网页会变得非常慢。
答案2
您可以购买硬件令牌(智能卡)并使用存储在卡上的密钥。这样您就可以以批处理模式加密和解密文件,而无需在插入卡时存储密码(当您禁用卡用户 PIN 验证时)... 但也可以防止任何人盗用密钥。