簡述:高防服務器租用下mysql數據庫的安全設置方法 現(xiàn)在很多企業(yè)都選擇高防服務器租用,那么在高防服務器中如何保證mysql數據的安全呢?下面服務器租用商為大家講解高防服務器租用下mysql數據庫的安全設置
高防服務器租用下mysql數據庫的安全設置方法
現(xiàn)在很多企業(yè)都選擇高防服務器租用,那么在高防服務器中如何保證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服務器后呈現(xiàn)如下提醒: 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,所以若是能夠建改的話,能夠防備一些足本小子對系統(tǒng)的窮舉。我們能夠直接建改數據庫,把root用戶改成"admin" mysql> use mysql
mysql> update user set user="admin" where user="root"; mysql> flush privileges
(4) 提高當天安全性
提高當天安全性,次假設防備mysql對當天文件的存取,比如烏客經過mysql把/etc/passwd取得了,會對系統(tǒng)構成威脅。mysql對當天文件的存取是經過SQL語句來真現(xiàn),次假設經過Load DATA LOCAL INFILE來真現(xiàn),我們能夠經過禁用該功能來防備烏客經過SQL注射等取得系統(tǒng)中間文件。 禁用該功能必須正在 my.cnf 的[mysqld]部份加上一個參數set-variable=local-infile=0
(5) 脅制長途銜接mysql
由于我們的mysql只需供當天的php足本停止銜接,所以我們無需開socket停止監(jiān)聽,那末我們完全能夠封閉監(jiān)聽的功能。 有兩個辦法真現(xiàn):
* 配置my.cnf文件,正在[mysqld]部份添加 skip-networking 參數
* mysqld服務器中參數中添加 --skip-networking 啟動參數來使mysql沒有監(jiān)任憑何TCP/IP銜接,增加安全性。若是要停止mysql的治理的話,能夠正在服務器當天安拆一個phpMyadmin來停止治理。
(6) 節(jié)制數據庫會晤權限
關于利用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等體例來節(jié)制mysql的運轉目次,更好的節(jié)制權限,具體能夠參考相干文章。
4. vsFTPd安全設置
vsFTPd是一款極度出名的ftp daemon法式,今朝包含Redhat.com正在內許多至公司都正在利用,它是一款極度安全的法式,由于它的名字便叫:Very Secure FTP Daemon (極度安全的FTP服務器)。
vsftpd設置選項比較多,涉及圓圓面面,我們下面次假設針對安全圓面停止設置。
今朝我們的需供就是利用系統(tǒng)帳戶同時也做為是我們的FTP帳戶來停止我們文件的治理,今朝假定我只需供一個帳戶來更新我的網站,并且我沒有希視該帳戶能夠登岸我們的系統(tǒng),比如我們的網站的目次是正在/usr/www下面,那末我們新建一個用戶ftp,它的主目次是/usr/www,并且它的shell是/usr/sbin/nologin,就是出有shell,防備該用戶經過ssh等登岸到系統(tǒng)。
下面正在停止系統(tǒng)詳實的設置,次要就是針對vsftpd的配置文件vsftpd.conf文件的配置。
(1) 脅制匿名用戶會晤, 我們沒有需供甚么匿名用戶,直接脅制掉: anonymous_enable=NO
(2) 許可當天用戶登岸,由于我們需供利用ftp用戶來對我們網站停止治理: local_enable=YES
(3) 只許可系統(tǒng)中的ftp用戶或某些指定的用戶會晤ftp,由于系統(tǒng)中帳戶寡多,沒有成能讓誰都邑晤。挨開用戶文件列表功能: userlist_enable=YES
只許可用戶文件列表中的用戶會晤ftp: userlist_deny=NO 用戶名文件列表途徑:
userlist_file=/etc/vsftpd.user_list
然后正在/etc下成立文件 vsftpd.user_list 文件,一行一個,把用戶ftp加進來,同時也能夠加上你許可會晤的系統(tǒng)帳戶名。
(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,防備它登岸到系統(tǒng)。
(6) 躲藏文件真真的十足用戶和組疑息,防備烏客拿下ftp后查看更多系統(tǒng)用戶疑息:
hide_ids=YES
<div>(7) 勾銷ls -R呼吁,節(jié)省資本,由于利用該呼吁,正在文件列表許多的時分將浪擲大量系統(tǒng)資本: 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.mubashirfilms.com】
更多信息請點擊【新聞資訊】
搜索詞