您的位置: 旅游网 > 女人

教你一步一步地加强MySQL的安全性(5)

发布时间:2019-09-12 19:04:14

6.本地化 如果主机上使用的默认语言不是英语,我们还应该拷贝合适的字符集,可以在目录/usr/local/mysql/share/mysql/charset下找到。 7.测试配置 现在,MySQL应该可以在chrooted环境中运行了。我们可以通过下面这个命令来验证一下它是否能正确的运行:

chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &

如果在执行了上面的命令后出现了错误,我们应该使用truss命令或者具有等价功能的命令如:ktrace/kdump、strace等等。这些命令可以帮助我们来找出和消除引起问题的原因。 (脚本小子:这里为了能够运行mysqld进程,使用的是chrootuid程序而不是chroot程序,因为假设是在Apache或者PHP的环境下,它们两个的主要不同在于chrootuid可以改变执行进程的所有者,在我们的例子里面,mysqld在一个chrooted环境下被执行的,但是进程的所有者不是root而是mysql用户,Chrootid在许多操作系统里并不是默认安装的,需要我们从网上下载下来,然后手动安装上去,可以到网址[url]ftp://ftp.porcupine.org/pub/security/chrootuid1.3.tar.gz[/url]下载。) 配置服务器 接下来的步骤,我们就要来配置数据库服务器,使之能够适合我们的安全性要求。 在假定MySQL进行默认安装的时候,主要的配置文件是/etc/my.cnf。然而,在我们的例子里,因为是在chrooted环境下运行服务,所以我们就要使用两个配置文件/chroot/mysql/etc/my.cnf和/etc/my.cnf。其中,前一个可以被MySQL服务器使用,而后一个要被MySQL工具(如mysqladmin,mysql,mysqldump等)使用。 1.禁止远程访问 我们知道,MySQL默认情况下使用TCP的3306端口,所以,我们首先要改变一下。因为,按照我们开始的设想,数据库仅仅是让本机的PHP应用程序访问,所以,我们可以将这个监听端口的功能禁止掉。这样就可以降低MySQL数据库遭受直接经由TCP/IP访问的外部主机攻击的可能性。而同时,本地的交互还可以通过mysql.sock套接字进行。为了能够禁止在3306端口上监听,我们要将参数skip-networking添加到/chroot/mysql/etc/my.cnf目录下[mysqld]部分。如果在有的时候还需要从外部访问数据库,可以按照如下方法使用SSH协议: backuphost$ ssh mysqlserver /usr/local/mysql/bin/mysqldump -A > backup

2.提高本地安全性 接下来,为了防止对本地文件进行未授权的访问,我们还需要禁止掉对LOAD DATA LOCAL INFILE命令的使用。这对于有效防止当在PHP应用程序中发现了新的SQL注入漏洞是非常有效的。这里,我们需要对在目录/chroot/mysql/etc/my.cnf下的[mysqld]部分加一个参数set-variable=local-infile=0。 另外,为了更方便的使用数据库管理工具,我们还必须改变/etc/my.cnf目录[client]部分的参数设置为socket = /chroot/mysql/tmp/mysql.sock。这样,当我们以后再需要用到管理工具的时候,就不用每次都来使用带有socket=/chroot/mysql/tmp/mysql.sock参数的命令了。 3.改变管理员的密码 在加强MySQL安全性的这些步骤里,改变管理员的密码是很重要的一步,但是,这首先需要MySQL运行起来,可以通过如下命令实现: chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &

用下面的命令改变管理员的密码: /usr/local/mysql/bin/mysql -u root mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');

血栓可以治好吗
小孩脸色发黄吃什么
夜尿增多怎么治
幼儿流鼻血是什么原因
猜你会喜欢的
猜你会喜欢的