插件窝 干货文章 如何使用安全的数据库访问控制保护CentOS服务器中的数据

如何使用安全的数据库访问控制保护CentOS服务器中的数据

数据库 MySQL 安全 user 28    来源:    2025-04-16

CentOS服务器数据库安全访问控制指南

作为IT工程师,保护CentOS服务器上的数据库数据安全至关重要。以下是一套全面的安全访问控制方案:

1. 数据库基础安全配置

MySQL/MariaDB安全设置

# 运行安全安装脚本
sudo mysql_secure_installation

# 移除匿名用户
DELETE FROM mysql.user WHERE User='';

# 移除测试数据库
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';

# 重命名root账户(可选)
RENAME USER 'root'@'localhost' TO 'admin'@'localhost';

PostgreSQL安全设置

# 编辑pg_hba.conf文件
sudo vim /var/lib/pgsql/data/pg_hba.conf

# 修改认证方法为md5或scram-sha-256
# host    all             all             127.0.0.1/32            md5

2. 访问控制策略

最小权限原则

-- 创建专用用户并授予最小必要权限
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'app_user'@'%';

网络访问限制

# 使用iptables限制数据库端口访问
sudo iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

# 保存iptables规则
sudo service iptables save

3. 加密连接配置

MySQL SSL配置

# 在my.cnf中添加
[mysqld]
ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem

强制SSL连接

ALTER USER 'app_user'@'%' REQUIRE SSL;

4. 审计与监控

启用数据库审计

# 安装审计插件(MySQL企业版或MariaDB审计插件)
INSTALL PLUGIN server_audit SONAME 'server_audit.so';

# 配置审计参数
SET GLOBAL server_audit_events='connect,query,table';
SET GLOBAL server_audit_logging=ON;

使用OSSEC进行日志监控

# 安装OSSEC
sudo yum install -y ossec-hids-server

# 配置数据库日志监控
/var/log/mysqld.log -> /var/ossec/etc/rules/mysql_rules.xml

5. 定期维护

密码轮换策略

# 使用cron作业定期提醒密码更改
0 0 1 * * /usr/local/bin/password_rotation_reminder.sh

用户权限审计

-- 定期检查用户权限
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'app_user'@'%';

6. 备份与恢复安全

加密备份

# 使用openssl加密数据库备份
mysqldump -u root -p app_db | openssl enc -aes-256-cbc -salt -out /backups/app_db_$(date +%F).sql.enc -k "EncryptionKey"

安全备份传输

# 使用SFTP而非FTP传输备份
sftp -i /path/to/ssh_key backupuser@backup_server:/backup_location <<< $'put /local/backup.sql'

7. 高级安全措施

使用Vault管理数据库凭证

# 安装HashiCorp Vault
sudo yum install -y vault

# 配置数据库秘密引擎
vault secrets enable database
vault write database/config/mysql plugin_name=mysql-database-plugin

实施数据库防火墙

# 安装ProxySQL作为数据库防火墙
sudo yum install -y proxysql

# 配置查询规则过滤危险操作
INSERT INTO mysql_query_rules (rule_id,active,match_pattern,error_msg) 
VALUES (1,1,'^DELETE FROM.*WHERE 1=1','Dangerous DELETE blocked');

通过实施这些措施,您可以显著提高CentOS服务器上数据库的安全性。记得定期审查和更新安全策略,以应对新出现的威胁。