在Debian上确保SQL管理安全,可以遵循以下步骤:
首先,确保你的Debian系统是最新的,以减少安全漏洞。
sudo apt update && sudo apt upgrade -y
使用ufw(Uncomplicated Firewall)来配置防火墙规则,只允许必要的端口和服务。
sudo apt install ufw -y
sudo ufw allow 22/tcp # SSH
sudo ufw allow 3306/tcp # MySQL/MariaDB
sudo ufw enable
编辑MySQL/MariaDB的配置文件/etc/mysql/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf。
[mysqld]
bind-address = 127.0.0.1 # 只允许本地连接
skip-name-resolve # 禁用DNS解析
重启MySQL/MariaDB服务:
sudo systemctl restart mysql
编辑PostgreSQL的配置文件/etc/postgresql/<version>/main/postgresql.conf。
listen_addresses = 'localhost'
编辑pg_hba.conf文件以限制连接:
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 md5
重启PostgreSQL服务:
sudo systemctl restart postgresql
确保所有数据库用户都使用强密码,并定期更换。
ALTER USER 'username'@'localhost' IDENTIFIED BY 'strong_password';
为每个数据库用户分配最小必要的权限。
GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'username'@'localhost';
配置数据库服务器以使用SSL/TLS加密连接。
编辑/etc/mysql/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf。
[mysqld]
ssl-ca=/path/to/ca-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem
重启MySQL/MariaDB服务:
sudo systemctl restart mysql
编辑postgresql.conf。
ssl = on
ssl_cert_file = '/path/to/server.crt'
ssl_key_file = '/path/to/server.key'
ssl_ca_file = '/path/to/root.crt'
编辑pg_hba.conf以启用SSL连接。
hostssl all all 127.0.0.1/32 md5
重启PostgreSQL服务:
sudo systemctl restart postgresql
定期备份数据库,并确保备份文件存储在安全的位置。
mysqldump -u username -p database_name > backup.sql
pg_dump -U username -d database_name > backup.sql
启用并定期检查数据库服务器的日志文件,以便及时发现异常活动。
编辑/etc/mysql/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf。
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2
重启MySQL/MariaDB服务:
sudo systemctl restart mysql
编辑postgresql.conf。
log_statement = 'all'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_min_duration_statement = 2000
重启PostgreSQL服务:
sudo systemctl restart postgresql
通过以上步骤,你可以大大提高在Debian上SQL管理的安全性。