2013-04-23 17 views
5

サーバー1が5:5:5:5:11211にあり、サーバー2が25.25.25.25:11211にあるとします。それらをサーバープールに追加するとすべてが素晴らしいです。誰かがそのポートに接続し、あなたのデータを乱暴にするまで。memcachedリモート接続の認証

ポートを38295に変更しました。見つけにくいが不可能ではないため、まだ十分ではありません。

私の質問は以下のとおりです。

1)あなたは、接続を確認するためのmemcachedサーバの認証(ユーザ名/パスワード)を設定することはできますか?特定のホスト/ IPをホワイトリストに登録できますか(おそらく悪い考えですか?)

2)インターネット経由で転送されるデータを保護することはできますか?データは生の形式であり、ISPとその回線を盗聴している人は誰でも、送信されるすべてのデータを見ることができます。しかし、データの暗号化はおそらくパフォーマンスに影響しますか?

memcachedサーバーのクラスターを設定するためのソリューションと、それらを保護し認証する方法はありますか?

答えて

1

MemcachedでSASLがサポートされるようになりました。これにより、あなたは、あなたの記憶されたサービスに対して強力な認証を行うことができます。ここでは、memcachedでSASLを設定する方法についての良い記事です。

http://blog.couchbase.com/sasl-memcached-now-available

+0

'php5-memcache'クライアントはそれを認証しますか?私はSASLを見てきましたが、クライアントがそれを認証する方法についてはまだ混乱しています – user2103849

2

私たちはマイクによって言及としてここに複雑な解決のために行く必要はないと思います。

ウェブサーバー(web1、web2、web3)は、同じ内部ネットワークにある11211ポートと各Webサーバーの内部IPアドレスから172.221で始まるmemcacheサーバー(mem1 & mem2)からデータを取得する必要があるとします。

この場合、mem2 & mem2サーバーのip-tableに172.221の要求のみを受け入れることができます。 。 11211ポートの場合はです。

希望すると、これが役立ちます。

8

私のニーズを満たす解決策は、sumoanandが提案するようにiptablesエントリを設定することでした。ここに私が働いているものがあります。このような何か使用してmemcachedを

スタート:

/usr/bin/memcached -p 11211 -l 0.0.0.0 -d -u www-data -m 12288

-lパラメータは、本質的に任意のソースからの接続を可能にする、0.0.0.0に設定されていることに注意してください。標準127.0.0.1をお持ちの場合、これは動作しません。

次に、iptablesにエントリを作成します。 memcachedサーバーがLAN上にある場合、次のコマンドは特定のローカルサーバーからの接続のみを許可します。例えば

、許可リストに192.168.1.100を追加するために、我々はコマンドを発行します。

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 11211 -j ACCEPT 

リモートサーバーをホワイトリストに登録したい場合は、例えば、25.62.25.62その後、あなたは別のコマンドを発行します。

iptables -A INPUT -p tcp -s 25.62.25.62 --dport 11211 -j ACCEPT 

IPを必要な数だけホワイトリストに登録できますが、そのポート上の他のすべての接続をブロックする最後のコマンドを発行してください。

iptables -A INPUT -p tcp --dport 11211 -j REJECT 

iptablesのは、あなたが任意のルールをACCEPT発行する前にALL文が拒否を発行するので、もし、すべての接続が(でも、ホワイトリストのものを)拒否され、それらが入力された順に読み込まれます。

この方法で送信されるデータは、それでも暗号化されません。 memcachedサーバーとリモートサーバー(パケットスニッファー、ISP)を傍受するものはすべて、データを完全に生きて見ることができます。