14 ステップの Apache セキュリティ ベスト プラクティス チェックリスト (PDF 電子ブックが付属)
公開: 2017-11-22鉄道FX / Stock.adobe.com
Apache は現在、45.8% の市場シェアを誇り、依然として世界をリードする Web サーバー ソフトウェアです。 最終的に、Web サーバーに Apache が搭載されている Web サイトは約 8,000 万になります。 かなり印象的ですよね?
Apache は 1995 年から存在するオープンソースの Web サーバー ソフトウェアです。そのため、それだけでもその信頼性と寿命が十分にわかります。 次に、Apache サーバーで実行される有名な Web サイトがあります。Apple、Adobe、Paypal は、Web サイトを Apache に委託している主要ブランドのほんの一部です。
もちろん、これで Apache が 100% 安全になるわけではありません。特に、Apache が非常に有名で信頼できるプラットフォーム (WordPress など) である場合、ハッカーから 100% 安全なソフトウェアは存在しないからです。 ただし、Apache セキュリティ PDF 電子ブック、モジュール、ガイド、チュートリアル、フレームワーク、または Web サーバーのセキュリティ チェックリストを探している場合は、ここが正しい場所です。
Apache のセキュリティを強化したい場合、Apache のセキュリティ上の問題がある場合、または 1 つか 2 つの脆弱性を修正しようとしている場合は、次のチェックリストに、Web サイトのセキュリティ プランに追加できる 14 のセキュリティのベスト プラクティスが記載されています。
究極の Apache セキュリティ ベスト プラクティス チェックリスト
WordPress Web サイトを真に強化したい人にとって、Web サイトに接続して機能させる他のソフトウェアと同様に、Apache を保護することが不可欠です。 そうしないと、サイトの速度に影響を与える可能性もあります。 したがって、その方法は次のとおりです。
1.Apacheを更新する
WordPress とインストールしたプラグインやテーマを定期的に更新する必要があることをご存知ですか? Web サーバーも同様です。
サイトが最新バージョンの Apache で実行されていないことが不安な場合は、httpd -v コマンド ラインを使用して確認できます。 出力されたバージョンが Apache の現在のバージョンと一致しない場合は、次のように更新できます。
# yum update httpd
# apt-get install [add Apache version here]c
2. ログをオンにする
マネージド WordPress ホスティング プロバイダーと連携している場合、プロバイダーがサーバーと WordPress の脆弱性やその他の警告の兆候を監視します。 とはいえ、サーバーのトラフィックにも注意する必要があります。
Apache を使用すると、mod_log_config モジュールを更新することで、このアクティビティ ログにアクセスできるようになります。 基本的に、ユーザーがサーバーにアクセスするたびに何をしたかがわかります。
3. SSL証明書を取得する
Web サーバーは Web サイトに対するすべてのブラウザ/サーバー リクエストを処理するため、SSL 証明書で Web サーバーを保護することが重要です。 嬉しいことに、SSL 証明書を無料で取得できるようになりました。 これは今まで以上に重要になっているため、これを自分でインストールする技術的能力がない場合は、高品質のホスティングプロバイダーがインストールできます。
4. ファイアウォールを追加する
SSL 暗号化による保護を強化することに加えて、Web サーバーをファイアウォールで強化する必要があります。 Apache の場合、これは ModSecurity を有効にすることを意味します。
サーバーにインストールするには、次のコマンドを実行します。
# yum install mod_security
# /etc/init.d/httpd restart
ファイアウォールが稼働すると、SQL インジェクション、セッション ハイジャック、クロスサイト スクリプティングなど、多くの悪意のあるアクティビティがサーバーに到達するのを防ぎます。
5.mod_evasiveをインストールする
Mod_evasive は、Apache サーバーをブルート フォース攻撃や DDoS 攻撃から保護するモジュールなので、これも有効になっていることを確認してください。 同時ログイン試行と失敗したログイン試行をブラックリストに登録し、悪意のある IP を監視します。
6. HTTP制限を設定する
分散型サービス拒否 (DDoS) 攻撃は、どのようなアクションに注意すべきかを知っていれば、非常に簡単にブロックできます。 DDoS はサーバーに大きなリクエストを繰り返し送信することで発生する傾向があるため、DDoS の発生を防ぐ制限を設定することを目標にする必要があります。
確立する必要がある制限のいくつかを次に示します。
- キープアライブ=オン
- キープアライブタイムアウト
- リミットリクエストボディ
- リクエストフィールドの制限
- リクエストフィールドサイズの制限
- リミットリクエストライン
- LimitXMLRequestBody
- 最大クライアント
- MaxKeepAliveRequests
- MaxRequestWorkers
- リクエスト読み取りタイムアウト
- タイムアウト
7. 使用しないモジュールを削除する
Apache サーバー上に未使用、メンテナンスされていない、または期限切れのモジュールを放置すると、そこに存在する必要のない侵入ポイントを通じてサイトがハッカーにさらされることになります。
最初に行うべきことは、どのモジュールが実際にアクティブであるかを確認することです。 これを行うには、LoadModule コマンドを使用します。 リストを調べて不要なモジュールを特定したら、非アクティブ化する各モジュールの前に「#」記号を追加して再起動します。
8. デフォルトのユーザーとグループの変更
一般に、ソフトウェア上でデフォルト設定とユーザーをそのままにすることは、悪いセキュリティ行為です。 その理由は簡単です。Apache のデフォルトのユーザー名またはグループ名を使用している場合、ハッカーもそれらのデフォルト名を認識していると考えられます。
デフォルトをそのままにするのではなく、Apache プロセスを実行するための新しい非特権アカウントを作成する必要があります。 # groupadd および # useradd コマンドを使用して、新しいエンティティを設定できます。 作成した新しいユーザー名とグループ名で httpd.conf を更新することを忘れないでください。
9. ディレクトリへのアクセスをブロックする
変更が必要なデフォルト設定の別の例を次に示します。 この場合、ディレクトリのファイルにアクセス権が付与されることで、誰でも好きな場所を探索できるようになります。
合計ブロックを配置するには、次のコマンドを使用します。
<Directory "/">
Require all denied
</Directory>
特定のユーザーにアクセスを有効にしたい場合は、次のように実行できます。
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
ディレクトリ内の特定のフォルダーへのアクセスを有効にしたい場合は、次のように実行できます。
<Directory "/usr/local/httpd">
Require all granted
</Directory>
ユーザーのアクセス権をさらに調整するために、Apache モジュール リポジトリを精査することもできます。
10. ディレクトリを公開しないでください
サーバーにインデックス ファイルがない場合、ルート ディレクトリに保存されているすべてのコンテンツをユーザーが参照できることをご存知ですか? これは明らかに良くないので、次のようにしてこのデフォルト設定を無効にする必要があります。
<Directory /var/www/html>
Options -Indexes
</Directory>
11. サーバーの詳細を非表示にする
Apache はオープンソース ソフトウェアであるため、これらの設定がサーバー側で無効になっていない限り、使用されているバージョンの詳細をすぐに確認できます。 ハッカーはその機密情報を使用してサーバーへの侵入方法を知ることができるため、この情報をブロックする必要があります。
無効にする必要があるものが 2 つあります。
- ServerSignature – Apache のバージョン
- ServerTokens – これには、サーバーの機密情報の中でも特に OS バージョンが含まれます
この情報は、Web サイト上のエラー ページを表示するだけで他のユーザーに見つかる可能性があるため、この情報が表示されないようにブロックすることが非常に重要です。 これを行うには、次のように httpd.conf を更新します。
ServerSignature Off
ServerTokens Prod
12.ETagを非表示にする
残念ながら、Apache の ETag ヘッダーには、サーバーに関する機密情報が多数含まれています。 明らかに、そのような情報を外部と共有するものはすべて隠されるべきです。 さらに、電子商取引 Web サイトを運営している場合は、PCI に準拠するためにこれを非表示にする必要があります。
これを行うには、次のディレクティブを httpd.conf に追加します。
FileETag None
13. .htaccess オーバーライドを無効にする
.htaccess は、WordPress Web サイトにとって重要なファイルです。 このため、これをロックダウンして、他の人が構成設定を上書きできないようにする必要があります。
これを無効にするには、ルートにある httpd.conf に次のコードを追加します。
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. SSI と CGI を無効にする
Server Side include (SSI) が有効なファイルをチェックしないままにしておくと、サイトに多くのセキュリティ上の問題が発生する可能性があります。 CGI スクリプトについても同様です。 これらのいずれかがハッカーにサーバーに過負荷をかけたり、コードに悪意のあるスクリプトを挿入したりすることを防ぐために、これらをオフにするか、Options ディレクティブを使用してハッカーの動作を制限することを忘れないでください。
使用できるいくつかのオプション値を次に示します。
- オプション すべて
- オプションに含まれるものNOEXEC
- オプション - 含まれるもの
- オプション -ExecCGI
- オプション -ExecCGI を含む
- オプション マルチビュー
Apache サーバーの管理
Web サイトのセキュリティを強化するには、Apache サーバーに特別な注意を払ってください。 サーバーの構成ミスやデフォルト設定のままにするなどの問題は、コアが更新されていない場合や PHP コーディングが安全でない場合と同様に、サイトを危険にさらす可能性があります。
フィードバックを送信したり、会話に参加したりしませんか?Twitter にコメントを追加してください。