CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
ModSecurityは、IIS、Apache2、Nginxと連携するように設計されたWebアプリケーションレイヤーファイアウォールです。これは、Apacheライセンス2.0の下でリリースされた無料のオープンソースソフトウェアです。ModSecurityは、Webサイトのトラフィックを監視および分析することにより、Webサーバーを保護するのに役立ちます。これはリアルタイムで行われ、正規表現を使用してほとんどの既知のエクスプロイトからの攻撃を検出してブロックします。ModSecurity自体は、限定された保護を提供し、保護を最大化するためにルールセットに依存します。
Open Web Application Security Project(OWASP)コアルールセット(CRS)は、あらゆるWebアプリケーションに基本レベルの保護を提供する一連の一般的な攻撃検出ルールです。ルールセットは無料でオープンソースであり、現在Spider Labsが提供しています。
OWASP CRSは以下を提供します。
このガイドでは、Apache 2を実行するCentOS 6にModSecurityおよびOWASPルールセットをインストールする方法を示します。
まず、システムが最新であることを確認する必要があります。
yum -y update
Apache 2をインストールしていない場合は、ここでインストールしてください。
yum -y install httpd
ModSecurityを機能させるには、いくつかの依存関係をインストールする必要があります。サーバー構成によっては、これらのパッケージの一部またはすべてがすでにインストールされている場合があります。Yumは、所有していないパッケージをインストールし、パッケージがすでにインストールされているかどうかを通知します。
yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel
ディレクトリを変更し、ModSecuity Webサイトからソースコードをダウンロードします。現在の安定版は2.8です。
cd /opt/
wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
パッケージを抽出し、そのディレクトリに移動します。
tar xzfv modsecurity-2.8.0.tar.gz
cd modsecurity-2.8.0
ソースコードを構成してコンパイルします。
./configure
make
make install
デフォルトのModSecurity構成とUnicodeマッピングファイルをApacheディレクトリにコピーします。
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
cp unicode.mapping /etc/httpd/conf.d/
ModSecurityを使用するようにApacheを構成します。これを行うには2つの方法があります。
echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf
...またはnanoなどのテキストエディタを使用します。
nano /etc/httpd/conf/httpd.conf
そのファイルの最後に、別の行に次の行を追加します。
LoadModule security2_module modules/mod_security2.so
これでApacheを起動して、起動時に起動するように構成できます。
service httpd start
chkconfig httpd on
このガイドを使用する前にApacheをインストールしていた場合は、再起動するだけです。
service httpd restart
これで、OWASPコアルールセットをダウンロードできます。
cd /etc/httpd
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
次に、OWASPルールセットを構成します。
cd modsecurity-crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
次に、ルールセットをApache構成に追加する必要があります。繰り返しますが、これには2つの方法があります。
echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/conf/httpd.conf
echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf
...またはテキストエディタで:
nano /etc/httpd/conf/httpd.conf
別の行のファイルの下部にこれを追加します。
Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf
Apacheを再起動します。
service httpd restart
最後に、インストールファイルを削除します。
yum erase /opt/modsecurity-2.8.0
yum erase /opt/modsecurity-2.8.0.tar.gz
デフォルトでは、ModSecurityは検出専用モードで実行されます。つまり、すべてのルール違反がログに記録されますが、アクションは実行されません。これは、Apacheエラーログで生成されたイベントを監視できるように、新規インストールに推奨されます。ログを確認したら、保護モードに移行する前に、ルールセットを変更するか、ルールを無効にするか(下記を参照)を決定することができます。
Apacheエラーログを表示するには:
cat /var/log/httpd/error_log
ApacheエラーログのModSecurity行は、9つの要素に分かれています。各要素は、イベントがトリガーされた理由に関する情報を提供します。
サーバーの構成によっては、一部の要素がない場合があることに注意してください。
ModSecurityを保護モードに変更するには、テキストエディターでconfファイルを開きます。
nano /etc/httpd/conf.d/modsecurity.conf
...そして変更:
SecRuleEngine DetectionOnly
に:
SecRuleEngine On
ModSecurityの実行中にブロックが発生した場合は、HTTPエラーログでルールを特定する必要があります。「tail」コマンドを使用すると、ログをリアルタイムで監視できます。
tail -f /var/log/httpd/error_log
ログを見ながら、ブロックを引き起こしたアクションを繰り返します。
ルールセットの変更は、このチュートリアルの範囲外です。
特定のルールを無効にするには、3番目の要素([id = 200000]など)にあるルールIDを特定し、Apache構成ファイルでそれを無効にします。
nano /etc/httpd/conf/httpd.conf
...ルールIDを含むファイルの最後に以下を追加します。
<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>
ModSecurityがWebサイト上のすべてのアクションをブロックしている場合、「コアルールセット」はおそらく「自己完結型」モードになっています。これを「異常検出」に変更する必要があります。これは、異常のみを検出してブロックします。同時に、「自己完結型」オプションを確認し、必要に応じて変更できます。
nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
「検出」を「自己完結型」に変更します。
ログを作成せずにIPがWebアプリケーションファイアウォール(WAF)を通過できるようにModSecurityを構成することもできます。
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off
...またはロギングあり:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。