nginx 没有sbin目录_CentOS7下Nginx+ModSecurity配置、安装、测试教程
“?最近在工作上遇到一點問題,問了大佬、百度,都沒有很好地解決;經過大量搜索查閱以及試驗,終于將問題解決。于是寫下這篇文章以提醒自己,也可供讀者參考。”
環境:CentOS-7-x86_64-LiveGNOME
-2003.iso+Xshell
版本:nginx/1.16.1 + modsecurity
一、安裝相關依賴工具
yum install -y git wget epel-releaseyum install -y gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel lmdb-devel libxml2-devel ssdeep-devel lua-devel libtool autoconf automake注:如果不成功,可能是yum倉庫沒裝好,此處可自行百度
二、安裝Modsecurity
cd /usr/localgit clone https://github.com/SpiderLabs/ModSecurity//執行上面的步驟會生成Modsecurity目錄注:用時較長,大約40分鐘,可能會有網速慢或者下載失敗的現象,重復嘗試幾遍就好了
cd ModSecuritygit checkout -b v3/master origin/v3/mastergit submodule initgit submodule update注:用時幾分鐘。這一步我做了兩次,可能是因為網絡阻塞。如果不成功,多嘗試幾次。
sh build.sh先看看/usr/local下新生成有幾個目錄:
只有Modsecurity
進入到/usr/local/Modsecurity
//還是在/usr/local/Modsecurity目錄下操作./configure make //需要的時間稍微久一點,10分鐘左右 //編譯make install //安裝//上述安裝三部曲會在上一級目錄/usr/local下 生成modsecurity目錄./configure圖示
第一次 make圖示(出錯) -------- ?沒有出錯可略過
根據提示去到/usr/local/include,把對應的文件刪了(正常情況下/usr/local存放的是下載的包,不會有諸如bin、include、lib之類的解壓目錄,所以放心刪,一定是之前安裝過什么才會存在這些目錄),然后回去/usr/local/Modsecurity執行make clean命令
解決方法:
rm /usr/local/include * -rfcd /usr/local/Modsecuritymake cleanmake由于本人是第二次裝nginx+modsecurity,所以才會出現這樣的問題
第二次 make圖示(成功)
第一次make install圖示 ----- 和上面是同樣問題 上述問題解決后,該問題也迎刃而解
第二次make install
編譯安裝三部曲以后,在/usr/local下生成modsecurity目錄
三、安裝nginx與ModSecurity-nginx
cd /usr/localgit clone https://github.com/SpiderLabs/ModSecurity-nginx//上述步驟會在/usr/local下生成Modsecurity-nginx的目錄wget http://nginx.org/download/nginx-1.16.1.tar.gz//上述步驟會在/usr/local下出現nginx-1.16.1.tar.gz文件tar -xvzf nginx-1.16.1.tar.gzcd /usr/local/nginx-1.16.1./configure --add-module=/usr/local/ModSecurity-nginx//如果出錯,也可以直接./configuremakemake install//做完上述這些步驟 當前目錄(/usr/local)就會生成一個nginx的目./configure --add-module=/usr/local/ModSecurity-nginx 圖示
make圖示
make install圖示
在/usr/local下生成nginx目錄
四、測試效果
輸入ifconfig查看ip
我的ip:192.168.200.132
啟動nginx
/usr/local/nginx/sbin/nginx嘗試啟動 發現有問題
使用以下命令解決:
sudo fuser -k 80/tcp已經沒問題了
1、未開啟nginx的狀態下,用瀏覽器訪問虛擬機配的ip
效果:
2、開啟nginx服務后,用瀏覽器訪問虛擬機配的ip:
/usr/local/nginx/sbin/nginx或cd /usr/local/nginx/sbin./nginx效果:
模擬攻擊,測試未啟動ModSecurity時的訪問效果訪問URL為:http://服務器IP/?param=%22%3E%3Cscript%3Ealert(1);%3C/script%3E結論:配置了nginx服務的虛擬機,只有開啟了nginx服務,才能訪問其IP
一些網站攻擊:譬如SQL注入、XSS攻擊,也不會被攔截。
ModSecurity作為一款入侵偵測與防護引擎,它主要是用于Web應用程序,所以也被稱為Web應用程序防火墻(WAF)。它可以作為Web服務器的模塊或是單獨的應用程序來運作。ModSecurity的功能是增強Web Application 的安全性和保護Web application以避免遭受來自已知與未知的攻擊。
所以我們需要在linux以及nginx下配置modsecurity
五、最后配置
創建用于存在配置文件的文件夾
mkdir /usr/local/nginx/conf/modsecurity1、將/usr/local/Modsecurity/modsecurity.conf-recommended
復制到/usr/local/nginx/conf/modsecurity,并重命名為modsecurity.conf;
2、將/usr/local/Modsecurity/unicode.mapping
復制到/usr/local/nginx/conf/modsecurity;
下載規則文件壓縮包
owasp-modsecurity-crs-3.3-dev.zip?
移動到/usr/local下
解壓
unzip owasp-modsecurity-crs-3.3-dev.zip1、解壓后復制crs-setup.conf.example
到/usr/local/nginx/conf/modsecurity/下并重命名為crs-setup.conf;
2、復制rules文件夾
到/usr/local/nginx/conf/modsecurity/下,
同時修改REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example與RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example兩個文件的文件名,將".example"刪除,可將自己寫的規則放置于此兩個文件中;
編輯nginx.conf
(/usr/local/nginx/conf/nginx.conf)
在http或server節點中添加以下內容(在http節點添加表示全局配置,在server節點添加表示為指定網站配置):
vim /usr/local/nginx/conf/nginx.conf//在下面添加如下內容,下圖所示modsecurity on;modsecurity_rules_file /usr/local/nginx/conf/modsecurity/modsecurity.conf;編輯modsecurity.conf
(/usr/local/nginx/conf/modsecurity/modsecurity.conf)
SecRuleEngine DetectionOnly改為SecRuleEngine On
同時添加以下內容:
Include /usr/local/nginx/conf/modsecurity/crs-setup.confInclude /usr/local/nginx/conf/modsecurity/rules/*.conf六、重新加載Nginx測試效果
配完以后重新啟動nginx
命令行輸入:
/usr/local/nginx/sbin/nginx?-s?reload?//nginx已啟動的情況或/usr/local/nginx/sbin/nginx //nginx未啟動的情況瀏覽器訪問:
http://192.168.200.132/?param="><script>alert(1);script>攔截成功!!
此外也可以對網頁進行一些簡單的攻擊用來測試modsecurity是否成功攔截攻擊
簡單SQL注入:https://192.168.200.132/?id=1 AND 1=1簡單xss攻擊:https://192.168.200.132/?search=alert('xss');相應的,也是顯示上述網頁展現的??403Forbidden七、查看nginx與modsecurity的版本信息
nginx:
[root@CetnOS-GUI /usr/local/nginx/sbin]# ./nginx -Vnginx version: nginx/1.16.1built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)configure arguments: --add-module=/usr/local/ModSecurity-nginx我這里的版本是nginx/1.16.1
第一次安裝遇到的問題:啟動nginx時出現錯誤
/usr/local/nginx/sbin/nginx -s reload解決辦法:原因是安裝的時候某一步驟出了錯,需要重新來一遍,將modsecurity、Modsecurity、Modsecurity-nginx、nginx刪掉即可,若對自己某一步驟有信心,可以不刪除相應目錄,參考上述文章執行命令產生的目錄所對應的具體步驟。
至此,Linux+nginx下安裝、測試modsecurity結束,謝謝觀看!
總結
以上是生活随笔為你收集整理的nginx 没有sbin目录_CentOS7下Nginx+ModSecurity配置、安装、测试教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: scala语言的底层是java实现的_S
- 下一篇: 下列数据类型中python不支持的是_