GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSでNginxを使用してModsecurityをデプロイする方法

ModSecurityは、Apache、IIS、NginxなどのさまざまなWebサーバーでサポートされている無料のオープンソースWebアプリケーションファイアウォールです。 Webサーバーを保護するための外部セキュリティレイヤーとして展開されます。

このチュートリアルでは、NginxがプリインストールされたModSecurityファイアウォールをインストールする方法を学習します。プロセスを示すためにUbuntu20.04サーバーを使用しました。

前提条件

Ubuntu20.04LTSサーバー

UbuntuサーバーにインストールされたNginx

インストールガイド

サーバーにNginxがインストールされていない場合は、次のガイドに従ってModsecurityのインストール要件を満たします。

https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/

Nginxをインストールしたので、ModSecurityのインストールを始めましょう。

ステップ1:libmodsecurity3をインストールする

まず、ModSecurity gitリポジトリのクローンを作成できるように、マシンにgitをインストールします。次のコマンドを実行することでそれを行うことができます:

sudo apt install git -y

gitがインストールされたので、次のコマンドを実行してリポジトリのクローンを作成します。

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

ステップ2:Modsecurityディレクトリに移動します

modsecurity gitリポジトリのクローンを作成したので、以下のパスに従ってmodsecurityディレクトリに移動します。

cd /usr/local/src/ModSecurity/

ステップ3:libmodsecurity3の依存関係をインストールする

Modsecurityディレクトリ内にいるので、このステップでlibmodsecurity3の依存関係をインストールします。次のコマンドを実行します:

sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

ステップ4:Gitモジュールをインストールする

次に、次のコマンドを使用してgitサブモジュールをインストールします。

git submodule init

次に、サブモジュールを更新します:

git submodule update

ステップ5:modsecurity環境を構築する

modsecurity環境を構築する時が来ました。これを行うには、次のコマンドを実行します。

./build.sh

次のコマンドを使用して構成します:

./configure

この後、次のエラーが発生します:

これを無視して先に進んでもかまいません。

ステップ6:modsecurityソースコードをコンパイルします

次に、次のコマンドを使用してlibmodsecurity3の環境をコンパイルします。

make

コンパイル速度を上げたい場合は、-jを指定できます。私は4つのCPUを持っており、以下に示すように4つすべてを使用してコンパイルします。

make -j 4

次に、インストールコマンドを実行します:

sudo make install

インストールは/usr / local / modsecurity /で行われます。 。

Step 7: Install modsecurity-nginx connector

このステップでは、Modsecurity-nginxコネクタをインストールします。これは、NginxとModSecurityの間の接続および通信ポイントです。

まず、コネクタリポジトリのクローンを作成する必要があります。次のコマンドを実行してこれを行います:

sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
/usr/local/src/ModSecurity-nginx/

ステップ8:modsecurity-nginxの依存関係をインストールする

まず、次のようにNginxソースディレクトリに移動します:

cd /usr/local/src/nginx/nginx-1.21.1

コマンドのNginxバージョンを現在のNginxバージョンに置き換えてください。そうしないと、エラーが発生します。

必要な依存関係をインストールするには、次のコマンドを実行します:

sudo apt build-dep nginx && sudo apt install uuid-dev -y

次に、次のコマンドを実行して、–with-compatフラグを指定してModsecurity-nginxコネクタモジュールをコンパイルします。

sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

次に、次のコマンドを実行して動的モジュールを作成します。

sudo make modules

次に、次のコマンドを使用して、 objs/ngx_http_modsecurity_module.soで作成した動的モジュールを/usr/ share / nginx/modulesにコピーします。

sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

ステップ9:Nginx構成ファイルでModsecurityを有効にする

NginxでModsecurityを有効にするには、最初に構成でload-moduleとmodsecurityモジュールへのパスを指定する必要があります。

次のようにnanoエディターでNginx構成ファイルを開きます:

sudo nano /etc/nginx/nginx.conf

ファイルの上部に次の行を追加します:

load_module modules/ngx_http_modsecurity_module.so;

HTTP {}セクションの下に、次のコード行を追加します。

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;

ステップ10:modsecurity用にディレクトリとファイルを構成する

modsecという名前のディレクトリを作成します。ディレクトリのパスは、コマンドで指定されています:

sudo mkdir /etc/nginx/modsec/

将来、構成ファイルとルールを保存するためにこのディレクトリが必要になります。

次に、次のコマンドを使用して、複製されたgitディレクトリからサンプルのModsecurity構成ファイルをコピーします。

sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

次に、modsecurity構成ファイルを開きます。

sudo nano /etc/nginx/modsec/modsecurity.conf

7行目のファイルでSecRuleEngineディレクティブを見つけて、次のようにDetectionOnlyに変更します。

secruleEngine DetectionOnly

Modsecurityを有効にするには、次のディレクティブを次のようにOnに変更します。

secRuleEngine on

次に、224行目で次のディレクティブを見つけます。

secAuditLogParts ABIJDEFHZ

次のように変更します:

secAuditLogParts ABCDEFHJKZ

次に、modsec-config.confファイルを作成します。ここで、modsecurity.confおよびmodsecurityの他のルールを追加します:

sudo nano /etc/nginx/modsec/modsec-config.conf

作成したファイル内に、次の行を追加します:

Include /etc/nginx/modsec/modsecurity.conf

ファイルを保存して終了します。

ステップ11:unicode.mappingファイルをコピーする

最後に、Modsecurityのunicode.mappingファイルを次のようにコピーします。

sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/

ステップ12:Nginxの構成を確認する

Nginxを再起動する前に、次のコマンドを実行して構成が正常かどうかを確認してください:

sudo nginx -t

次の出力が得られたら、準備は完了です。

ステップ13:Nginxをリロードする

次のコマンドでNginxを再起動します:

sudo systemctl restart nginx

このガイドでは、すでにNginxがプリインストールされているubuntuサーバーにModsecurityをインストールする方法を説明しました。また、いくつかのわかりやすいコマンドを使用して、ModSecurityとNginxを接続するように構成する方法も確認しました。


Ubuntu
  1. Ubuntu20.04LTSにNginxを使用してSeafileをインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu20.04LTSにNginxを使用してModsecurityをデプロイする

  1. Ubuntu18.04LTSにNginxを使用してSeafileをインストールする方法

  2. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  3. Ubuntu15.10にNginxでMailpileをインストールする方法

  1. Ubuntu15.10でNginxを使用してRedmine3をインストールする方法

  2. Ubuntu15.10にNginxを使用してPiwikをインストールする方法

  3. Ubuntu16.04でNginxを使用してRedmine3.2をインストールする方法