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

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

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

ここLinuxAPTでは、Ubuntu20.04サーバーにNginxがプリインストールされたModSecurityファイアウォールをインストールする方法を検討します。


Ubuntu20にNginxを使用してModsecurityをデプロイする手順

1.システムにNginxをインストールします

サーバーにNginxがインストールされていない場合は、次のガイドに従ってModsecurityのインストール要件を満たします:https://linuxapt.com/blog/1276-install-nginx-on-ubuntu-20-04-lts-using-ソースコード


2.libmodsecurity3をインストールします

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

$ sudo apt install git -y

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

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


3.Modsecurityディレクトリに移動します

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

$ cd /usr/local/src/ModSecurity/


4.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


5.Gitモジュールをインストールします

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

$ git submodule init

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

$ git submodule update


6.modsecurity環境を構築します

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

$ ./build.sh

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

$ ./configure

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

fatal: No names found, cannot describe anything.


7.modsecurityソースコードをコンパイルします

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

$ make

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

$ make -j 4

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

$ sudo make install

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


8.modsecurity-nginxコネクタをインストールします

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

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

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


9.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/


10.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;


11.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

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


12.unicode.mappingファイルをコピーします

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

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


13.Nginx構成を確認します

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

$ sudo nginx -t


14.Nginxをリロードします

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

$ sudo systemctl restart nginx



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

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

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

  1. Ubuntu16.04LTSにNginxを使用してVarnishリバースプロキシをインストールする方法

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

  3. Ubuntu16.04LTSにNginxを使用してOroCRMをインストールする方法

  1. Ubuntu18.04LTSでNginxを使用してGhostブログをデプロイする方法

  2. Ubuntu18.04LTSにBrotli圧縮を使用してNginxをインストールする方法

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