由於memcached默認安裝是不用配置密碼的(具體的密碼配置我也沒怎么研究,據說是有的,大家感興趣去找一找)
然而memcached鏈接也是非常簡單的
linux命令鏈接使用 Telnet IP地址 端口 例如 telnet 127.0.0.1 11211
但是如果我們memcached啟動時配置了外網IP可訪問的話,那么怎么能保證指定的服務器能鏈接,而其他服務器拒絕鏈接呢,memcached又沒有密碼,怎么保證memcached的安全呢?帶着這些疑問,我在網上也找了相關資料,也不知道對不對,有不對的地方,望大家海涵並指出
iptables 這個應該聽過吧,這就是Linux防火牆的配置工具
沒錯,我們用iptables配置memcached的訪問權限,比如我們開啟了三個memcached服務器,端口分別是11211 11212 11213
大概的思路是
1.禁止所以IP訪問11211 11212 11213端口
2.允許指定IP訪問11211 11212 11213端口
這樣不就解決問題了嗎。
好,我們來配置一下iptables,如果大家很熟悉iptables的話,就不必往下看了,因為我講的可能沒你好。如果大家想了解更多更詳細的,也可以去網上找相關資料
我啟動memcached
memcached -d -m 64 -u root -p 11211 -P /tmp/memcached-11211.pid
memcached -d -m 64 -u root -p 11212 -P /tmp/memcached-11212.pid
memchaced -d -m 64 -u root -p 11213 -P /tmp/memcached-11213.pid
現在我們已經開啟了3個memcached服務
接着我們用iptables做安全保護
終端輸入
iptables -A INPUT -p tcp --dport 11211:11213 -j REJECT
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 11211:11213 -j ACCEPT
iptables -I INPUT -s 目標IP -p tcp --dport 11211:11213 -j ACCEPT
這樣只有本機和目標IP能操作memcached服務了
我們可以使用telnet 127.0.0.1 11211 訪問測試
