首先,确保你的 CentOS 7 系统已经更新到最新版本。使用以下命令进行更新:

sudo yum update -y

接下来,安装必要的软件包。我们需要 GCC、PCRE、PCRE-devel、zlib、zlib-devel、OpenSSL、OpenSSL-devel 这些软件包。使用以下命令进行安装:

sudo yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

接下来,我们将下载并安装 Nginx。首先,进入你想要存放 Nginx 的目录,然后下载 Nginx。你可以在 Nginx 官网找到最新版本的下载链接。

cd /usr/local/src
wget http://nginx.org/download/nginx-1.20.0.tar.gz

解压下载的文件:

tar -zxvf nginx-1.20.0.tar.gz

进入解压后的目录:

cd nginx-1.20.0

然后我们开始编译和安装 Nginx:

./configure
make && make install

默认情况下,Nginx 会被安装在 /usr/local/nginx 目录下。你可以通过以下命令启动 Nginx:

/usr/local/nginx/sbin/nginx

现在,我们已经成功安装了 Nginx,接下来我们将安装 ModSecurity。

首先,我们需要安装 ModSecurity 的依赖项。使用以下命令进行安装:

sudo yum install libxml2 libxml2-devel httpd-devel pcre-devel libcurl-devel -y

然后,我们下载并安装 ModSecurity。首先,进入你想要存放 ModSecurity 的目录,然后下载 ModSecurity。你可以在 ModSecurity 官网找到最新版本的下载链接。

cd /usr/local/src
wget https://github.com/SpiderLabs/ModSecurity/releases/download/v3.0.4/modsecurity-v3.0.4.tar.gz

解压下载的文件:

tar -zxvf modsecurity-v3.0.4.tar.gz

进入解压后的目录:

cd modsecurity-v3.0.4

然后我们开始编译和安装 ModSecurity:

./configure
make && make install

至此,我们已经安装了 ModSecurity,但是我们还需要将 ModSecurity 配置到 Nginx 中。

首先,我们需要下载 ModSecurity-nginx 连接器。进入你想要存放 ModSecurity-nginx 的目录,然后下载 ModSecurity-nginx。你可以在 ModSecurity-nginx GitHub 页面找到最新版本的下载链接。

cd /usr/local/src
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git

然后,我们需要重新编译 Nginx,将 ModSecurity-nginx 连接器添加进去。回到之前的 Nginx 目录:

cd /usr/local/src/nginx-1.20.0

清除之前的编译结果:

make clean

然后重新编译 Nginx,并添加 ModSecurity-nginx 连接器:

./configure --add-module=/usr/local/src/ModSecurity-nginx
make && make install

现在,你已经成功安装了 Nginx 和 ModSecurity,并且将 ModSecurity 配置到了 Nginx 中。

最后,我们需要配置 ModSecurity 的规则。ModSecurity 的默认规则位于 /usr/local/modsecurity/etc/modsecurity.conf-recommended。我们需要将此文件复制到 /usr/local/nginx/conf 目录下,并重命名为 modsecurity.conf。

cp /usr/local/modsecurity/etc/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf

然后,编辑 modsecurity.conf 文件,将 SecRuleEngine DetectionOnly 修改为 SecRuleEngine On,以启用 ModSecurity。

sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /usr/local/nginx/conf/modsecurity.conf

最后,重启 Nginx,使修改生效:

/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

至此,你已经在 CentOS 7 上成功安装了 Nginx 和 ModSecurity,并且进行了基本的配置。你现在可以开始使用 ModSecurity 来保护你的 Nginx 服务器了。


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。

最后修改:2023 年 09 月 22 日
如果觉得我的文章对你有用,请随意赞赏