CentOS 6でModSecurityを使用してNGINXをセットアップする

この記事では、ModSecurityで保護されたLEMPスタックを構築する方法について説明します。ModSecurityは、インジェクションやPHP攻撃などから保護するのに役立つオープンソースのWebアプリケーションファイアウォールです。ModSecurityを使用してNGINXをセットアップする場合は、読み続けてください。

この記事のすべての手順では、rootアクセスが必要です。

ステップ1:前提条件のインストール

rootユーザーとしてまだ実行していない場合は、自分をエスカレーションします。

/bin/su

コンパイラーが必要なので、以下を実行して確認します。

yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd-devel libxml2-devel xz-devel python-devel libcurl-devel
yum groupinstall -y 'Development Tools' 

NGINXをインストールするには、まずパッケージを取得する必要があります。パッケージをダウンロードします。

cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz

スタックにはPHPパッケージも必要です。

wget http://us2.php.net/distributions/php-5.6.16.tar.bz2

ModSecurityをインストールするので、ソースを取得してダウンロードします。

wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

次に、ファイルをuntar / unzipします。

tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz   

次に、ModSecurityをインストールします。

cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install

すべての前提条件を取得したので、NGINXをインストールしましょう。次のコマンドセットは、NGINXおよびModSecurityのインストール用です。

cd /usr/src/nginx-1.9.9 && ./configure --add-module=../modsecurity-2.9.0/nginx/modsecurity/
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

次に、MySQLサーバーをインストールします。

yum install -y mysql-server
service mysqld start
mysql_secure_installation

以下のためのmysql_secure_installationコマンド:

  • インストールウィザードの最初のステップでEnterキーを押します。
  • 新しいMySQLルートパスワードを設定する必要がある場合は、プロンプトが表示されたらYを入力します。
  • 新しいパスワードを入力し、もう一度入力して確認します。
  • Yを押して匿名ユーザーを削除し、もう一度Yを押してMySQLへのリモートrootアクセスを禁止します。
  • 最後にもう一度Yを押して、テストデータベース/ユーザーを削除します。
  • 最後に、Yキーを押して変更を保存します。

インストールする最後の1つ、それはPHPです。この記事では、ソースからPHPをインストールします。

PHPのソースディレクトリを入力します。

cd /usr/src/php-5.6.16

次に、PHPを構成します。./configureコマンドには次の引数があり、WordPressなどのアプリケーションを実行できます。

 ./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
 make
 make install

NGINX用のPHP-FPMをインストールします。

yum install -y php-fpm

NGINX自体はPHPと直接統合されないため、PHP自体の上にPHP-FPMをインストールする必要があります。代わりに、NGINXはPHP処理をPHP-FPMに渡してスクリプトを実行します。

よくやった!前提条件をインストールしました。

ステップ2:ModSecurity / NGINXの構成

ModSecurityルールセットの作成から始めましょう。ModSecurityは、ユーザーが構成するまでそれ自体では何もしません。

WebサイトからOWASPルールセットを取得します。

 cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
 tar xvf master

ルールセットをダウンロードしたら、デフォルトの構成と基本ルールを組み合わせます。

cd SpiderLabs-owasp-modsecurity-crs-60c8bc9
cp /usr/src/modsecurity-2.9.0/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/modsecurity-2.9.0/unicode.mapping /usr/local/nginx/conf/
cat base_rules/*.conf >> /usr/local/nginx/conf/modsecurity.conf
cp base_rules/*.data /usr/local/nginx/conf

理論的には、これでほとんどのWebエクスプロイトから保護できます。ただし、インストールするプラグイン/コードも監査する必要があります。ModSecurityは優れたセキュリティ対策ですが、防弾対策が整っていないためです。

にディレクトリを作成します/var/www

mkdir /var/www

そして、仮想ホストのディレクトリ:

mkdir /var/www/yourwebsite.com

最後に、にあるNGINX構成に以下を追加します/usr/local/nginx/conf/nginx.conf。最後の}シンボルが現れる前に、必ずこの構成を追加してください。

  server {
  listen   80;
  root /var/www/yourwebsite.com;
  index index.php index.html index.htm;
  server_name yourwebsite.com www.yourwebsite.com;
  location / {
  ModSecurityEnabled on;
  ModSecurityConfig /usr/local/nginx/modsecurity.conf;
  }
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

ステップ3:PHP-FPMとNGINXを起動する

この手順は非常に簡単です。次のコマンドを実行するだけです。

service php-fpm start
/usr/sbin/nginx

おめでとう!ModSecurityで保護されたNGINXを使用して最初のWebサイトをセットアップしました。ModSecurityの詳細については、公式サイトにアクセスしてください。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。