CentOS 7.9 安裝nginx + ModSecurity

更新 發佈閱讀 11 分鐘

安裝官方 nginx

先在/etc/yum.repos.d新增一個nginx.repo的檔案

並加入以下內容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

這樣在 yum install nginx 的時候就會是最新的stable version

安裝依賴套件

yum install -y epel-release
yum groupinstall -y 'Development Tools'

yum install -y git lmdb lmdb-devel libxml2 libxml2-devel pcre pcre-devel curl libcurl-devel GeoIP GeoIP-devel yajl yajl-devel

Compile Modsecurity Lib

先 clone

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

安裝

cd ModSecurity
git submodule init
git submodule update
./build.sh
./configure
make
make install

在 build.sh 的時候會出現像錯誤的訊息

fatal: No names found, cannot describe anything.
不用管他
#2024/08/14增加
./configure出現 gcc錯誤需更新gcc版本
yum -y install centos-release-scl
因為centos官方已經不在支援centos 7/8更新,需更換yum domain
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=https/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=https/g /etc/yum.repos.d/*.repo
yum -y install devtoolset-8
scl enable devtoolset-8 bash
gcc -v


下載 nginx 與 modsecurity-nginx connector

git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git

下載 nginx 的 source 之前要看自己的 nginx 版本

nginx -v

可以看到

目前stable版本是 1.12.1

所以就下載 1.12.1的source

wget https://nginx.org/download/nginx-1.12.1.tar.gz
tar zxvf nginx-1.12.1.tar.gz

進入source並compile mod security module

cd nginx-1.12.1
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
make modules
cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules

設定 modsecurity

在 /etc/nginx/nginx.conf 加入 load_module

load_module modules/ngx_http_modsecurity_module.so;

接下來就跟官方那邊教學會不一樣

我就按照之前我寫的那篇

把OWASP TOP 10的rule都加進去

Modsecurity 基本設定

mkdir /etc/nginx/conf/modsecurity
cp ModSecurity/modsecurity.conf-recommended /etc/nginx/conf/modsecurity/modsecurity.conf
git clone https://github.com/coreruleset/coreruleset.git
cp -r coreruleset/rules /etc/nginx/conf/modsecurity/
cp coreruleset/crs-setup.conf.example /etc/nginx/conf/modsecurity/crs-setup.conf


開啟Modsecurity

在要啟動 Modsecurity 的 server 區塊內

加入以下設定

server {
....
....
modsecurity on;
modsecurity_rules_file /etc/nginx/modsecurity.conf;
}

#2021/04/20註記 排除太嚴格的rules

server {
....
....

modsecurity_rules '
SecRuleRemoveById 941310 933210 931100 942100
';
}

最後記得把 /var/log/nginx 資料夾 owner 改成nginx

這樣發生問題 modsecurity才能寫log進去


留言
avatar-img
留言分享你的想法!
avatar-img
Jerry CHU的工作日誌
0會員
5內容數
僅為工作上的紀錄
2024/09/26
Zabbix是一免費開源監控系統當Zabbix建制完成之後,可以將所有主機加入監控 以下是在CentOS 7.9 下安裝及設定步驟: #rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.e
2024/09/26
Zabbix是一免費開源監控系統當Zabbix建制完成之後,可以將所有主機加入監控 以下是在CentOS 7.9 下安裝及設定步驟: #rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.e
2024/08/14
最近使用CentOS當作Redis Server一段時間就會出現redis server went away 優化 vi /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never >
2024/08/14
最近使用CentOS當作Redis Server一段時間就會出現redis server went away 優化 vi /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never >
2022/08/06
vi /etc/nginx/conf.d/default.conf # IPv4 allow 103.21.244.0/22; allow 103.22.200.0/22; allow 103.31.4.0/22; allow 104.16.0.0/13; allow 104.24.0.0/14;
2022/08/06
vi /etc/nginx/conf.d/default.conf # IPv4 allow 103.21.244.0/22; allow 103.22.200.0/22; allow 103.31.4.0/22; allow 104.16.0.0/13; allow 104.24.0.0/14;
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo
Thumbnail
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
Thumbnail
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
Thumbnail
CentOS 7 安裝及設定Jenkins 介紹 開源且免費的CI工具,由Java編寫的,提供了持續整合、構建以及部署的功能,是一個自動化的server 環境 CentOS 7 安裝步驟 1. 添加Jenkins Repository 2. 安裝Jenkins以及Java 3. 啟動並啟用Jenki
Thumbnail
CentOS 7 安裝及設定Jenkins 介紹 開源且免費的CI工具,由Java編寫的,提供了持續整合、構建以及部署的功能,是一個自動化的server 環境 CentOS 7 安裝步驟 1. 添加Jenkins Repository 2. 安裝Jenkins以及Java 3. 啟動並啟用Jenki
Thumbnail
ModSecurity 是普遍應用之 公開網頁程式防火牆 ( 可 搭配 OWASP (Open Web Application Security Project) 維護的免費核心規則集 Core Rule Set CRS 初始設計 為 Apache HTTP Server 之模組 後續發展成 htt
Thumbnail
ModSecurity 是普遍應用之 公開網頁程式防火牆 ( 可 搭配 OWASP (Open Web Application Security Project) 維護的免費核心規則集 Core Rule Set CRS 初始設計 為 Apache HTTP Server 之模組 後續發展成 htt
Thumbnail
打包網頁 在部署網站之前,我們要先來打包我們的網頁前端專案 為什麼要打包呢?什麼是打包呢?這有點像是編譯,如果你寫過 C 應該講到這裡就理解為什麼要這樣做了 在網頁開發中網頁內容最原始就是直接用 html 下去寫,但一個成熟的開發者會善用框架來開發,不論是用 vue 或 react,樣式的部分也會從
Thumbnail
打包網頁 在部署網站之前,我們要先來打包我們的網頁前端專案 為什麼要打包呢?什麼是打包呢?這有點像是編譯,如果你寫過 C 應該講到這裡就理解為什麼要這樣做了 在網頁開發中網頁內容最原始就是直接用 html 下去寫,但一個成熟的開發者會善用框架來開發,不論是用 vue 或 react,樣式的部分也會從
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News