0
点赞
收藏
分享

微信扫一扫

MySQL安全加固

君之言之 2024-09-28 阅读 20

安装mysql

MySQL安全加固_数据库

下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysq1-5.6.33-linux-glibc2.5x86_64.tar.gz

MySQL安全加固_MySQL_02

解压:tar -zxvfmysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

MySQL安全加固_mysql_03

复制解压后的mysql目录:

cp-rmysql-5.6.33-linux-glibc2.5-x86 64 /usr/local/mysql

MySQL安全加固_数据库_04

MySQL安全加固_数据库_05

添加用户组

groupadd mysql

添加用户mysql到用户组mysql

useradd -g mysql mysql

以后使用数据库就用这个账号,否则就是默认当前的root账号来运行mysql。这样做是不安全的做法,如果遭受公鸡直接就可以获取最高权限。也没有必要用root权限来运行。

更新一下

sudo apt update

MySQL安全加固_mysql_06

根据不同的版本可能安装的命令也会不一样。

MySQL安全加固_mysql_07

MySQL安全加固_mysql_08

进入到mysql的目录下

cd /usr/local/musql

修改当前目录拥有者为root用户

chown -R mysql:mysql ./

执行安装数据库的操作

./scripts/mysql_install_db --user=mysql

MySQL安全加固_数据库_09

报错缺失某些库

搜索一下这个名称的库,看看有没有,如果有就安装一下

apt search libaio
apt install libaio.so

MySQL安全加固_数据库_10

然后再吧文件夹和权限所有者改回到root

chown -R mysql:mysql ./

只留一个data目录,是root可读可写的,将来吧数据库相关的库文件都放在data目录里

chown -R mysql:mysql data

MySQL安全加固_数据库_11

MySQL安全加固_mysql_12

添加开机启动:执行命令cp support-files/mysql.server/etc/init.d/mysql

MySQL安全加固_mysql_13

拷贝一个系统服务的启动文件,把启动脚本放到开机初始化目录

ubuntu的命令是

update-rc.d mysql defaults

赋予可执行权限

chmod +x /etc/init.d/mysql

添加服务:chkconfig--add mysql

显示服务列表:chkconfig--list

启动mysql

service mysql start

查看服务端口是否启用

ss -pantu | grep 3306

MySQL安全加固_MySQL_14

ps -ef | grep mysqld

MySQL安全加固_mysql_15


检查口令


MySQL安全加固_MySQL_16

  • 安全基线项说明:确保数据库不存在弱口令,提高数据库安全性
  • 检查方法:

mysql>use mysql

mysql>select user,password from mysql.user,

将密码hash导入cain软件破接

  • 加固方法:

如要修改密码,执行如下命令:首先以root用户登录

mysql>use mysqlmysql>update user set password=password('复杂的新密码’) where user='test'

;mysql> flush privileges;

在MySQL中,检查用户口令(密码)的安全性通常涉及以下几个方面:

  1. 密码复杂度:确保密码足够复杂,不容易被猜测或暴力破接。这通常意味着密码应该包含大小写字母、数字和特殊字符的组合。
  2. 密码过期策略:设置密码的有效期限,强制用户定期更改密码,以减少密码泄露的风险。
  3. 密码历史记录:限制用户重复使用旧密码,以防止用户在密码泄露后简单地重新使用旧密码。
  4. 账户锁定策略:在多次登录失败后锁定账户,以防止暴力破接公鸡。

要检查MySQL用户的密码,你可以使用以下方法:

查看用户密码(不推荐)

在MySQL中,用户的密码是以加密形式存储的,通常不会直接显示明文密码。如果你是数据库管理员,可以使用以下命令查看用户的密码哈希值:

SELECT User, Host, authentication_string FROM mysql.user;

这将显示所有用户的用户名、主机和密码哈希值。请注意,这并不是实际的密码,而是密码的加密表示。

检查密码复杂度

MySQL 5.6.6及更高版本引入了密码验证插件,可以用来检查密码的强度。你可以使用以下命令查看是否启用了密码验证插件:

SHOW VARIABLES LIKE 'validate_password%';

这将显示与密码验证相关的系统变量及其值。如果启用了密码验证插件,你可以通过调整这些变量的值来设置密码复杂度的要求。

重置用户密码

如果你需要重置用户的密码,可以使用以下命令:

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

请将usernamehostnew_password替换为相应的值。

密码过期策略

要设置密码的自动过期策略,可以使用以下命令:

ALTER USER 'username'@'host' PASSWORD EXPIRE INTERVAL 90 DAY;

这将设置用户的密码每90天过期一次。

账户锁定策略

MySQL没有内置的账户锁定策略,但你可以通过编写触发器或脚本来实现这一点。例如,你可以在登录失败次数达到一定阈值后,使用脚本自动锁定账户。

请记住,检查和维护密码安全是一个持续的过程,应该定期进行审计和更新。此外,确保你的MySQL服务器和应用程序都遵循最佳实践,以保护用户凭据不被泄露。

 

举报

相关推荐

0 条评论