在 Ubuntu 上保护 sqladmin(或类似数据库管理账号 / 管理面板) 的安全,通常从系统层、数据库层、网络层、应用层四个方面入手。下面以 MySQL / MariaDB 的 sqladmin 用户 以及 常见 sqladmin 管理页面(如 phpMyAdmin) 为例说明。
adduser dbadmin
usermod -aG sudo dbadmin
sudo passwd -l root
或修改 SSH 配置:
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
sudo systemctl restart ssh
ssh-keygen
ssh-copy-id dbadmin@server_ip
并禁用密码登录:
PasswordAuthentication no
在 MySQL 中:
CREATE USER 'sqladmin'@'127.0.0.1' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'127.0.0.1';
✅ 禁止 'sqladmin'@'%'
ALTER USER 'sqladmin'@'127.0.0.1'
IDENTIFIED BY 'Yf8@kL#9qP!2';
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
sudo systemctl restart mysql
SHOW GRANTS FOR 'sqladmin'@'127.0.0.1';
sudo ufw enable
sudo ufw allow 22
sudo ufw deny 3306
ssh -L 3306:127.0.0.1:3306 dbadmin@server_ip
sudo mv /usr/share/phpmyadmin /usr/share/secret-sqladmin
location /secret-sqladmin {
allow 1.2.3.4;
deny all;
}
sudo apt install apache2-utils
htpasswd -c /etc/nginx/sqladmin.htpasswd admin
使用 Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
SET GLOBAL general_log = 'ON';
sudo tail -f /var/log/mysql/error.log
sudo apt install fail2ban
✅ sqladmin 不应:
如果你能说明:
我可以给你一套更精确的安全方案。