LINUX環境服務器Memcache安全配置說明

所屬欄目:建站知識    作者來源:合肥網站建設     發(fā)布時間:2015-03-14 17:13:00     浏覽次數:1621

一、Memcache簡介

Memcache是一個高性能(néng)的分布式的内存對(duì)象緩存系統,通過(guò)在内存裡(lǐ)維護一個統一的巨大的hash表,它能(néng)夠用來存儲各種(zhǒng)格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將(jiāng)數據調用到内存中,然後(hòu)從内存中讀取,從而大大提高讀取速度。
Memcache是danga的一個項目,最早是LiveJournal 服務的,最初爲了加速 LiveJournal 訪問速度而開(kāi)發(fā)的,後(hòu)來被(bèi)很多大型的網站采用。
Memcached是以守護程序方式運行于一個或多個服務器中,随時會接收客戶端的連接和操作。
 
二、搭建Memcache服務
 
yum install memcached
安裝memcache服務端
 
yum -y install php-pecl-memcache
安裝php擴展操作memcache
 
php -m | grep memcache
查看php擴展是否安裝成(chéng)功
 
memcached -d -m 100 -u root -l x.x.x.x -p 11211 -c 512 -P /tmp/memcached.pid
 
參數說明:
-d選項是啓動一個守護進(jìn)程;
-m是分配給Memcache使用的内存數量,單位是MB,我這(zhè)裡(lǐ)是100MB;
-u是運行Memcache的用戶,我這(zhè)裡(lǐ)是root;
-l是監聽的服務器IP地址我這(zhè)裡(lǐ)指定了服務器的IP地址x.x.x.x;
-p是設置Memcache監聽的端口,我這(zhè)裡(lǐ)設置了11211,最好(hǎo)是1024以上的端口;
-c選項是最大運行的并發(fā)連接數,默認是1024,我這(zhè)裡(lǐ)設置了512,按照你服務器的負載量來設定;
-P是設置保存Memcache的pid文件,這(zhè)裡(lǐ)是保存在 /tmp/memcached.pid;
 
想要結束memcache進(jìn)程
kill `cat /tmp/memcached.pid`
 
設置開(kāi)機啓動
chkconfig memcached on
 
  
 
三、Memcache服務安全問題
Memcache服務器端都(dōu)是直接通過(guò)客戶端連接後(hòu)直接操作,沒(méi)有任何的驗證過(guò)程,這(zhè)樣(yàng)如果服務器是直接暴露在互聯網上的話是比較危險,輕則數據洩露被(bèi)其他無關人員查看,重則服務器被(bèi)入侵,因爲Mecache是以root權限運行的,況且裡(lǐ)面(miàn)可能(néng)存在一些未知的bug或者是緩沖區溢出的情況,所以危險性是可以預見的。
 
服務測試方法:
telnet *.*.*.* 11211
stats items
mem.png
 
如出現上述信息,則說明服務器端是配置了“Memcache服務”,并且沒(méi)有設置安全保護。

 

 

四、Memcache服務安全防範
設置防火牆是簡單有效的方式,如果服務器是放置在公網對(duì)外提供服務的,并且需要通過(guò)外網IP來訪問Memcache的話,那麼(me)可以考慮使用防火牆或者代理程序來過(guò)濾非法訪問。
一般我們在Linux下可以使用iptables或者FreeBSD下的ipfw來指定一些規則防止一些非法的訪問,比如我們可以設置隻允許我們的Web服務器來訪問我們Memcache服務器,同時阻止其他的訪問。
 
# iptables -F
# iptables -P INPUT DROP
# iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.0.2 --dport 11211 -j ACCEPT
 
上面(miàn)的iptables規則就是隻允許192.168.0.2這(zhè)台Web服務器對(duì)Memcache服務器的訪問,能(néng)夠有效的阻止一些非法訪問,相應的也可以增加一些其他的規則來加強安全性。