ApacheSetup

From Cncz
Revision as of 07:45, 9 May 2008 by Polman (talk | contribs)
Jump to: navigation, search

Apache Setup

Om de beveiliging van websites te verbeteren gaan we over op een nieuwe opzet voor onze webservers. Tot voor kort was het gebruikelijk om op een webserver één apache httpd te draaien die middels virtual hosts meerdere websites afhandelt. Dat heeft een groot voordeel, alle websites delen de beschikbare pool van httpd processen, maar ook meerdere (grote) nadelen met name wat betreft de onderlinge beveiliging tussen de websites en gemeenschappelijke log files.

Om aan deze nadelen tegemoet te komen is er op de nieuwe web server athos voor een andere opzet gekozen. In plaats van virtual hosts files die door één apache server worden afgehandeld gebruiken we nu per website een eigen httpd met een aparte user per website. Dat heeft tot gevolg dat de bestanden in de web-docs directory niet langer leesbaar hoeven te zijn voor iedereen. Bovendien gaat iedere website nu op een eigen ip-adres draaien wat tot gevolg heeft dat iedere website die https nodig heeft zijn eigen SSL-certificaat kan krijgen.

De directory structuur ziet er als volgt uit (we gebruiken hier website als voorbeeld naam):

  • /var/www/www1/website

top directory waarbinnen alle bestanden m.b.t. deze website zich bevinden

    • /var/www/www1/website/web-docs

De document root voor de website. De standaard situatie voor de web-docs directory wordt lees en schrijfbaar voor de unix group met daarin alleen de users die de website beheren. Daarnaast heeft de user waaronder de website specifieke httpd draait alleen leesrechten.

    • /var/www/www1/website/test-docs

De document root voor een test versie van de website, om bijvoorbeeld een nieuwe versie van je website uit te proberen voordat deze life gaat. Deze test versie is bereikbaar via poort 8080, d.w.z. gebruik als URL: http://www.website.science.ru.nl:8080/ en poort 4443 voor https, d.w.z. gebruik al URL: http://www.website.science.ru.nl:4443/ (merk op dat de echte site gebruik maakt van poort 80 voor http en poort 443 voor https). Lees en schrijfrechten gelijk aan de web-docs directory.

    • /var/www/www1/website/httpd/logs

De directory waarin de log bestanden van httpd voor deze website terechtkomen met als belangrijkste access_log en error_log. Merk op dat wij er sterk op aandringen dat beheerders zelf controleren wat er in met name error_log terecht komt en daar op actie ondernemen om de error_log zoveel mogelijk leeg te houden.

    • /var/www/www1/website/httpd-test/logs

Log directory voor de test versie van de website

    • /var/www/www1/website/

Bij voorkeur de enige directory waar httpd in mag schrijven, standaard maken wij daarin ook een sessions subdirectory in aan die door php als session_save_path directory gebruikt wordt.