mod_security简要安装设置指南
鲁明知
2023-12-01
mod_security简要安装设置指南。
P K[quFC
(c? bYmKZ
--------------------------------------------------------------------------------
6[f ~c5$%
t`:ElTF
系统:4.10
rwF#Zon4
apache:1.3.x
1@+ "#!A
@)@QH^T
mod_security是一个增加apache安全性的模块。支持apache1.3.x 和 apache2。
`/Bvf/l%
WzMW,&
安装指南如下:
FA;N3 01x
1.cd /usr/ports/www/mod_security
4T`/M|wk
2.make clean
8GN!
3.make install
<DALs2RVN
$x SP~wW
简要配置指南:
<`S`qdD|
1.编辑你的apache配置文件(httpd.conf),找到下面两行
<l<7pO`Xs
#LoadModule security_module libexec/apache/mod_security.so
{&~>x>w
#AddModule mod_security.c
/pmq@iThm
将注释去掉,即删除“#”。
P>+|;Cp/]8
xO$2'yj/7
2.在httpd.conf末尾加入下面的这些,需要强调的是,一下内容出自www.modsecurity.org的quick example,属于快速配置,有可能会让你的web server处于无法访问状态,请一定要注意看注释。
*DZqG43|
f0pXQ_
# 打开过滤引擎开关。如果是Off,那么下面这些都不起作用了。
l#]c {tJ
SecFilterEngine On
4'lh3}w6Y
Oas>/!Q
# 把设置传递给字目录
T_d.)w@
SecFilterInheritance Off
esU?T|p
Do^ 7V/
# 检查url编码
m6M{WWN2
SecFilterCheckURLEncoding On
>_vs3:5:
Y(4%!] $;!
# 检测内容长度以避免堆溢出攻击
oVV$XO/b
SecFilterForceByteRange 32 126
p yws
3?Fx,f
# 日志的文件和位置。一定要先建立好目录,否则apache重新启动的时候会报错。
XiNq>;@2g
SecAuditLog logs/audit_log
Aib#mFZ
[; ?IeQ`
# debug的设置
<Jk!kg5
SecFilterDebugLog logs/modsec_debug_log
jRS<:Aa.B
SecFilterDebugLevel 0
w/R7%o'-
qxG JTS
# 当匹配sh的时候,重新定向到一个特殊的页面,让攻击者知难而退
'X'I9_:Mt
SecFilter sh redirect:http://www.sina.com
?> LB|Yq-2
K1^0 -
# 检测POST数据,注意,请甚用这个开关,可能会导致一些post页面无法访问。详细的信息,请察看www.modsecurity.org的文档,其中有详细的post编码要求。
A+K4_s
SecFilterScanPOST On
#eRx)=
,x_kEI7].
# 缺省的动作
`] fm
SecFilterDefaultAction "deny,log,status:406"
DZX}=VS
6Jy HfJ
# 从新定向用户
2~'A~TY
SecFilter xxx redirect:http://www.sina.com
^O{W $
Z|#"-?|
# 防止操作系统关键词攻击
<rp#5
SecFilter /etc/password
JMA#W,?
~ {rhL0c3
# 防止double dot攻击
7~y* ruI)
SecFilter "/././"
b=n(]C%>j
d>k56wdm7
## 防止跨站脚本(CSS)攻击
Fr-S+JP/
SecFilter "<( |/n)*script"
K5p%wjQ1
# Prevent XSS atacks (HTML/Javascript injection)
w7NAY!i,
SecFilter "<(.|/n)+>"
A(3Qs` vl
_VfJV?A
# 防止sql注入式攻击
/ti#MtA6
SecFilter "delete[[:space:]]+from"
$Oh|nq(
SecFilter "insert[[:space:]]+into"
c nb4]TG?M
SecFilter "select.+from"
+ji5%656
O x d6Wh
#下面是限制了upload.php文件只能用来上传jpeg.bmp和gif的图片
$%eX9n
<Location /fileupload.php>
hD-uX16em)
SecFilterInheritance Off
U&V+A rq
SecFilterSelective POST_PAYLOAD "!image/(jpeg|bmp|gif)"
B`8ThelL[
</Location>
Q:> RNe
@E{8-1)y
</IfModule>
RuCx.x
u)1 f{k
#MfYQ.]S
下面的官方站点可以找到相关下载和详细的文档,强烈建议您在配置的时候,查阅每个指令的用途和禁忌,否则您的网站很可能会无法访问。
D&"&M c<r
http://www.modsecurity.org
"},f{,@]
QRbq*a|
本文参考了 包子@郑州大学网络安全园 的文章,文章地址:
S0#t31]33
http://www.phpx.com/index.php?itemid=241
qjBBBRs
_l<83a 1
c6t|h_an
[activating module `security' in /usr/local/etc/apache2/httpd.conf]
'"p)!2
<IfModule mod_security.c>
@"[{|p~
# 打开或者关闭过滤引擎
Vg#FpUk?
SecFilterEngine On
TEB`PR?L
# 设置缺省的动作
6}si R%vr
SecFilterDefaultAction redirect:http://www.bbnl.org/
Y'#j^%0@G+
或者
/G8Hh=
SecFilterDefaultAction "deny,log,status:404"
}=&;n.8:
# 把设置传递给字目录
on<ZOz09"
SecFilterInheritance Off
`Aq {cZi1
# 检测URL编码是否正确
tbX {x ?
SecFilterCheckURLEncoding On
DQH$Y:09
# ServerSignature
^y+kc-il
SecServerSignature "HackWayHttpd/0.5.924 (Unix/SSL)"
gY+dL;Nu$5
# 检测内容长度以避免堆溢出攻击
KtaLM E5
SecFilterForceByteRange 32 126
R2Re{m&u
# 日志文件的位置和名字
GI%iu/#$U
SecAuditEngine RelevantOnly
| >}b 63
SecAuditLog /var/log/audit.log
Q>ugH8
# debug设置
o`Hc/4">_J
# SecFilterDebugLog /var/log/modsec_debug.log
zdmJqAh4
# SecFilterDebugLevel 0
+U vO@
# 检测POST数据
bpp$GX
SecFilterScanPOST On
= 4]-U?g
# 当匹配sh的时候,重新定向到一个特殊的页面,让攻击者知难而退
kE0$3bG
SecFilter sh redirect:http://www.pc51.net/
LhF2%mhs
# Only check the body of the POST request
^-&q(NU
#过滤一些敏感的东西,我们使用*是为了攻击者使用/etc/./passwd来绕开检测
?47/tp/t
SecFilter /etc/*passwd
W&QMxT%5,
SecFilter /bin/*sh
`WQuIx' .
# 防止double dot攻击,也就是类似http://www.test.com/openfile.php?path=/../../..,虽然这个漏洞看似弱智,但是很多网站都有的,比如CERNET某大学某图片站
s nit nm
SecFilter "/././"
?/(/Nrz/
# 防止跨站脚本(XSS)攻击
jK;!l!jB
SecFilter "<[[:space:]]*script"
G!gGo;$7I
SecFilter "<(.|/n)+>"
6=//r$5
# 防止SQL插入(SQL Injection)攻击
"bPavsk
SecFilter "delete[[:space:]]+from"
DHrU=z
SecFilter "insert[[:space:]]+into"
uljV99n
SecFilter "select.+from"
ZYrk
# 只允许GET|POST|HEAD
J.wpXen5
SecFilterSelective REQUEST_METHOD "!(GET|POST|HEAD)"
j_9'V {Pf
# Nmap Version Scan
y9.Jl>
SecFilterSelective THE_REQUEST "^(HELP|default|/||TNMP|DmdT|/$"
h<[^:xh>M
# 下面是限制了upload.php文件只能用来上传jpeg.bmp和gif的图片
<A7?IY-c=
# <Location /upload.php>
~N}*H3h!
# SecFilterInheritance Off
Y!,JdVd^
# SecFilterSelective POST_PAYLOAD "!image/(jpeg|bmp|gif)"
tFhd!
# </Location>
D?b}$
<Location /phpMyAdmin>
1<5 3 Y6
SecFilterEngine Off
fNQZR
</Location>
I;%.L78{k
</IfModule>
本文来自www.pc51.Net