在CentOS 6上使用ModSecurity设置NGINX

在本文中,我将解释如何构建受ModSecurity保护的LEMP堆栈。ModSecurity是一种开放源代码Web应用程序防火墙,可用于防止注入,PHP攻击等。如果您想使用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

现在,解压缩/解压缩文件。

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禁止远程root访问MySQL。
  • 最后一次按Y删除测试数据库/用户。
  • 最后,按Y保存更改。

最后一件事要安装,那就是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

我们需要在PHP本身之上安装PHP-FPM,因为NGINX本身并不直接与PHP集成。相反,NGINX将PHP处理传递给PHP-FPM以执行我们的脚本。

做得好!您已经安装了先决条件。

步骤2:配置ModSecurity / NGINX

让我们开始构建一个ModSecurity规则集。除非进行配置,否则ModSecurity本身不会执行任何操作。

从他们的网站上获取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设置了您的第一个网站。有关ModSecurity的更多信息,请访问其官方网站



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息