Memcachedは、C言語で記述された、無料の高性能分散メモリオブジェクトキャッシングシステムです。これは、RAMにデータとオブジェクトをキャッシュすることにより、動的なデータベース駆動型Webサイトを高速化するために使用されます。 Memcachedは、Webサイトのデータベーステーブルとクエリのコンテンツをメモリに保存することで機能し、Webサイトのパフォーマンスを大幅に向上させます。 Memcachedを使用して、拡張性とパフォーマンスの高いWebサイトを作成およびデプロイできます。 Memcachedは現在、Facebook、Reddit、Wikipedia、Craigslist、Yellowbot、YouTubeなどの多くの企業で使用されています。
このチュートリアルでは、Ubuntu18.04VPSにMemcacheをインストールして保護する方法を段階的に説明します。
前提条件
- Atlantic.Netクラウド上の新しいUbuntu18.04サーバーVPS。
- ルートパスワードはVPSに設定されています。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。オペレーティングシステムとしてUbuntu18.04を選択し、少なくとも2GBのRAMを搭載した新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–ApacheとPHPをインストールする
まず、ApacheWebサーバーとPHPをサーバーにインストールする必要があります。次のコマンドでインストールできます:
apt-get install apache2 php php-dev php-pear libapache2-mod-php -y
すべてのパッケージがインストールされたら、Apache Webサーバーを起動し、次のコマンドを使用してシステムの再起動後に起動できるようにします。
systemctl start apache2systemctl enable apache2
ステップ3–Memcachedをインストールする
apt-get install memcached libmemcached-tools php-memcached -y
インストールしたら、Apacheサービスを再起動して変更を適用する必要があります。
systemctl restart apache2
次に、次のコマンドを使用してMemcachedサービスのステータスを確認できます。
systemctl status memcached
次の出力が得られるはずです:
●memcached.service-memcachedデーモンロード済み:ロード済み(/lib/systemd/system/memcached.service;有効;ベンダープリセット:有効)アクティブ:アクティブ(実行中)2019-08-30 09:30:02 UTC; 41秒前ドキュメント:man:memcached(1)メインPID:19088(memcached)タスク:10(制限:1114)CGroup:/system.slice/memcached.service└─19088/ usr / bin / memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pidAug 30 09:30:02 ubuntu1804 systemd [1]:memcachedデーモンを開始しました。
netstat -plunt | grep memcached
出力:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 19088 / memcached
次のコマンドを使用して、Memcachedサーバーの現在の統計を確認することもできます。
echo「統計設定」| nc localhost 11211
次の出力が得られるはずです:
STAT maxbytes 67108864STAT maxconns 1024STAT tcpport 11211STAT udpport 0STAT inter 127.0.0.1STAT verbosity 0STAT oldest 0STAT evictions onSTAT domain_socket NULLSTAT umask 700STAT growth_factor 1.25STAT branch_size 48STAT num_threads 4STAT num_threads_per_udp 4STAT num_threads_per_udp 4STAT stat_key_fix交渉する
ステップ4–Memcachedを構成する
デフォルトのMemcache構成ファイルは/etc/memcached.confにあります。次に、Memcached構成ファイルを開き、2GBのメモリを使用してlocalhost(127.0.0.1)でリッスンするようにMemcachedを設定し、最大1000の接続を許可します。
nano /etc/memcached.conf
次の変更を行います:
#memcachedをデーモンとして実行します。このコマンドは暗黙的であり、次の場合には必要ありません-d#memcachedの出力を/ var / log / memcachedlogfile /var/log/memcached.log# memory-m 2048#に記録しますデフォルトの接続ポートは11211-p 11211#デーモンを次のように実行します根。この設定ファイルにno#-uコマンドが含まれている場合、start-memcachedはデフォルトでrootとして実行されます。-umemcache#リッスンするIPアドレスを指定します。デフォルトでは、すべてのIPアドレスをリッスンします-l 127.0.0.1#同時着信接続の数を制限します。デーモンのデフォルトは1024-c500#pidfile-P/var/run/memcached/memcached.pidを使用
ファイルを保存して閉じます。次に、Memcachedサービスを再起動して、変更を適用します。
systemctl restart memcached
ステップ5–Memcachedをテストする
これでMemcachedがインストールされ、実行されます。次に、Memcache PHP拡張機能が有効になっていて、正しく機能しているかどうかを確認します。これを行うには、Apacheルートディレクトリ内にinfo.phpファイルを作成します。
nano /var/www/html/info.php
次の行を追加します:
<?phpphpinfo();?>
ファイルを保存して閉じます。次に、Webブラウザーを開き、URLhttp://your-server-ip/info.phpを入力します。 Memcachedが有効になっている次のページが表示されます。
サーバーをハッカーから保護するために、テスト後にinfo.phpファイルを削除することをお勧めします。
Rm -rf /var/www/html/info.php
ステップ6–SASLでMemcachedを保護する
セキュリティがないと、Memcachedはサービス拒否攻撃の原因となる可能性があります。 SASLサポートとユーザー認証を使用してMemcachedを保護することをお勧めします。
まず、次のコマンドを実行して、セキュリティなしでMemcached接続を確認します。
memcstat --servers ="127.0.0.1"
出力:
サーバー:127.0.0.1(11211)pid:16805稼働時間:764時間:1566107468バージョン:1.5.6> 1.8-次に、Memcached構成ファイルを開き、次のコマンドを使用してSASLサポートと詳細ログを有効にします。
nano /etc/memcached.confファイルの最後に次の行を追加します。
-S-vvファイルを保存して閉じます。次に、Memcachedサービスを再起動します。
systemctl restart memcached次に、Memcachedログをチェックして、SASLサポートが有効になっているかどうかを確認します。
journalctl -u memcachedSASLをサポートする次の出力が表示されます。
Aug 18 05:52:37 hitesh30 09:47:14 ubuntu1804 systemd-memcached-wrapper [19941]:初期化されたSASL。次に、次のコマンドを使用して、Memcached接続を再度確認します。
memcstat --servers ="127.0.0.1"出力を取得しないでください。これは、SASLサポートがMemcachedで有効になっていることを意味します。
次に、Memcachedの認証済みユーザーを追加する必要があります。
これを行うには、最初に次のコマンドを使用してSASLパッケージをインストールします。
apt-get install sasl2-bin -yインストールしたら、SASL構成用のディレクトリとファイルを作成します。
mkdir /etc/sasl2nano /etc/sasl2/memcached.conf次の行を追加します:
mech_list:plainlog_level:5sasldb_path:/ etc / sasl2 / memcached-sasldb2ファイルを保存して閉じます。次に、次のコマンドを使用して、memcacheadminという名前のユーザーでSASLデータベースを作成します。
saslpasswd2 -a memcached -c -f / etc / sasl2 / memcached-sasldb2 user1パスワードの入力を求められます:
パスワード:もう一度(確認用):次に、SASLデータベースの所有権を変更します。
chown memcache:memcache / etc / sasl2 / memcached-sasldb2最後に、Memcachedサービスを再起動して、構成の変更を適用します。
systemctl restart memcached次に、認証資格情報を使用してMemcached接続を再度確認します。
memcstat --servers ="127.0.0.1" --username =user1 [email protected]次の出力が得られるはずです:
サーバー:127.0.0.1(11211)pid:18776稼働時間:30時間:1566107912バージョン:1.5.6 Ubuntu 1.8-libつまり、MemcachedはSASLサポートとユーザー認証で保護されています。
Linux