mysql放在空间安全吗_如何保证MySQL主机的安全性

8957ae4ef5e8e55d1ad3c2049e8177cc.png

这是关于MySQL安全性的一篇文章,简单介绍一下如何确保MySQL主机的安全性。

当我们考虑将MySQL主机连接到互联网的时候,应该避免一些常见的安全错误,其实这也是所有连入互联网主机应该考虑的事情。通常我们需要考虑一套完整的保护主机的方案,包括遭遇攻击,篡改及拒绝服务等在内一系列的内容。

MySQL的安全性是基于ACL(access control list)实现的 ,包括全部的连接、查询以及用户执行的其他各种操作,并且支持从客户端到服务器之间的SSL加密连接。

保证安全性的重要原则

一、不要授予'root'用户以外的任何用户访问mysql.user表的权限。

MySQL将权限信息存储在系统数据库mysql里面,非root用户访问mysql.user表会获取全部的用户信息,为系统带来风险。

二、确保用户拥有适当权限。使用GRANT和REVOKE语句执行控制访问MySQL。尽可能减少权限的范围,坚持权限最小化原则。

确认以下几点,以判断当前用户是否拥有适当的权限:

1,执行mysql -u root 如果不需要使用密码即可登陆,则任何人都可以使用'root'用户并包含全部权限访问MySQL服务器。如果'root'用户没有设置密码,请为它设置一个复杂度高的密码。

2,使用SHOW GRANT语句检查所有的账户权限,如果包含了不必要的权限,使用REVOKE语句将其删除。

3,不要在数据库里存储明文密码,如果服务器被盗用,会导致全部用户密码泄露。使用SHA2()函数或其他正向哈希函数对明文进行处理,并保存哈希值。为防止使用彩虹表恢复密码,请不要在普通密码上使用这些函数,选择一些字符串用作salt,并使用hash(hash(password)+salt)值。另外一点,要选择复杂度高的密码,推荐使用大小写+符号+数字形式的密码。

三、为主机部署防火墙。这将保护您免受至少50%的攻击。将MySQL主机放在防火墙后面。

通过以下方法,可以确认防火墙是否有效。

1,使用nmap工具,扫描你的全部端口。mysql使用3306端口,需要保证只有可以信赖的主机才可以访问该端口。

2,可以在远程使用shell> telnet server_host 3306 测试3306端口是否打开。如果telnet挂起或拒绝连接,表示端口被防火墙阻挡。如果获得了一个连接和一些垃圾字符,则表明端口是打开的,应该关闭防火墙或路由器上的端口,除非有特殊的理由让它保持打开状态。

四、检查输入MySQL的数据。访问MySQL的应用程序不应该信任用户输入的任何数据,应该使用适当的编程技术防止输入不正当的数据。

五、不要在互联网上传输普通(未加密的)数据。任何人都可以访问这些信息。要使用加密的协议,如SSL或SSH。MySQL支持内部SSL连接。另一种技术是使用SSH端口转发创建用于通信的加密(和压缩)通道。

学习使用 tcpdump和strings

通过执行 shell> tcpdump -l -i eth0 -w - src 或 dst port 3306 | strings可以查看MySQL的数据流是否加密。

以上内容是关于MySQL安全性,实际上也是针对连入互联网的主机安全性的一个总体概述。

感谢阅读!欢迎持续关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值