[2003/Apache] Apache securen dmv NTFS permissions

Pagina: 1
Acties:

  • Thralas
  • Registratie: December 2002
  • Laatst online: 08:46
Om een Windows 2003 (web-)server wat beter te beveiligen ben ik aan de gang gegaan met NTFS permissions. Op de server draait naast Apache 2.0.59 ook PHP/MySQL/MSSQL en enkele client/server applicaties, met bijbehorende data die ik liever niet op straat heb liggen in geval van een exploit in bijv. Apache. Natuurlijk is Apache niet het enige dat beveiligd moet worden, maar op dit moment is dit het zwakste punt qua beveiliging.

Omdat Apache standaard als LocalSystem draait heb ik als eerste een aparte account voor apache gemaakt, en de account uit de groep 'Users' gehaald en vervolgens de serviceinstellingen van Apache gewijzigd zodat het ook daadwerkelijk onder deze login draait. Hierna heb ik aan de hand van deze korte guide de volgende permissions geset:
  • Apache directory en subdirs: read + execute
  • Apache log directory: + write
  • Httproot: read + execute
Vervolgens probeerde ik Apache te starten, wat lukte - ook al heeft de PHP directory geen read + execute. Een korte test met php's system() wees uit dat de volledige hd gewoon leesbaar (systemdisk, en de tweede partitie incl. webroot zelfs beschrijfbaar) was door apache - iets dat niet de bedoeling is!
Na heel wat gegoogle kwam ik erachter dat de group settings van de group 'Users' dit veroorzaken, ook al zit 'apache' niet meer in de Users group, deze group heeft bij properties wél NT AUTHORITY\Authenticated users staan waardoor al de rechten van deze group alsnog van toepassing zijn op 'apache'. Als oplossing heb ik Authenticated Users uit Users gehaald waardoor Apache inderdaad niets meer kon buiten de gegeven permissies. Helaas weigert hij dan ook te starten. RW + execute op windows/system32 en subdirs blijkt niet voldoende.

Om erachter te komen welke permissions dan nog meer nodig zijn heb ik FileMon erbij gepakt met een filter op Apache.exe. Naast enkele DLLs uit system32 (Winsock ;)) die netjes geopend worden zonder fouten na de permissions op system32 zie ik als laatste file i/o (voordat apache onverklaarbaar sluit) dat hij 'C:\' probeert te openen, waarvan apache niet mag lezen of listen volgens de permissions. Geef ik deze wel dan probeert hij hierna C:\Program Files. Zet ik ook hierop de juiste permissions dan is dat de laatste file i/o volgens FileMon (Terwijl Apache hierna o.a. nog config/logs/modules/webroot moet openen, maar inplaats daarvan stopt 'ie er gewoon mee).

Nu is de vraag: Hoe stel ik de permissions voor Apache in zodat het wél draait, maar verder niet de hele schijf leesbaar is (ik zou natuurlijk de directories van een aantal applicaties expliciet kunnen deny'en, maar als het impliciet werkt met expliciete allows zou het véél mooier/beter zijn)

Natuurlijk weet ik dat PHP/Apache ook verder dicht te schroeven valt met safemode/basedir restrictions, maar ik heb liever de NTFS permissions correct; En voor MySQL heb ik geen open_basedir ;)

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Voor het aanpassen van een standaard account tot een service-account met nog minder dan Guest rechten kan ik je de volgende online Video wel aanbevelen :

http://www.microsoft.com/.../sessionh.aspx?videoid=31

Let er wel op dat je op deze manier jezelf een non-standaard en niet-ondersteund besturingssysteem bezorgt ;)

Een andere non-supported hack zou kunnen zijn dat je de IIS_ accounts gaat gebruiken :)

[ Voor 11% gewijzigd door alt-92 op 26-09-2006 22:14 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device