7.7. Memcached サービスのセキュリティー保護
Memcached は、オープンソースの高性能分散メモリーオブジェクトキャッシングシステムです。データベースの負荷を軽減して、動的 Web アプリケーションのパフォーマンスを向上させることができます。
Memcached は、データベース呼び出し、API 呼び出し、またはページレンダリングの結果から、文字列やオブジェクトなどの任意のデータの小さなチャンクを格納するメモリー内のキーと値のストアです。Memcached を使用すると、十分に活用されていない領域から、より多くのメモリーを必要とするアプリケーションにメモリーを割り当てることができます。
2018 年に、パブリックインターネットに公開されている Memcached サーバーを悪用することによる DDoS 増幅攻撃の脆弱性が発見されました。これらの攻撃は、トランスポートに UDP プロトコルを使用する Memcached 通信を利用します。この攻撃は増幅率が高いため、効果的です。数百バイトのサイズの要求は、数メガバイトまたは数百メガバイトのサイズの応答を生成することができます。
ほとんどの場合、memcached
サービスはパブリックインターネットに公開する必要はありません。このような公開を行うと、固有のセキュリティー上の問題が発生し、リモートの攻撃者によって Memcached に保存されている情報が漏洩または変更される可能性があります。
7.7.1. DDoS に対する Memcached の強化 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーリスクを軽減するために、以下の手順のうち、お使いの設定に該当するものをできるだけ多く実行してください。
手順
LAN にファイアウォールを設定してください。Memcached サーバーにローカルネットワークだけでアクセスできるようにする必要がある場合は、
memcached
サービスで使用されるポートに外部トラフィックをルーティングしないでください。たとえば、許可されたポートのリストからデフォルトのポート11211
を削除します。firewall-cmd --remove-port=11211/udp firewall-cmd --runtime-to-permanent
# firewall-cmd --remove-port=11211/udp # firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションと同じマシン上で 1 台の Memcached サーバーを使用する場合は、localhost トラフィックのみをリッスンするように
memcached
を設定します。/etc/sysconfig/memcached
ファイルのOPTIONS
値を変更します。OPTIONS="-l 127.0.0.1,::1"
OPTIONS="-l 127.0.0.1,::1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Simple Authentication and Security Layer (SASL) 認証を有効にします。
/etc/sasl2/memcached.conf
ファイルで、以下のように修正または追加します。sasldb_path: /path.to/memcached.sasldb
sasldb_path: /path.to/memcached.sasldb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SASL データベースにアカウントを追加します。
saslpasswd2 -a memcached -c cacheuser -f /path.to/memcached.sasldb
# saslpasswd2 -a memcached -c cacheuser -f /path.to/memcached.sasldb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memcached
のユーザーとグループがデータベースにアクセスできることを確認します。chown memcached:memcached /path.to/memcached.sasldb
# chown memcached:memcached /path.to/memcached.sasldb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/memcached
ファイルのOPTIONS
パラメーターに-S
値を追加して、Memcached で SASL サポートを有効にします。OPTIONS="-S"
OPTIONS="-S"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Memcached サーバーを再起動して、変更を適用します。
systemctl restart memcached
# systemctl restart memcached
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SASL データベースで作成したユーザー名とパスワードを、お使いのアプリケーションの Memcached クライアント設定に追加します。
Memcached クライアントとサーバー間の通信を TLS で暗号化します。
/etc/sysconfig/memcached
ファイルのOPTIONS
パラメーターに-Z
値を追加して、TLS を使用した Memcached クライアントとサーバー間の暗号化通信を有効にします。OPTIONS="-Z"
OPTIONS="-Z"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-o ssl_chain_cert
オプションを使用して、証明書チェーンファイルパスを PEM 形式で追加します。 -
-o ssl_key
オプションを使用して、秘密鍵ファイルのパスを追加します。