日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
PHP安全:Memcache的使用安全

Memcache服務(wù)器端都是直接通過(guò)客戶(hù)端連接后直接操作,沒(méi)有任何的驗(yàn)證過(guò)程,不需要認(rèn)證就可以隨意交互。服務(wù)器直接暴露在互聯(lián)網(wǎng)上是比較危險(xiǎn)的,輕則數(shù)據(jù)泄露被其他無(wú)關(guān)人員查看,重則服務(wù)器被入侵。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)改則,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108

Memcache暴露在外網(wǎng)中會(huì)被攻擊者利用發(fā)起DRDoS反射攻擊,通過(guò)發(fā)送大量帶有被害者IP地址的UDP數(shù)據(jù)包給放大器主機(jī),然后放大器主機(jī)對(duì)偽造的IP地址源做出大量回應(yīng),形成分布式拒絕服務(wù)攻擊。

1、IP訪問(wèn)限制

將Memcache服務(wù)放置于可信域內(nèi),有外網(wǎng)時(shí)不要監(jiān)聽(tīng)0.0.0.0,有特殊需求可以通過(guò)防火墻設(shè)置acl或者添加安全組。通過(guò)添加Memcache啟動(dòng)參數(shù)來(lái)監(jiān)聽(tīng)內(nèi)網(wǎng)的IP地址和端口,內(nèi)網(wǎng)間的訪問(wèn)能夠有效阻止攻擊者的非法訪問(wèn)。

 
 
 
  1. # memcached -d -m 1024 -u nobody -l 10.16.0.20 -p 11211 -c 1024 -P/tmp/memcached.pid 

以上配置中設(shè)置Memcache服務(wù)器端只允許監(jiān)聽(tīng)內(nèi)網(wǎng)的10.16.0.20的IP的11211端口,占用1024MB內(nèi)存,并且允許最多1024個(gè)并發(fā)連接。

如果是對(duì)外提供服務(wù),并且需要通過(guò)外網(wǎng)IP來(lái)訪問(wèn)Memcache,防止機(jī)器掃描和SSRF等攻擊,可以將Memcache的監(jiān)聽(tīng)端口隨機(jī)改為其他的端口。

同時(shí)使用防火墻或者代理程序來(lái)過(guò)濾非法訪問(wèn)。一般在Linux下可以使用iptables或者FreeBSD下的ipfw來(lái)指定一些規(guī)則防止一些非法的訪問(wèn),比如可以設(shè)置只允許特定外網(wǎng)IP訪問(wèn)Memcache服務(wù)器,同時(shí)阻止其他非法訪問(wèn)。

 
 
 
  1. # iptables -F  
  2. # iptables -P INPUT DROP  
  3. # iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT  
  4. # iptables -A INPUT -p udp -s 192.168.0.2 --dport 11211 -j ACCEPT 

上面的iptables規(guī)則就是只允許110.18.0.2這臺(tái)服務(wù)器對(duì)Memcache服務(wù)器的訪問(wèn),能夠有效地阻止一些非法訪問(wèn),相應(yīng)地也可以增加一些其他的規(guī)則來(lái)加強(qiáng)安全性,這個(gè)可以根據(jù)自己的需要來(lái)進(jìn)行。

2、使用SASL驗(yàn)證

簡(jiǎn)單驗(yàn)證安全層(Simple Authentication Security Layer,SASL)為應(yīng)用程序和共享庫(kù)的研發(fā)人員提供了用于驗(yàn)證、數(shù)據(jù)完整性檢查和加密的機(jī)制。

以CentOS為例來(lái)給Memcache添加SASL支持。

首先在系統(tǒng)中安裝SASL支持。

 
 
 
  1. yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-devel cyrus-sasl-plain 

查看安裝結(jié)果。

 
 
 
  1. $saslauthd -v  
  2. saslauthd 2.1.23  
  3. authentication mechanisms: getpwent kerberos5 pamrimap shadow ldap 

當(dāng)前可使用的密碼驗(yàn)證方法有g(shù)etwent、kerberos5、pam、rimap、shadow和ldap,配置成使用shadow方式進(jìn)行認(rèn)證。

 
 
 
  1. # 修改/etc/sysconfig/saslauthd文件  
  2. MECH=shadow 

重啟saslauthd。

 
 
 
  1. sudo /etc/init.d/saslauthd restart  
  2. Stopping saslauthd: [OK]  
  3. Starting saslauthd: [OK] 

設(shè)置Memcache用戶(hù)的SASL認(rèn)證密碼。

 
 
 
  1. saslpasswd2 -c -a memcached memcacheuser  
  2. Password: #輸入密碼  
  3. Again (for verification): #再次輸入密碼 

最終生成的密碼保存在/etc/sasldb2中。

使用sasldblistusers2命令查看已經(jīng)添加的用戶(hù)。

 
 
 
  1. memcacheuser@3b7fc9690a12:userPassword 

在libmemcached官網(wǎng)選擇適合自己的libmemcached源碼壓縮包,如使用1.0.18版libmemcached-1.0.18.tar.gz進(jìn)行編譯安裝,添加--enable-sasl選項(xiàng)開(kāi)啟SASL認(rèn)證功能。

 
 
 
  1. tar zxvf libmemcached-1.0.18.tar.gz  
  2. cd libmemcached-1.0.18  
  3. ./configure --prefix=/usr/local/libmemcached --enable-sasl  
  4. make  
  5. make install 

在memcached官網(wǎng)下載memcached服務(wù)端源碼,啟用SASL驗(yàn)證功能需要在編譯時(shí)指定--enable-sasl參數(shù),否則安裝成功后,無(wú)法啟用SASL執(zhí)行安裝。

 
 
 
  1. tar zxvf memcached-1.5.8.tar.gz  
  2. cd libmemcached-1.5.8  
  3. ./configure --enable-sasl --prefix=/opt/memcached --with-libevent=/opt/memcached/libevent  
  4. make  
  5. make install 

啟動(dòng)memcached服務(wù),啟用SASL驗(yàn)證功能,在啟動(dòng)時(shí)需要加-S(大寫(xiě)S)參數(shù)。

 
 
 
  1. /opt/memcached/bin/memcached -S -m 2048 -u xxxxx -P  
  2. /tmp/memcached/memcached.pid -c 1024 -p 11211 -b 1024 -d 

在PECL網(wǎng)站搜索Memcached,下載memcached-3.0.4.tgz,解壓安裝PHP的Memcached擴(kuò)展。

 
 
 
  1. tar zxvf memcached-2.1.0.tar.gz  
  2. cd memcached-2.1.0  
  3. phpize  
  4. ./configure --with-php-config=php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl  
  5. make  
  6. make install 

修改PHP配置文件使SASL生效,同時(shí)重啟PHP。

 
 
 
  1. # vim /etc/php.d/memcache.ini  
  2. extension=memcached.so  
  3. memcached.use_sasl=1 

在PHP代碼中使用SASL用戶(hù)名和密碼連接Memcached。

 
 
 
  1. $mc=new Memcached();  
  2. $memcached->addServer('127.0.0.1',11211);  
  3. $mc->setOption(Memcached::OPT_BINARY_PROTOCOL,true);  
  4. $mc->setSaslAuthData("memcacheuser","password");  
  5. $mc->set('key','value');  
  6. echo $mc->get('key');  

本文標(biāo)題:PHP安全:Memcache的使用安全
新聞來(lái)源:http://www.dlmjj.cn/article/djsicce.html