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