ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

Apacheとは何ですか?

Apacheは、世界で最も人気のあるWebサーバーです。 インターネット上のアクティブなサイトの半分以上にサービスを提供し、大規模プロジェクトと小規模プロジェクトの両方のニーズに対応できます。

このガイドでは、Apacheを使用する際の機能を追加し、エクスペリエンスを向上させることができる、いくつかの一般的で便利なモジュールについて説明します。 これらは、サーバーの最適化、保護、および監視に役立ちます。

これらのモジュールを調査するためにUbuntu12.04VPSを使用しますが、ほとんどのディストリビューションは同様の方法で動作するはずです。 Apache固有のファイルの場所については、ディストリビューションのドキュメントを参照してください。

PageSpeedモジュール

mod_pagespeedモジュールは、コンテンツを自動的に最適化するApacheの拡張機能です。 データの圧縮、キャッシュの実装、ファイルのサイズ変更、構成ファイルからの不要な空白の削除を行うことができます。

プロジェクトのWebページにはUbuntu用のバイナリがあります。 64ビットUbuntuシステムにダウンロードしてインストールするには、次のように入力します。

cd
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install
sudo service apache2 reload

32ビットUbuntuシステムでは、次のように入力します。

cd
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install
sudo service apache2 reload

設定ファイルは「/etc/apache2/mods-available/pagespeed.conf」にあります。

このモジュールはインストール時に有効になり、サーバーをリロードするとコンテンツの最適化を開始する必要がありますが、構成ファイル内からさまざまな最適化および監視機能を構成できます。 UbuntuまたはDebianでmod_pagespeedを設定する方法に関するガイドに従ってください。

セキュリティモジュール

mod_securityモジュールは、管理者が設定したルールに基づいてトラフィックを受け入れまたは拒否できる構成可能なセキュリティレイヤーを提供します。 これは、脆弱性がインターネットにさらされるのを防ぐことができるアプリケーションファイアウォールです。

このモジュールはUbuntuのデフォルトのリポジトリにあるため、次のコマンドでインストールできます。

sudo apt-get install libapache2-modsecurity

次のコマンドでモジュールを有効にできます。

sudo a2enmod mod-security

通常の「/etc/ apache2 / mods-available」ディレクトリにある設定ファイルは「mod-security.conf」と呼ばれますが、これは「/ etct/modsecurity」にあるファイルのみを参照します。

次のコマンドを使用して、デフォルトのサンプルファイルを本番環境に移動できます。

cd /etc/modsecurity
sudo cp modsecurity.conf-recommended modsecurity.conf
Open the configuration file with root privileges:
sudo nano modsecurity.conf

構成ファイルを読み取り、サイトのニーズに基づいて値を調整します。 デフォルトの構成設定のほとんどは問題ありません。 「SecRequestBodyLimit」を、デフォルトの128KBの制限よりも少し許容度の高いものに調整することをお勧めします。

設定を適用する準備ができたら、「SecRuleEngine」ルールを「DetectionOnly」ではなく「On」に変更できます。

#SecRuleEngine DetectionOnly
SecRuleEngine On

これにより、ルールが実装され、サイトへの適用が開始されます。 これらのルールを有効にするには、Apacheインスタンスをリロードする必要があります。

sudo service apache2 reload

ステータスモジュール

設定するのに最も便利で簡単なモジュールの1つは、UbuntuにApacheをインストールするときに、プリインストールされて設定されています。 mod_statusモジュールは、サーバーの負荷と要求の概要を提供します。

次のコマンドを使用して、「mods-available」ディレクトリの構成ファイルを編集できます。

sudo nano /etc/apache2/mods-available/status.conf

「Location/server-status」ディレクティブの下で、「192.0.2.0/24」行の前から「#」文字を削除し、Webサーバーへのアクセスに使用するコンピューターのIPアドレスを追加します。

<Location /server-status>
	SetHandler server-status
	Order deny,allow
	Deny from all
	Allow from 127.0.0.1 ::1
	Allow from Your.IP.Address.Here
</Location>

繰り返しになりますが、入力するIPアドレスが、サーバーのIPアドレスではなく、サーバーへのアクセスに使用しているコンピューターであることを確認してください。

Apacheをリロードして、新しい構成の変更を再読み取りできるようにします。

sudo service apache2 reload

Webブラウザに次のように入力して、定義したサーバーステータスページに移動します。

Server.IP.Address.Or.Domain.Name/server-status
Apache Server Status for 192.241.167.189

Server Version: Apache/2.2.22 (Ubuntu)
Server Built: Jul 12 2013 13:37:15
Current Time: Thursday, 08-Aug-2013 16:36:48 UTC
Restart Time: Thursday, 08-Aug-2013 16:04:59 UTC
Parent Server Generation: 2
Server uptime: 31 minutes 49 seconds
Total accesses: 3 - Total Traffic: 0 kB
CPU Usage: u0 s0 cu0 cs0
. . .

サーバーのパフォーマンスと負荷に関する情報とテキストベースの表示を提供する統計ページが表示されます。 ページをすばやく更新すると、アクティビティがどのように表示されるかを確認できます。

スパムハウスモジュール

Spamhausモジュールを使用すると、不正であることがわかっているIPアドレスのブラックリストからの要求を拒否することで攻撃者をブロックできます。

繰り返しになりますが、このモジュールはUbuntuのデフォルトのリポジトリにあります。 インストールは次のコマンドで行います。

sudo apt-get install libapache2-mod-spamhaus

設定するには、「mods-available」ディレクトリ内の「mod-spamhaus.conf」ファイルを確認します。

sudo nano /etc/apache2/mods-available/mod_spamhaus.conf

さまざまな基準に基づいてフィルタリングするようにモジュールを構成できます。 「MS_METHODS」定義を使用すると、クライアントが認識されたHTTPメソッドのいずれかを使用するたびにIPをチェックできます。 これにより、これらのIPがサーバーにフラッディングするのを防ぐことができます。

このモジュールでは、ホワイトリストの構成、DNSブラックリストのローカルバージョンの維持、およびキャッシュパラメーターの調整も可能です。

モジュールはインストール時に有効になっているはずですが、apacheを再確認して再ロードし、次のコマンドでフィルタリングを有効にすることができます。

sudo a2enmod mod-spamhaus
sudo service apache2 reload

モジュールの書き換え

Apacheで最も役立つモジュールの1つは、mod_rewriteです。 このモジュールを使用すると、サーバーで要求されたコンテンツの一意で読みやすいURLを生成できます。

モジュールは、Apacheのインストール時にデフォルトでUbuntuにインストールされますが、有効になっていません。 この状況を修正するには、次のコマンドを発行します。

sudo a2enmod rewrite
sudo service apache2 reload

mod_rewriteの構成は、「mods-available」ディレクトリでは行われません。 代わりに、通常のサーバー構成ファイル内の.htaccessファイルまたは宣言を使用して、何を行うかを決定します。

完全な構成の詳細は、この記事の範囲外です。 ただし、ここにmod_rewriteの設定方法に関する詳細な記事があります。

結論

これは、Apacheのモジュールの完全なリストではなく、単なる紹介です。 これで、標準のApacheの動作を変更するために利用できるさまざまなモジュールのいくつかを見ることができるはずです。

サーバーに追加するすべてのコードで、脆弱性が発生し、オーバーヘッドが増える可能性があることに注意してください。 十分にテストされ、一般的に実装されているモジュールを選択してみてください。 サイトに積極的に必要なモジュールのみを有効にします。

ジャスティン・エリングウッド