Webové servery
Informace o webových serverech user.fit.cvut.cz a webdev.fit.cvut.cz, které umožňují publikovat uživatelský obsah v síti internet.

Služby počítačové sítě

Server users.fit.cvut.cz

Publikace veškerého obsahu se provádí přes servery fray{1,3}.fit.cvut.cz a z učeben, které sdílí domovské adresáře s výše jmenovanými servery. Obsah, který má být publikován, se umísťuje do adresáře: /home/www/users/$USER

Na tento adresář by měl ve vašem domovském adresáři existovat symbolický link www_users. Pokud neexistuje, vytvořte ho ručně:

username@fray ~ $ ln -s /home/www/users/$USER ~/www_users

Adresář je vytvořen automaticky při vzniku uživatele a nastaven tak, aby do něj webserver měl přístup. Práva ani ACL na tento adresář nikdy neměňte. Vlastníkem tohoto adresáře, podadresářů a souborů v nich je vždy uživatel (a jeho primární skupina). Práva pro podadresáře a soubory můžete měnit. Pokud mají být přístupné pro webserver jako:

  • statický obsah (statické HTML stránky, obrázky apod) - others musí mít právo čtení a případně vykonání (adresář),
  • dynamický obsah (PHP) - vlastník musí mít právo číst (PHP) a případně spouštět (adresář), skupina a ostatní nesmějí mít právo zápisu.

Webserver

Webserver je Apache httpd.

  • metody HTTP: povoleny pouze GET, POST a OPTIONS
  • indexový soubor: index.php index.html (v tomto pořadí)
  • Povoleno je:
    • vypsání obsahu adresáře, pokud neexistuje indexový soubor,
    • symbolické linky, pokud je vlastník cílového souboru shodný s vlastníkem symbolického linku,
    • SSI bez možnosti vykonávat externí příkazy,
    • MultiViews.

.htaccess

Uživatelům je povoleno pomocí .htaccess souborů souborů provádět drobné úpravy konfigurace. Je možné používat direktivy typů FileInfo AuthConfig Limit Indexes (podrobnosti vizte na http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride). Lze aktivovat přepisování URL, autentizaci a autorizaci (třeba proti školnímu LDAPu) a celou řadu dalších.

Pozor! Pokud do .htaccess souborů bude zapisovat direktivy vyžadující cestu k nějakému souboru na filesystému, musíte použít absolutní cestu (relativní je vztažena k SERVER_ROOT a tím se dostanete zcela mimo uživatelské webové adresáře). Absolutní cesta musí vždy začínat /var/www/users/VAS_LOGIN/. Poté již následuje zbytek cesty podle potřeby.

AuthType basic
AuthBasicProvider file
AuthUserFile /var/www/users/vranyj1/data/protected/.htpasswd
Require valid-user

Je možné pro autentizaci použít i fakultní LDAP server jako v následující ukázce. Zároveň je možné autentizační moduly řetězit:

AuthType basic
AuthName "LDAP (faculty password)"
AuthBasicProvider ldap file
AuthLDAPUrl "ldaps://ldap.fit.cvut.cz/ou=People,o=fit.cvut.cz?uid"
AuthUserFile /var/www/users/kadleto2/ldap/.htpasswd
Require valid-user

PHP

Na serveru je možné provozovat aplikace napsané v jazyce PHP, aktuálně instalovaná verze je 5.3.3. Aplikace běží pod identitou uživatele. Pro spuštění musí být splněny následující podmínky:

  • soubory a adresáře vlastní uživatel a skupina,
  • práva skupiny a ostatních jsou nejvýše číst a vykonat.

Další omezení a nastavení jsou:

  • nejsou povoleny short tags ani ASP tags,
  • nesmí používat celou řadu funkcí (vizte nastavení disable_functions ve výstupu phpinfo()),
  • nesmí přistupovat do jiných adresářů než adresář uživatele, /tmp a /usr/share/php5,
  • output-buffering je ve výchozím nastavení vypnut (lze zapnout za běhu),
  • oddělovač argumentů pro vstup i výstup je vždy &,
  • volba register_globals (registrace proměnných prostředí z GET, POST, COOKIE atd. jako globálních proměnných) je z bezpečnostních důvodů vypnuta,
  • volba register_long_arrays volba register_long_arrays (registrace starých polí HTTP_nazev_VARS, místo nich se používají _nazev) je z výkonnostních důvodů vypnuta,
  • volba register_argc_argv (registrace proměnných argc a argv pro metodu HTTP GET) je z bezpečnostních důvodů vypnuta,
  • automatické načítání rozšíření za běhu funkcí dl je zakázáno,
  • vzdálené dokumenty (protokoly http, ftp) lze používat jako soubory, nelze je ale vložit pomocí include, require atp.