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/master
git submodule init
git 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/modsecurity
1、将/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.zip
1、解压后复制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配置、安装、测试教程相关推荐
- linux下安装nginx tar包,Linux环境下Nginx的安装
一.首先去官网下载Nginx的tar包 Nginx官方网站地址:http://nginx.org/en/download.html ps:下载速度感人 Nginx下载地址 下载完成之后,把它上传到服务 ...
- windows怎么下载安装python-windows下numpy下载与安装图文教程
Numpy介绍 NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构 ...
- linux上mysql卸数_Linux下MySQL卸载和安装图文教程
Linux下MySQL卸载和安装图文教程 发布时间:2020-09-02 08:43:17 来源:脚本之家 阅读:59 作者:伊宇紫 第一次写博客,做了两年的开发,工作之余给自己找点有意义的事做,分享 ...
- Nginx学习系列二Linux下Nginx实现负载均衡
关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...
- linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...
- Linux配置nginx打开报404,Linux下Nginx配置404页面的方法
Linux下Nginx配置404页面很多设置后返回状态码是200,而不是404状态码,所以那样的404页面设置是不正确的,今天分享下Linux下Nginx配置404页面设置方法. 1.创建自己的404 ...
- centos6.3 nginx php,CentOS 6.3下nginx、php-fpm、drupal快速部署
一切本着从简原则来做,能yum/rpm的,坚决不手工编译 :) 本次部署环境基于CentOS 6.3 x86_64系统. 0. 准备工作#更新yum[root@imysql ~]# yum -y up ...
- centos mysql安装包_Centos7下安装包方式安装MySQL
安装包下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 第一步:在 /h ...
- linux添加ip白名单_centOS7 下利用iptables配置IP地址白名单的方法
编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FO ...
最新文章
- Matlab姿态表示
- SQL Server 2008行数据和页数据压缩解密
- 《RESTful Web Services》第一章 使用统一接口
- ue4 设置intellisence_UE4.22编辑器界面操控设置(4)
- 创物联网融资额记录的G7,拿到3.2亿美元后要做什么?
- Problem D. Country Meow 2018ICPC南京
- PHP基础学习课程强烈推荐
- php 课程节次周次提取,用PHP写一个最简单的解释器Part5(计算器最后一节,下节开始如何写个脚本语言)...
- 贝叶斯公式理解与应用
- QTableView自定义拖拽行
- javascript学习心得
- iphone和iPad开发的区别
- 马化腾绝地逢生:山重水复疑无路,柳暗花明又一村
- 书评|《小岛经济学》
- 【STM32 Net MF开发板学习-11】步进电机控制(非PWM模式)
- 传智播客 HTTP协议详解
- matlab打开dat形式文件_matlab 读取dat文件
- zooomcharts的使用 (1.18.8版本 + ts )
- ST-LINK/V2 烧录固件
- 杭电oj ——1000 A+B问题
热门文章
- 【S操作】老铁留步,干货来了!小总结云存储云办公云笔记工具——我的云工具选择,供您参考...
- Linux下dislocate命令用法,五个超酷Linux命令
- FPGA篇(十一)modelsim命令行仿真提示“vsim 不是内部或外部命令,也不是可运行的程序或批处理文件”的解决办法 (转)
- 15.verilog可综合语句设计综述
- C++重载、覆盖和遮蔽
- Go语言中如何进行测试
- 【转】C++ const用法 尽可能使用const
- 服务器负载均衡的部署方式
- SQLServer表内自关联级联删除
- saltstack实战-6