在CentOS系统的运维管理中,敏感数据如用户隐私信息、业务配置密钥、数据库文件等如果未做加密处理,一旦系统被入侵或者存储介质丢失,就会面临泄露风险。通过合理的加密存储和传输方案,可以从根源上降低这类安全问题的发生概率。

一、CentOS系统下的加密存储方案
1. 磁盘分区加密(LUKS)
LUKS(Linux Unified Key Setup)是Linux系统通用的磁盘加密标准,支持对整块磁盘或者分区进行加密,CentOS默认自带相关的工具包,无需额外安装。
首先查看当前系统的磁盘分区情况,执行以下命令:
# 查看磁盘分区列表 lsblk
假设要对/dev/sdb1这个分区进行加密,首先初始化LUKS加密:
# 初始化分区加密,会提示设置加密密码 cryptsetup luksFormat /dev/sdb1
初始化完成后,需要打开加密分区并映射到逻辑设备:
# 打开加密分区,映射为mydata设备 cryptsetup luksOpen /dev/sdb1 mydata
之后可以对映射出的/dev/mapper/mydata设备创建文件系统:
# 创建ext4文件系统 mkfs.ext4 /dev/mapper/mydata # 创建挂载目录 mkdir /data # 挂载加密分区 mount /dev/mapper/mydata /data
如果需要开机自动挂载,需要配置/etc/crypttab和/etc/fstab文件,首先在crypttab中添加映射规则:
# 编辑crypttab文件 echo "mydata /dev/sdb1 none luks" >> /etc/crypttab
再在fstab中添加挂载配置:
# 编辑fstab文件 echo "/dev/mapper/mydata /data ext4 defaults 0 0" >> /etc/fstab
2. 单个文件/目录加密(GnuPG)
如果只需要对少量敏感文件进行加密,不需要对整个分区操作,可以使用GnuPG工具,它支持对文件进行非对称或者对称加密。
对称加密单个文件的命令如下:
# 对称加密test.txt文件,会生成test.txt.gpg加密文件 gpg -c test.txt # 解密加密文件 gpg test.txt.gpg
二、CentOS系统下的加密传输方案
1. SSH传输加密
CentOS默认使用SSH协议进行远程登录和文件传输,SSH本身自带加密能力,但是需要进一步优化配置提升安全性。
首先修改SSH的配置文件/etc/ssh/sshd_config,调整以下配置项:
# 禁止root用户直接登录 PermitRootLogin no # 仅允许使用SSH密钥登录,禁止密码登录 PasswordAuthentication no # 使用更安全的加密算法 Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com # 重启SSH服务生效配置 systemctl restart sshd
生成SSH密钥对的命令如下:
# 生成RSA密钥对,默认存放在~/.ssh目录 ssh-keygen -t rsa -b 4096 # 将公钥上传到目标服务器 ssh-copy-id user@目标服务器IP
2. HTTPS传输加密
如果CentOS系统上部署了Web服务,需要配置HTTPS来加密客户端和服务端之间的传输数据,这里以Nginx服务为例说明配置流程。
首先申请SSL证书,假设证书文件为/server.crt,私钥文件为/server.key,修改Nginx的配置文件:
server {
listen 443 ssl;
server_name ipipp.com;
# 配置证书和私钥路径
ssl_certificate /server.crt;
ssl_certificate_key /server.key;
# 配置加密协议和套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
# 其他业务配置
location / {
root /usr/share/nginx/html;
index index.html;
}
}
# 将80端口请求重定向到HTTPS
server {
listen 80;
server_name ipipp.com;
return 301 https://$host$request_uri;
}
三、加密方案的最佳实践建议
- 定期备份LUKS的加密头信息,避免头部损坏导致数据无法解密,备份命令为
cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /backup/luks_header.img - 加密密码和SSH私钥需要妥善保存,不要明文存放在系统其他目录中
- 定期检查SSH和HTTPS的加密配置,及时禁用老旧不安全的加密算法和协议版本
- 对于高敏感数据,可以结合存储加密和传输加密同时使用,形成双层防护