ModSecurity er et sikkerhetsrammeverk som beskytter våre kunders webhotell mot angrep.
Generell informasjon
ModSecurity er et filter i webserveren som analyserer trafikk og hindrer en rekke typer vanlige angrep mot websider.
Dette filteret er vanlig på webservere, og medfører normalt ikke problemer for legitim bruk.
Noen få typer legitim bruk kan dessverre ha store likheter med skadelig trafikk, og det kan da medføre at ModSecurity hindrer denne typen trafikk.
Hvis du får feilmeldinger som nevner ModSecurity på ditt webhotell, så kan det skyldes usikker programvare.
Seriøse programvareleverandører som gjør ting på tvers av hva ModSecurity normalt tillater, tilbyr som regel informasjon om hvordan du forholder deg til ModSecurity og hva du kan gjøre med det. Sjekk leverandørens forum hvis du er i tvil.
Teknisk informasjon
Vi bruker ModSecurity slik Debian stable serverer den, med Core Rules i tillegg.
Se gjerne referansedokumentasjonen for ModSecurity for mer informasjon.
I vår konfigurasjon har vi følgende begrensninger:
# PCRE-grenser
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000
# Filopplasting
SecUploadFileLimit 10
# Maksimal størrelse på innkommende data
# 128 MiB
SecRequestBodyLimit 134217728
# Maksimal størrelse på innkommende data som ikke er i form av fil
# 1,2 MiB
SecRequestBodyNoFilesLimit 1310720
# Maksimal minnebruk for innkommende data
SecRequestBodyInMemoryLimit 134217728
# Buffer-lengde for utgående data
# 128 MiB in length
SecResponseBodyLimit 134217728
# Restriksjoner på feil i forespørsel
SecRule REQBODY_PROCESSOR_ERROR "!@eq 0" \
"phase:2,t:none,log,deny,msg:'Failed to parse request body.',severity:2"
# Restriksjoner på multipart/form-data
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"phase:2,t:none,log,deny,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_SEMICOLON_MISSING}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IH %{MULTIPART_INVALID_HEADER_FOLDING}, \
IH %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
Feil ved filopplasting (f.eks. bilder)
I noen tilfeller får man feilmelding om "request entity too large" selv ved filer på noen få MB. Årsaken til dette kan være feilprogrammert opplasting, som gjør at man støter på grensen "SecRequestBodyNoFilesLimit".
Kode som laster opp filer skal bruke Content-Type: multipart/form-data
, ikke Content-Type: application/x-www-form-urlencoded
.
Denne grensen kan man altså støte på på når du sender inn store mengder data på en måte som er tiltenkt tekstskjema.
Mer info: