欢迎来到腾佑科技,服务器租用托管专家!   

帮助中心

搜索热词:服务器托管vps找回密码发票申请虚拟主机

高防服务器租用下mysql数据库的安全设置方法

发布时间:2014-12-1 17:17:40      浏览次数:

高防服务器租用下mysql数据库的安全设置方法
现在很多企业都选择高防服务器租用,那么在高防服务器中如何保证mysql数据的安全呢?下面服务器租用商为大家讲解高防服务器租用下mysql数据库的安全设置方法。
我们把Mysql安装在 /usr/local/mysql目次下,我们必须成立一个用户名为mysql,组为mysql的用户来运转我们的mysql,同时我们把它的配置文件拷贝到 /etc目次下:
# cp suport-files/my-medium.cnf /etc/my.cnf  chown root:sys /etc/my.cnf  chmod 644 /etc/my.cnf
利用用户mysql来启动我们的mysql:
# /usr/local/mysql/bin/mysqld_safe -user=mysql
(1) 建改root用户的的口令
缺省安拆的mysql是出有暗码的,所以我们要建改,以防万一。下面回支三种体例来建改root的口令。
* 用mysqladmin呼吁来改root用户口令  # mysqladmin -uroot password test
如许,MySQL数据库root用户的口令便被改成test了。(test只是举例,我们真际利用的口令必然没有克没有及利用这类易猜的强口令)
* 用set password建改口令:
mysql> set password for root@localhost=password("test"); ;这时候root用户的口令便被改成test了。
* 直接建改user表的root用户口令 mysql> use mysql;
mysql> update user set password=password("test") where user="root"; mysql> flush privileges
如许,MySQL数据库root用户的口令也被改成test了。个中最后一句呼吁flush privileges的意思是强迫刷新内存授权表,没有然用的借是缓冲中的口令,这时候非法用户借能够用root用户及空口令登岸,直到重启MySQL服务器。
(2) 删除默许的数据库和用户  我们的数据库是正在当天,并且也只需供当天的php足本对mysql停止读取,所以许多用户没有需供。mysql初始化后会自动生成空用户和test库,这会对数据库构成威胁,我们局部删除。
我们利用mysql客户端法式衔接到当天的mysql服务器后呈现如下提醒:  mysql> drop database test; mysql> use mysql
mysql> delete from db; 
mysql> delete from user where not(host="localhost" and user="root");  mysql> flush privileges
(3) 改变默许mysql治理员的名称  这个工做是能够选择的,按照小我风尚,由于默许的mysql的治理员名称是root,所以若是能够建改的话,能够防备一些足本小子对系统的穷举。我们能够直接建改数据库,把root用户改成"admin" mysql> use mysql
mysql> update user set user="admin" where user="root";  mysql> flush privileges
(4) 提高当天安全性
提高当天安全性,次假设防备mysql对当天文件的存取,比如乌客经过mysql把/etc/passwd取得了,会对系统构成威胁。mysql对当天文件的存取是经过SQL语句来真现,次假设经过Load DATA LOCAL INFILE来真现,我们能够经过禁用该功能来防备乌客经过SQL注射等取得系统中间文件。 禁用该功能必须正在 my.cnf 的[mysqld]部份加上一个参数set-variable=local-infile=0
(5) 胁制长途衔接mysql
由于我们的mysql只需供当天的php足本停止衔接,所以我们无需开socket停止监听,那末我们完全能够封闭监听的功能。  有两个办法真现:
* 配置my.cnf文件,正在[mysqld]部份添加 skip-networking 参数
* mysqld服务器中参数中添加 --skip-networking 启动参数来使mysql没有监任凭何TCP/IP衔接,增加安全性。若是要停止mysql的治理的话,能够正在服务器当天安拆一个phpMyadmin来停止治理。
(6) 节制数据库会晤权限
关于利用php足正本停止交互,最好成立一个用户只针对某个库有 update、select、delete、insert、drop table、create table等权限,如许便很好防备了数据库用户名和暗码被乌客查看后最小丧得。
比如下面我们确立一个数据库为db1,同时成立一个用户test1能够会晤该数据库。
mysql> create database db1
mysql> grant select,insert,update,delete,create,drop privileges on db1.* to test1@localhost identified by "admindb";以上SQL是确立一个数据库db1,同时增加了一个test1用户,口令是admindb,然则它只能从当天衔接mysql,对db1库有select,insert,update,delete,create,drop操做权限。
(7) 限定通俗用户欣赏其他用户数据库  若是有多个数据库,每个数据库有一个用户,那末必须限定用户欣赏其他数据库内容,能够正在启动MySQL服务器时加--skip-show-database 启动参数便能够到达方针。
( 遗记mysql暗码的筹划办法
若是得慎遗记了MySQL的root暗码,我们能够正在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证 (./safe_mysqld --skip-grant-tables &),如许我们便能够直接登岸MySQL服务器,然后再建改root用户的口令,重启MySQL便能够用新口令登岸了。
(9) 数据库文件的安全
我们默许的mysql是安拆正在/usr/local/mysql目次下的,那末对应的数据库文件就是正在/usr/local/mysql/var目次下,那末我们要包管该目次没有克没有及让未经授权的用户会晤后把数据库挨包拷贝走了,所以要限定对该目次的会晤。  我们建改该目次的所属用户和组是mysql,同时改变会晤权限:  # chown -R mysql.mysql /usr/local/mysql/var  # chmod -R go-rwx /usr/local/mysql/var
(10) 删除汗青记真
尝试以上的呼吁会被shell记真正在汗青文件里,比如bash会写进用户目次的.bash_history文件,若是这些文件得慎被读,那末数据库的暗码便会泄露。用户登岸数据库后尝试的SQL呼吁也会被MySQL记真正在用户目次的.mysql_history文件里。若是数据库用户用SQL语句建改了数据库暗码,也会因.mysql_history文件而泄露。所以我们正在shell登岸及备份的时分没有要正在-p后直接加暗码,而是正在提醒后再输进数据库暗码。
另外这两个文件我们也应当没有让它记真我们的操做,以防万一。 # rm .bash_history .mysql_history  # ln -s /dev/null .bash_history  # ln -s /dev/null .mysql_history
(11) 其他
另外借能够思考利用chroot等体例来节制mysql的运转目次,更好的节制权限,具体能够参考相干文章。
4. vsFTPd安全设置
vsFTPd是一款极度出名的ftp daemon法式,今朝包含Redhat.com正在内许多至公司都正在利用,它是一款极度安全的法式,由于它的名字便叫:Very Secure FTP Daemon (极度安全的FTP服务器)。
vsftpd设置选项比较多,涉及圆圆面面,我们下面次假设针对安全圆面停止设置。
今朝我们的需供就是利用系统帐户同时也做为是我们的FTP帐户来停止我们文件的治理,今朝假定我只需供一个帐户来更新我的网站,并且我没有希视该帐户能够登岸我们的系统,比如我们的网站的目次是正在/usr/www下面,那末我们新建一个用户ftp,它的主目次是/usr/www,并且它的shell是/usr/sbin/nologin,就是出有shell,防备该用户经过ssh等登岸到系统。
下面正在停止系统详实的设置,次要就是针对vsftpd的配置文件vsftpd.conf文件的配置。
(1) 胁制匿名用户会晤, 我们没有需供甚么匿名用户,直接胁制掉:  anonymous_enable=NO
(2) 许可当天用户登岸,由于我们需供利用ftp用户来对我们网站停止治理:  local_enable=YES
(3) 只许可系统中的ftp用户或某些指定的用户会晤ftp,由于系统中帐户寡多,没有成能让谁都邑晤。挨开用户文件列表功能:  userlist_enable=YES
只许可用户文件列表中的用户会晤ftp: userlist_deny=NO  用户名文件列表途径:
userlist_file=/etc/vsftpd.user_list
然后正在/etc下成立文件 vsftpd.user_list 文件,一行一个,把用户ftp加进来,同时也能够加上你许可会晤的系统帐户名。
(4) 胁制某些用户登岸ftp:  pam_service_name=vsftpd
指出VSFTPD停止PAM认证时所利用的PAM配置文件名,默许值是vsftpd,默许PAM配置文件是/etc/pam.d/vsftpd。
/etc/vsftpd.ftpusers
VSFTPD胁制列正在此文件中的用户登录FTP服务器,用户名是一行一个。这个机制是正在/etc/pam.d/vsftpd中默许设置的。
这个功能和(3)里的功能有点相似,他们俩能星散利用,那样便最好了。
(5) 把当天用户锁定正在本身的主目次,防备转到其他目次,比如把/etc/passwd给下载了:
chroot_local_users=NO  chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后正在/etc下成立vsftpd.chroot_list文件,内中把我们要限定确当天帐户加进来,一行一个,我们加上ftp,防备它登岸到系统。
(6) 躲藏文件真真的十足用户和组疑息,防备乌客拿下ftp后查看更多系统用户疑息:
hide_ids=YES
<div>(7) 勾销ls -R呼吁,节省资本,由于利用该呼吁,正在文件列表许多的时分将浪掷大量系统资本: ls_recurse_enable=NO
( 上传文件的默许权限,设置为022: local_umask=022
若是要覆盖删除等,借要挨开: write_enable=YES
(9) ftp的banner疑息,为了防备乌客取得更多服务器的疑息,设置该项: ftpd_banner=banner string
把前面的banner string设为你需供的banner提醒疑息,为了安全,建议没有要袒露关于vsFTPd的任何疑息。 另外,若是你的疑息比较多的话,能够设置为提醒疑息是读取一个文件中的疑息: banner_file=/directory/vsftpd_banner_file
(10) 挨开日志功能: xferlog_enable=YES同时设置日志的目次:
xferlog_file=/var/log/vsftpd.log 启器具体的日志记真格局: xferlog_enable=YES
(11) 若是挨开虚用户功能等,那末建议封闭当天用户登岸: local_enable=NO
vsFTPd借有许多安全设置,终究人家的名字就是:Very Secure FTP Daemon,横竖它的溢露马足甚么的是很少的,若是要更安全,建议按照本身的需供设置vsftpd,设置的好,它尽对是最安全的。

本文出自:服务器租用/服务器托管全国十强,虚拟主机、vps主机顶级提供商!品质保证!—腾佑科技www.tuidc.com

更多信息请点击【新闻资讯