« Webserver/Apache/Modules/Security » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
|||
| Ligne 66 : | Ligne 66 : | ||
</IfModule> | </IfModule> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== test du module == | |||
* Saisir '''<code>OR 1=1</code>''' dans un champ de recherche | |||
* Ajouter '''<code><script>xss</script></code>''' à la fin de l'url | |||
* Ajouter '''<code>/../../etc/passwd</code>''' à la fin de l'url | |||
== Désactivation pour un site particulier == | == Désactivation pour un site particulier == | ||
Version du 12 mai 2014 à 12:13
Installation
yum install mod_security mod_security_crs
Le fichier de configuration principal est <path>/etc/httpd/conf.d/mod_security.conf</path>
<IfModule mod_security2.c>
# ModSecurity Core Rules Set configuration
IncludeOptional modsecurity.d/*.conf
IncludeOptional modsecurity.d/activated_rules/*.conf
# Default recommended configuration
SecRuleEngine On
SecRequestBodyAccess On
SecRule REQUEST_HEADERS:Content-Type "text/xml" \
"id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecRequestBodyInMemoryLimit 131072
SecRequestBodyLimitAction Reject
SecRule REQBODY_ERROR "!@eq 0" \
"id:'200001', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}',severity:2"
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"id:'200002',phase:2,t:none,log,deny,status:44,msg:'Multipart request body \
failed strict validation: \
PE %{REQBODY_PROCESSOR_ERROR}, \
BQ %{MULTIPART_BOUNDARY_QUOTED}, \
BW %{MULTIPART_BOUNDARY_WHITESPACE}, \
DB %{MULTIPART_DATA_BEFORE}, \
DA %{MULTIPART_DATA_AFTER}, \
HF %{MULTIPART_HEADER_FOLDING}, \
LF %{MULTIPART_LF_LINE}, \
SM %{MULTIPART_MISSING_SEMICOLON}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IP %{MULTIPART_INVALID_PART}, \
IH %{MULTIPART_INVALID_HEADER_FOLDING}, \
FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" \
"id:'200003',phase:2,t:none,log,deny,status:44,msg:'Multipart parser detected a possible unmatched boundary.'"
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000
SecRule TX:/^MSC_/ "!@streq 0" \
"id:'200004',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"
SecResponseBodyAccess Off
SecDebugLog /var/log/httpd/modsec_debug.log
SecDebugLogLevel 0
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
SecAuditLog /var/log/httpd/modsec_audit.log
SecArgumentSeparator &
SecCookieFormat 0
SecTmpDir /var/lib/mod_security
SecDataDir /var/lib/mod_security
</IfModule>
test du module
- Saisir
OR 1=1dans un champ de recherche - Ajouter
<script>xss</script>à la fin de l'url - Ajouter
/../../etc/passwdà la fin de l'url
Désactivation pour un site particulier
On peut soit désactiver un ou plusieurs rôles avec la ligne SecRuleRemoveById ou l'intégralité des règles avec la ligne SecRuleEngine Off
<LocationMatch "/wiki/.*">
<IfModule mod_security2.c>
#SecRuleRemoveById 981173
SecRuleEngine Off
</IfModule>
</LocationMatch>
