Difference between revisions of "ApacheSetup"

From Cncz
Jump to navigation Jump to search
(spatie)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
=== Apache Setup ===
 
=== Apache Setup ===
 
+
 
[nl]
 
[nl]
 
Om de beveiliging van websites te verbeteren zijn we over gegaan op een nieuwe opzet voor onze webservers. Tot voor kort was het gebruikelijk om op een webserver één apache httpd te draaien die middels apache 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 de beveiliging van websites te verbeteren zijn we over gegaan op een nieuwe opzet voor onze webservers. Tot voor kort was het gebruikelijk om op een webserver één apache httpd te draaien die middels apache 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.
Line 23: Line 23:
 
* '''/var/www1/website/test/htdocs'''
 
* '''/var/www1/website/test/htdocs'''
 
De document root voor een test versie van de website, om bijvoorbeeld een nieuwe versie van de website uit te proberen voordat deze ''live''
 
De document root voor een test versie van de website, om bijvoorbeeld een nieuwe versie van de website uit te proberen voordat deze ''live''
gaat. Deze test-versie is bereikbaar via poort 82, d.w.z. gebruik als URL: http://www.website.science.ru.nl:82/
+
gaat. Deze test-versie is bereikbaar via poort 82, d.w.z. gebruik als URL: http://website.science.ru.nl:82/
en poort 4432 voor https, d.w.z. gebruik als URL: http://www.website.science.ru.nl:4432/ (merk op dat de echte site gebruik maakt van poort
+
en poort 4432 voor https, d.w.z. gebruik als URL: http://website.science.ru.nl:4432/ (merk op dat de echte site gebruik maakt van poort
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de live/htdocs directory.
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de live/htdocs directory.
 
* '''/var/www1/website/live/logs'''
 
* '''/var/www1/website/live/logs'''
Line 47: Line 47:
 
The document root for the website. The standard situation for the web-docs directory is that it is readable and writable by the unix group which only contains the users maintaining the website. Next to these users, only the user that runs the website-specific httpd can only read (not write) the files.
 
The document root for the website. The standard situation for the web-docs directory is that it is readable and writable by the unix group which only contains the users maintaining the website. Next to these users, only the user that runs the website-specific httpd can only read (not write) the files.
 
* '''/var/www1/website/test/htdocs'''
 
* '''/var/www1/website/test/htdocs'''
The document root for a test version of the website, e.g. to test a new version of the website before it goes ''live''. This test-version is available via port 82, use as URL: http://www.website.science.ru.nl:82/
+
The document root for a test version of the website, e.g. to test a new version of the website before it goes ''live''. This test-version is available via port 82, use as URL: http://website.science.ru.nl:82/
and port 4432 for https, use as URL: http://www.website.science.ru.nl:4432/ (note that the real site uses port
+
and port 4432 for https, use as URL: http://website.science.ru.nl:4432/ (note that the real site uses port
 
80 for http and port 443 for https). Readable and writable by the same users that can read and/or write the htdocs directory.
 
80 for http and port 443 for https). Readable and writable by the same users that can read and/or write the htdocs directory.
 
* '''/var/www1/website/live/logs'''
 
* '''/var/www1/website/live/logs'''
Line 72: Line 72:
  
 
[nl]
 
[nl]
Aankoppelen gaat (onder Windows) via \\www.website.science.ru.nl\wwwwebsite, van buiten de campus kan dat alleen met gebruik van [[vpn]] of nog sneller en eenvoudiger met WinSCP naar lilo.science.ru.nl in de directory /www/website.  
+
Aankoppelen gaat (onder Windows) via \\website.science.ru.nl\wwwwebsite, van buiten de campus kan dat alleen met gebruik van [[vpn]] of nog sneller en eenvoudiger met WinSCP naar lilo.science.ru.nl in de directory /www/website.  
 
[/nl]
 
[/nl]
 
[en]
 
[en]
The network drive (for Windows) is \\www.website.science.ru.nl\wwwwebsite, for off-campus usage this can only be done through [[vpn]] or easier and faster with WinSCP to lilo.science.ru.nl in the directory /www/website.
+
The network drive (for Windows) is \\website.science.ru.nl\wwwwebsite, for off-campus usage this can only be done through [[vpn]] or easier and faster with WinSCP to lilo.science.ru.nl in the directory /www/website.
 
[/en]
 
[/en]

Latest revision as of 11:01, 23 September 2019

Apache Setup

Om de beveiliging van websites te verbeteren zijn we over gegaan op een nieuwe opzet voor onze webservers. Tot voor kort was het gebruikelijk om op een webserver één apache httpd te draaien die middels apache 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.

De nieuwe opzet waarvoor gekozen is, heeft deze nadelen niet. 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 htdocs directory niet langer leesbaar hoeven te zijn voor iedere gebruiker op de webserver. 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/www1/website

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

  • /var/www1/website/live/htdocs

De document root voor de website. De standaard situatie voor de htdocs 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/www1/website/test/htdocs

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

  • /var/www1/website/live/logs

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

  • /var/www1/website/test/logs

Log-directory voor de test-versie van de website

  • /var/www1/website/live/writable

Bij voorkeur de enige directory waar httpd in mag schrijven, standaard maken wij daar ook een sessions subdirectory in aan die door php als session_save_path directory gebruikt wordt. Als er een schrijfbare directory nodig is in de website, maak die dan bij voorkeur in deze directory aan.

  • /var/www1/website/live/cgi-bin

De cgi-bin directory voor de website.

  • /var/www1/website/test/cgi-bin

En natuurlijk een voor de test-versie.

Vermijd het gebruik van absolute paden in webpagina's, een website zou altijd verplaatst moeten kunnen worden zonder dat daarvoor de pagina's aangepast hoeven te worden!

Aankoppelen gaat (onder Windows) via \\website.science.ru.nl\wwwwebsite, van buiten de campus kan dat alleen met gebruik van vpn of nog sneller en eenvoudiger met WinSCP naar lilo.science.ru.nl in de directory /www/website.