自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP安全:Memcache的使用安全

安全
Memcache服務(wù)器端都是直接通過客戶端連接后直接操作,沒有任何的驗(yàn)證過程,不需要認(rèn)證就可以隨意交互。

 [[351189]]

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

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

1、IP訪問限制

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

  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)聽內(nèi)網(wǎng)的10.16.0.20的IP的11211端口,占用1024MB內(nèi)存,并且允許最多1024個(gè)并發(fā)連接。

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

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

  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ù)器的訪問,能夠有效地阻止一些非法訪問,相應(yīng)地也可以增加一些其他的規(guī)則來加強(qiáng)安全性,這個(gè)可以根據(jù)自己的需要來進(jìn)行。

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

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

以CentOS為例來給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用戶的SASL認(rèn)證密碼。 

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

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

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

  1. memcacheuser@3b7fc9690a12:userPassword 

在libmemcached官網(wǎng)選擇適合自己的libmemcached源碼壓縮包,如使用1.0.18版libmemcached-1.0.18.tar.gz進(jìn)行編譯安裝,添加--enable-sasl選項(xiàng)開啟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ù),否則安裝成功后,無法啟用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(大寫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用戶名和密碼連接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');  

 

責(zé)任編輯:龐桂玉 來源: 計(jì)算機(jī)與網(wǎng)絡(luò)安全
相關(guān)推薦

2020-11-06 15:00:58

PHPMySQL數(shù)據(jù)庫

2020-08-19 15:30:04

PHP網(wǎng)絡(luò)安全代碼

2020-10-14 11:30:10

PHP網(wǎng)絡(luò)安全加密

2018-10-06 05:00:53

2016-10-10 00:18:27

2010-07-15 15:49:53

PHP網(wǎng)站安全

2009-02-23 09:11:21

2011-09-14 10:38:39

2020-10-24 14:10:26

PHP網(wǎng)絡(luò)安全人機(jī)識(shí)別

2013-06-05 09:51:04

2009-12-02 09:21:04

PHP數(shù)據(jù)過濾

2009-12-11 15:28:02

PHP安全防護(hù)

2009-12-08 09:51:10

PHP intval函

2011-07-14 09:38:13

2010-08-19 10:21:09

2018-01-31 15:35:40

2009-07-03 14:31:51

2009-11-24 13:17:16

PHP安全驗(yàn)證數(shù)據(jù)

2012-04-12 11:28:04

2019-03-08 08:55:16

PHP7PHP5web安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)