手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  技術知識庫 >  云服務器 >  服務器教程 >  Memcached 端口11211 未授權訪問漏洞防范

Memcached 端口11211 未授權訪問漏洞防范

2018-03-05 13:32:02 11145

漏洞描述:
memcache是一套常用的key-value緩存系統,由于它本身沒有權限控制模塊,所以開放在外網的memcache服務很容易被攻擊者掃描發現,通過命令交互可直接讀取memcache中的敏感信息。

修復方案:
因memcache無權限控制功能,所以需要用戶對訪問來源進行限制。

以下方案基于Linux CentOS:

方案一:(啟動時綁定監聽IP)

如果memcache沒有在外網開放的必要,可在memcached啟動的時候指定綁定的ip地址為 127.0.0.1。例如:

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

其中 -l 參數指定為本機地址。

方案二:(修改默認監聽端口)

更改memcached 默認監聽端口為11211 以外的端口,以下以新端口19203為例:

memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 19203 -c 1024 -P /tmp/memcached.pid

參數說明:

-d選項是啟動一個守護進程;

-m是分配給Memcached使用的內存數量,單位是MB,我這里是100MB;

-u是運行Memcached的用戶,推薦單獨普通權限用戶:memcached,不要使用root權限賬戶;

-l是監聽的服務器IP地址我這里指定了服務器的IP地址x.x.x.x;

-p是設置Memcached監聽的端口,我這里設置了19203,最好是1024以上的端口;

-c選項是最大運行的并發連接數,默認是1024,我這里設置了512,按照你服務器的負載量來設定;

-P是設置保存Memcached的pid文件,我這里是保存在 /tmp/memcached.pid;

方案三:(配置防火墻訪問控制)

如果memcache服務需要對外提供服務,則可以通過iptables進行訪問控制,下面是只允許本機及外部IP 1.1.1.1訪問:

// accept
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT
iptables -A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT

iptables -A INPUT -p tcp -s 1.1.1.1 --dport 11211 -j ACCEPT
iptables -A INPUT -p udp -s 1.1.1.1 --dport 11211 -j ACCEPT

// drop
iptables -I INPUT -p tcp --dport 11211 -j DROP
iptables -I INPUT -p udp --dport 11211 -j DROP

// 保存規則并重啟 iptables
service iptables save
service iptables restart

上述規則的意思是只允許本機及外部IP 1.1.1.1 對11211端口進行訪問,如已經變更默認監聽端口,請變更--dport 的端口為新端口。

驗證 memcache 端口11211開啟情況:
以memcached 服務器IP(2.2.2.2),外部IP 1.1.1.1,在外部IP 服務器上運行telnet檢測為例:

telnet 2.2.2.2 11211

無需用戶名密碼,1.1.1.1可以直接連接memcache 服務(2.2.2.2)的11211端口。

方案四:(最小化權限運行)

使用普通權限賬號運行,以下指定memcached 用戶運行

memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

方案五:(升級為最新版本)

在編譯安裝memcached程序時添加-enable-sasl選項,并且在啟動memcached服務程序時添加-S參數,啟用SASL認證機制以提升memcached的安全性

執行如下命令獲得相應結果:

# stats  //查看memcache 服務狀態
# stats items  //查看所有items
# stats cachedump 32 0  //獲得緩存key
# get :state:264861539228401373:261588   //通過key讀取相應value ,獲得實際緩存內容,造成敏感信息泄露


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: