ModSecurity搭建过程
在Ubuntu20.04服务器安装和配置ModSecurity
必要条件
- 安装Ubuntu20.04的服务器一台
- 拥有sudo权限的非root用户
第一步:安装Apache Web服务器
若我们的Ubuntu20.04 服务器上未安装Apache,首先安装它
首先升级Ubuntu的软件包索引:
sudo apt-get update
之后安装Apache
sudo aptget install apache2
安装过程中遇到提示直接yes即可
第二步:安装ModSecurity
安装完Apache,接下来就要安装ModSecurity,执行下面的命令安装
sudo apt-get install libapache2-mod-security2
重启Apache
sudo service apache2 restart
执行命令,查看模块是否正常运行
sudo apachectl -M | grep security
看到类似输出即可
第三步:配置ModSecurity
ModSecurity 需要配置相应的规则,才能起到保护网络应用安全的作用。ModSecurity 有一个默认的配置文件样本,样本路径为/etc/modsecurity/modsecurity.conf-recommended,我们将其复制到名为 modsecurity.conf 的配置文件,以启用和配置ModSecurity。
为此,请运行该命令
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
ps:安装vim
sudo apt-get install vim
使用 vim 编辑器新创建的配置文件
sudo vim /etc/modsecurity/modsecurity.conf
将SecRuleEngine配置项的内容从DetectionOnly更改为on或On
之后点击shift加冒号直接wq!保存即可
重启Apache使配置文件生效:
sudo systemctl restart apache2
ModSecurity在/usr/share/modsecurity-crs目录中设置了默认规则。但是,我们建议从GitHub下载规则集:
首先,备份默认规则
sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bk
通过本地下载修改名字后拖到Ubuntu系统指定位置中
解压
把这个文件修改名为modsecurity-crs(解压完里面有两个文件改第二个文件即可)
之后拖动到Ubuntu系统中
之后通过命令移动到指定位置即可/usr/share文件中
将下载的规则配置文件样本复制成名为“crs-setup.conf”的配置文件
sudo cp /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf
要使新的规则对apache生效,我们使用vim编辑/etc/apache2/mods-enabled/security2.conf文件
sudo vim /etc/apache2/mods-enabled/security2.conf
将如下两行内容,添加到文件末尾
IncludeOptional /usr/share/modsecurity-crs/.conf
IncludeOptional "/usr/share/modsecurity-crs/rules/.conf
保存
重启apache2即可
sudo systemctl restart apache2
第四步:测试ModSecurity
现在,我们可以尝试在浏览器上执行恶意脚本,并查看是否会触发ModSecurity 保护规则。
将IP地址替换为服务器的公共IP地址或域名,在浏览器上访问该URL
URL: http://127.0.0.1/index.html?exec=/bin/bash
报错提示说明拦截成功,搭建完毕
Forbidden You don’t have permission to access / on this server. Apache/2.4.29 (Ubuntu) Server at 127.0.0.1 Port 80
ps:本篇文章是通过查阅多篇文章才总结的一篇完整版的文章,若帮助到大家,希望大家多多支持!