以下是在Ubuntu上配置MariaDB安全设置的关键步骤,涵盖基础加固、访问控制、审计与加密等核心需求:
安装MariaDB
sudo apt update && sudo apt install mariadb-server
sudo systemctl start mariadb && sudo systemctl enable mariadb
运行安全脚本
sudo mysql_secure_installation
配置远程访问(如需)
/etc/mysql/mariadb.conf.d/50-server.cnf,修改 bind-address 为 0.0.0.0(允许所有IP)或指定IP段,重启服务生效。CREATE USER 'remote_user'@'%' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON 数据库名.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
限制权限
SELECT, INSERT),避免使用 ALL PRIVILEGES。DROP USER '无用用户'@'主机';/etc/mysql/mariadb.conf.d/50-server.cnf,添加:[mariadb]
plugin-load-add='server_audit.so'
server_audit_logging=ON
server_audit_events='CONNECT,QUERY,QUERY_DDL,QUERY_DML'
server_audit_file_path='/var/log/mysql/audit.log'
server_audit_file_rotate_size=100M
server_audit_file_rotations=10
sudo tail -f /var/log/mysql/audit.log
sudo mkdir -p /etc/mysql/ssl
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/mysql/ssl/server-key.pem -out /etc/mysql/ssl/server-cert.pem -days 365
[mysqld]
ssl-ca=/etc/mysql/ssl/server-cert.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem
require_secure_transport=ON
mysql -u root -p --protocol=tcp --ssl-ca=/etc/mysql/ssl/server-cert.pem 连接,检查 SHOW STATUS LIKE 'Ssl_cipher'; 是否显示加密信息。sudo apt install mariadb-backupsudo mariabackup --backup --target-dir=/var/backups/mariadb/$(date +%F) --user=root --password='密码'
sudo mariabackup --prepare --target-dir=/var/backups/mariadb/$(date +%F)
配置UFW防火墙
sudo ufw allow 3306/tcp # 仅允许必要端口
sudo ufw reload
定期更新与监控
sudo apt upgrade mariadb-server/var/log/mysql/error.log 和审计日志。sudo mysql_secure_installation 所有选项均完成。CONNECT、QUERY 等操作记录。SSL: Cipher in use is...。以上步骤参考自官方文档及社区实践,可根据实际需求调整细节。