Avatar billede it-interesseret Nybegynder
24. juli 2008 - 09:30 Der er 7 kommentarer og
2 løsninger

Højere sikkerhed med Apache 2.2 og PHP5 på en Win 2003 server?

Hej alle

Jeg håber, at nogle vil vurdere min opsætning af Apache 2.2 og PHP 5 på en Windows 2003 server.

Min dedikerede server blev tidligere hen hacket, idet jeg havde en hjemmeside, som havde et dårligt programmeret php-script, som en hacker-bot udnyttede til at uploade en dll fil, som den kunne køre, og derved opnåede adgang til min server ved at oprette en bruger, som kunne køre med Remote Desktop. Men faktisk fandt den også samtidigt ud af bevæge sig ned i roden af vores web-mappe (måske gjorde den det, før den kørte dll-filen) og gå op i de andre hjemmesider, som også fik et stempel af at være hacker. Altså hackeren opnåede både at have en windows bruger konto samt have stemplet alle sites som være hacket.

Der efter fik jeg øjne op for, at Apache kræver mere i sin sikkerheds-indstillinger end IIS'en gør (som jeg tidligere hen har anvendt meget). Jeg håber I vil komme med lidt feedback på, om min sikkerhed nu er god nok med Apache:

1) I Apache kører jeg nu med safe_mode (selvom det ikke giver så meget, har jeg forstået) ... korrekt?

2) Jeg har også indsat open_basedir i vhost-filerne, som burde låse en evt. indtrængende hacker til den web-mappe, som det måtte være lykkedes at få hacket via en svaghed i php-programmeringen. Jeg mener ikke, at hackeren derfra kan gå ned i roden af web-mappen (og derefter fortsætte op i de andre sites). Er det korrekt?

3) Jeg kører også med at hver site har sin egen upload og cookie mappe. Det giver vel også højere sikkerhed - korrekt?

Min Vhost i Apache:

<VirtualHost *:80>
    DocumentRoot D:/Web/SiteEt
    ServerName www.xxxxxxxxxx.dk
    ServerAdmin webmaster@xxxxxxxxxx.dk
    ServerAlias xxxxxxxxxx.dk

    ErrorLog D:/Web/SiteEt/errorsapache.txt

    php_admin_value safe_mode 1
    php_admin_value open_basedir "D:/Web/SiteEt"
    php_admin_value session.save_path "D:/Web/SiteEt/tempcookies/"
    php_admin_value upload_tmp_dir "D:/Web/SiteEt/tempupload/"
    <Directory D:/Web/SiteEt/tempupload>
    Order Deny,Allow
    Deny from all
    Options None
    AllowOverride None
      </Directory>
    <Directory D:/Web/SiteEt/tempcookies>
    Order Deny,Allow
    Deny from all
    Options None
    AllowOverride None
      </Directory>
    <Directory D:/Web/SiteEt>   
      AllowOverride All

    Order Allow,Deny
    Allow from all
      <IfModule dir_module>
          DirectoryIndex index.php index.html index.htm
      </IfModule>
    </Directory>   
</VirtualHost>

4) Apache 2.2 servicen kører med Local System kontoen (altså jeg har ikke gjort noget siden installation af Apache). Jeg behøver vel ikke at give den en seperat bruger konto vel? Ovenstående sikkerhed burde være god nok - korrekt?


5) I PHP.ini har jeg frakoblet diverse funktioner:
disable_functions=dl,exec,passthru,shell_exec,system,pcntl_exec,popen,escapeshellcmd

6) Og Path har jeg sat til:
path=" ";
Jeg ved dog ikke, hvad det præcist gør. Har blot efterabet nogle andre php-indstillinger, som jeg læste på Internet et eller andet sted. Så hvad gør path=" " ?

7) Er der ellers andet, som jeg bør tænke over? (Jeg har ikke ændret på andet i PHP.ini end punkt 5 og 6). Jeg er ikke interesseret i totalt overkill sikkerhed, blot almindelig god sikkerhed til en almindelige dedikeret server med omkring 20 hjemmesider på sig.

På forhånd mange tak for feedbacken :-)
Avatar billede showsource Seniormester
24. juli 2008 - 11:54 #1
Du skal ikke gemme data så de kan tilgås via web:

domain.dk/tempcookies/

Opret hellere et dir før domain's DocumentRoot, og brug det som tmp dir for div.

Skal det køre på win?

Ubuntu's LAMP, er ret nem at gå i gang med.
http://www.ubuntu.com/products/WhatIsUbuntu/serveredition
Avatar billede it-interesseret Nybegynder
24. juli 2008 - 12:07 #2
Ja, det er på en win server.

Ok tak for rådet. jeg flytter nu mine to temp-mapper væk fra web-mapperne.

Men hvad med de andre spg. kan du nakke dem også?
Avatar billede showsource Seniormester
24. juli 2008 - 12:17 #3
"path" ved jeg ikke hvad du mener med?

Sikkerheden på din win er jo nok mere afgørende end sikkerhed i Apache.


Jeg ville lade første vhost være din ip-adresse.
Og så blot bruge den til at vise hvilke domains som er hostet.
( Min erfaring at google ret hurtigt finder dem ? )

Og, hvis en "ip-spammer" kommer forbi, er det ikke umiddelbart en eller anden stor index som requestes
Avatar billede showsource Seniormester
01. august 2008 - 20:11 #5
Avatar billede arne_v Ekspert
31. august 2008 - 02:35 #6
it-interesseret ?
Avatar billede it-interesseret Nybegynder
14. september 2008 - 10:40 #7
Beklager det sene svar.

Takker for hjælpen :-)

Tryk svar alle.
Avatar billede arne_v Ekspert
14. september 2008 - 10:50 #8
svar
Avatar billede showsource Seniormester
14. september 2008 - 21:16 #9
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester