10.1 首先应该做什么
在完成第1章介绍的安装和配置过程之后,应当马上执行一些基本却非常重要的任务,本节将概要说明这些任务。
➢ 为操作系统和所安装的软件打补丁。如今似乎每周都在提出软件安全警告,虽然很烦人,但采取措施确保系统打上所有补丁绝对是必要的。利用攻击指令和因特网上丰富的工具,即使恶意用户在攻击方面没有多少经验,都可以毫无阻碍地利用未打补丁的服务器。即使在使用托管服务器,也不要盲目依赖于服务提供商来完成必要的升级;相反,要监视支持更新,以确保处理了打补丁的有关事情。
➢ 禁用所有不使用的系统服务。始终要注意在将服务器放入网络之前,已经消除了所有不必要的潜在服务器攻击途径。这些攻击几乎都是不安全的系统服务带来的,通常运行在不为系统管理员所知的系统中。简言之,如果不打算使用一个服务,就禁用该服务。
➢ 关闭端口。虽然关闭未使用的系统服务是减少成功攻击可能性的好方法,不过还可以通过关闭未使用的端口来添加第二层安全。对于专用的数据库服务器,可以考虑关闭1024以下除指定SSH端口外的所有端口、3306 (MySQL)和一些“工具”端口(如123 (NTP)).简言之,如果不希望在指定端口有数据通信,就关闭这个端口。除了在专用防火墙工具或路由器上做这些调整之外,还可以考虑利用操作系统的防火墙。Microsoft Windows Server 2000/2003和基于UNIX的系统都有内置防火墙。关于如何有效地管理这些解决方案,请参考MySQL文档。
➢ 审计服务器的用户账户。特别是当已有的服务器再作为公司的数据库主机时,要确保禁用所有非特权用户,或者最好是全部删除。虽然MySQL用户和操作系统用户完全无关,但他们都要访问服务器环境,仅凭这一点就可能会有意无意地破坏数据库服务器及其内容。为完全确保在审计中不会有遗漏,可以考虑重新格式化所有相关的驱动器,并重新安装操作系统。
➢ 设置MySQL root用户密码。默认情况下,MySQL root(管理员)账户密码为空。虽然很多人发现这样存在问题,但这却一直是标准过程,而且很可能还会继续一段时间。必须注意要立即增加密码!为此可以使用SET PASSWORD命令,如下:
此外,也可以像下面这样使用mysqladmin客户端:
当然,要选择一个比secret更复杂的密码。可以考虑选择一个长度至少为8个字符、由数字和不同大小写的字母字符组成的密码。