针对涉密档案存储,最底层的防护是磁盘加密。即使服务器硬盘被物理拆卸,数据也无法被读取。本指南使用Linux系统标准的LUKS(Linux Unified Key Setup)技术进行全盘或分区加密。此方案适用于CentOS 7+或Ubuntu 18.04+环境。
首先确保系统中已安装cryptsetup工具,这是操作LUKS加密的核心组件。执行以下命令进行安装:
对于CentOS/RHEL系统:
```bash yum install -y cryptsetup-luks ```对于Ubuntu/Debian系统:
```bash apt-get update && apt-get install -y cryptsetup ```假设新增了一块数据盘/dev/sdb用于存储涉密档案。使用lsblk命令查看当前磁盘状态:
如果/dev/sdb尚未分区,使用fdisk对其进行分区。输入n创建新分区,p选择主分区,后续步骤一路回车使用默认值,最后输入w保存并退出。完成后将得到/dev/sdb1分区。
执行以下命令对/dev/sdb1进行LUKS格式化。此步骤会设置加密密码,请务必牢记该密码,丢失后数据无法恢复:
系统会提示确认操作,输入YES(必须大写)。随后输入两次加密密码。参数-y表示验证密码输入,-v显示详细过程。
加密后的分区不能直接挂载,需要先映射为一个虚拟设备。执行以下命令打开加密分区,并将其映射为secure_archive:
输入刚才设置的密码。成功后,会在/dev/mapper/secure_archive生成映射文件。接下来在该映射设备上创建ext4文件系统:
创建挂载点目录并挂载:
```bash mkdir -p /data/secure_archive mount /dev/mapper/secure_archive /data/secure_archive ```为了实现开机自动挂载(注意:由于LUKS需要密码交互,完全无人值守自动挂载需要配合keyfile脚本,此处提供基于密码的手动映射配置,及自动挂载配置)。首先获取UUID:
```bash blkid /dev/sdb1 ```编辑/etc/crypttab文件,添加如下内容(将UUID替换为实际值):
编辑/etc/fstab文件,添加挂载配置:
至此,涉密档案的底层加密存储已构建完成。重启服务器后,系统会提示输入该分区的密码以解锁挂载。
除了磁盘加密,对于极高敏感度的单份档案,建议采用GPG进行文件级对称加密。这样即使文件被拷贝出服务器,没有密码也无法打开。
大多数Linux发行版默认自带GPG。若未安装,执行:
```bash yum install -y gnupg2 或 apt-get install -y gnupg ```假设有一个名为secret_plan.pdf的涉密文件。使用以下命令进行AES256对称加密:
执行后会提示设置解密密码。加密完成后会生成secret_plan.pdf.gpg文件。此时务必删除原始明文文件:

参数解释:-u删除后截断,-z最后用0覆盖,-n 3覆盖3次,确保数据无法通过磁盘恢复工具找回。
当需要查阅档案时,使用以下命令解密:
```bash gpg --output secret_plan.pdf --decrypt secret_plan.pdf.gpg ```输入正确密码后,明文文件将被还原。查阅完毕后,再次使用shred命令清除明文。
存储安全后,必须防止通过网络入侵获取数据。需禁用密码登录,强制使用SSH密钥认证,并锁定关键目录。
在管理端机器(如你的跳板机或个人电脑)生成密钥对(如果已有则跳过):
```bash ssh-keygen -t rsa -b 4096 -f ~/.ssh/archive_admin_key ```一路回车,生成私钥archive_admin_key和公钥archive_admin_key.pub。
将公钥内容复制到服务器的~/.ssh/authorized_keys中。若目录不存在则创建:
编辑SSH服务配置文件/etc/ssh/sshd_config,找到以下参数并修改为指定值。为了防止配置遗漏,建议直接在文件末尾添加这些覆盖配置:
注意:将PermitRootLogin设置为no禁止root直接登录,强制使用普通用户登录后再提权,这是必须的安全步骤。
重启SSH服务使配置生效:
```bash systemctl restart sshd ````确保只有特定的用户组才能访问挂载点/data/secure_archive:
使用chattr命令防止误删除(即使是root用户也需要先解锁才能删除):
+a属性表示只能追加数据,不能删除或修改已有文件内容,非常适合档案存储场景。
为了满足合规要求,必须记录所有对涉密档案目录的访问、修改和删除操作。使用Linux Auditd系统实现。
使用auditctl命令添加监控规则。监控/data/secure_archive目录下的所有写入、属性修改和删除操作:
参数解释:-w指定路径,-p wa监控写入和属性变更,-k给规则打标签方便检索。
为了防止重启失效,将规则写入配置文件/etc/audit/rules.d/archive.rules:
当有人尝试操作档案时,可以使用ausearch命令查询日志:
该命令会输出详细的时间戳、用户ID、操作类型(如open、unlink)和结果。结合日志分析工具(如ELK或简单的grep脚本),即可实时监控涉密档案的访问动态。