# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 修改以下参数
Protocol 2
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 60
ClientAliveInterval 300
ClientAliveCountMax 0
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
# 重启SSH服务
sudo systemctl restart sshd
# 安装OpenSSL
sudo yum install openssl -y
# 生成自签名证书(生产环境建议使用CA签发证书)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
# 安装加密工具
sudo yum install cryptsetup -y
# 加密分区(请替换/dev/sdX为实际设备)
sudo cryptsetup luksFormat /dev/sdX
sudo cryptsetup luksOpen /dev/sdX encrypted_drive
sudo mkfs.ext4 /dev/mapper/encrypted_drive
# 设置自动挂载
echo "encrypted_drive /dev/sdX none luks" | sudo tee -a /etc/crypttab
echo "/dev/mapper/encrypted_drive /mnt/encrypted ext4 defaults 0 2" | sudo tee -a /etc/fstab
# 设置敏感目录权限
sudo chmod 700 /path/to/sensitive/directory
sudo chown root:root /path/to/sensitive/directory
# 设置敏感文件权限
sudo chmod 600 /path/to/sensitive/file
sudo chown root:root /path/to/sensitive/file
-- 启用表空间加密
INSTALL PLUGIN file_key_management SONAME 'file_key_management.so';
SET GLOBAL innodb_file_per_table=ON;
SET GLOBAL innodb_encrypt_tables=ON;
SET GLOBAL innodb_encryption_threads=4;
-- 创建加密表
CREATE TABLE sensitive_data (
id INT PRIMARY KEY,
data VARBINARY(255)
) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
-- 安装pgcrypto扩展
CREATE EXTENSION pgcrypto;
-- 加密数据示例
INSERT INTO users (username, password)
VALUES ('admin', pgp_sym_encrypt('mypassword', 'AES_KEY'));
# 检查SELinux状态
sestatus
# 如未启用,修改配置文件
sudo vi /etc/selinux/config
SELINUX=enforcing
# 为敏感数据设置安全上下文
sudo semanage fcontext -a -t etc_t "/path/to/sensitive/data(/.*)?"
sudo restorecon -Rv /path/to/sensitive/data
# 仅允许必要端口
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 安装auditd
sudo yum install audit -y
# 监控敏感文件访问
sudo auditctl -w /path/to/sensitive/file -p war -k sensitive_data_access
# 使配置永久生效
sudo vi /etc/audit/rules.d/audit.rules
-w /path/to/sensitive/file -p war -k sensitive_data_access
# 编辑日志轮转配置
sudo vi /etc/logrotate.d/sensitive_logs
# 添加以下内容
/path/to/sensitive/logs/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 640 root root
sharedscripts
postrotate
/usr/bin/systemctl reload rsyslog >/dev/null 2>&1 || true
endscript
}
sudo yum update -y
# 检查未授权的SUID/SGID文件
sudo find / -perm /6000 -type f -exec ls -ld {} \; 2>/dev/null
# 检查未授权的世界可写文件
sudo find / -perm -2 -type f -exec ls -ld {} \; 2>/dev/null
# 备份LUKS头信息
sudo cryptsetup luksHeaderBackup /dev/sdX --header-backup-file /secure/location/luks-header-backup.img
以上配置可根据实际环境需求进行调整,建议在实施前在测试环境中验证配置效果。