Web server user guide

Tartalomjegyzék:


1. A web szerver


1.1 A web szerver uid-ja


2. Felhasználói weboldalak


2.1 Felhasználói weboldal létrehozása


2.2 Honlapok elérése


2.3 Oldalaid elérésének korlátozása


2.3.1 .htaccess file használata


Jelszófile létrehozása


3. CGI


5. ASP


6. Egyéb


6.1 Ha adatbázist szeretnél elérni


6.2 Könyvtár indexelés


10. Ha problémád van


1. A web szerver

A balun jelenleg a Sun Java Enterprise System 2003Q4 csomag részét képező Sun ONE (Open Net Environment) Web Server SP1 alkalmazás feladata a webes kérések kiszolgálása. A szoftver által támogatott szabványok:

  • HTTP 1.1
  • CGI 1.1
  • PHP 4.3.4
  • Java Servlet 2.3
  • Java Server Pages (továbbiakban JSP) 1.2
  • JDK 1.4.1_03
  • RFC 2518 kompatibilis WebDAV
  • NSAPI filter támogatás (ez a felhasználók szempontjából nem érdekes)
  • HTTP tartalom tömörítés támogatása
  • JNDI (Java Naming and Directory Interface) támogatás
  • JDBC támogatás
  • NSS 3.3.5, NSPR 4.1.5 támogatás


1.1 A web szerver uid-ja

A web szerver a jesws user jogaival fut. Ennek a usernek nincsenek különleges jogai, ezt vegyétek figyelembe a weboldalak megtervezésekor.


2. Felhasználói weboldalak

A felhasználói weboldalak mindig a /home/felhasználóneved/public_html konyvtárban találhatók. Lehetőség van html, php, jsp, cgi, asp oldalak készítésére.


2.1 Felhasználói weboldal létrehozása

Hozz létre a home-odban egy public_html nevu konyvtárat a megfelelő jogosultságokkal (lásd alább), majd eztán helyezz el benne egy index.html nevű file-t (ez utóbbi lehet még: home.html, index.jsp, index.php, index.cgi). Ez lesz a kezdőoldal. A megfelelő parancsok tehát:
balu:~$ cd
balu:~$ mkdir -m 0755 public_html
Ha már létezik akkor ellenőrizd:
balu:~$ ls -ld public_html
drwxr-xr-x 2 user user 512 Apr 10 21:15 public_html
^^^^^^^^^^
Ha nem ilyen:
balu:~$ chmod 0755 ~/public_html
Az index.html file jogosultságai hasonlóképpen:
balu:~$ ls -l public_html/index.html
-rwxr--r-- 1 user user 9 Feb 15 23:37 public_html/index.html
Az eltérés itt is orvosolható:
balu:~$ chmod 0744 ~/public_html/index.html
Persze ezen kívül minden megjeleníteni kívánt file-nak is world readable-nek kell lennie.


2.2 Honlapok elérése

A honlapodat a www.sch.bme.hu/~userneved vagy a home.sch.bme.hu/~userneved illetve a balu.sch.bme.hu/~userneved címen éred el.


2.3.1 .htaccess file használata

Ha az általad kreált weboldalakat csak egyes embereknek, csoportnak szeretnéd elérhetővé tenni, nem pedig mindenkinek, vagy egyeseknek a file-jaid manipulálását pl. törlését, újak feltöltését is engedélyezni akarod, akkor ezt a ~/public_html/.htaccess fileban definiálhatod. Természetesen erre a file-ra is olvasási joggal kell rendelkezzen a jesws user (lásd itt).

A támogatott .htaccess direktívák a következők:

  • allow
  • deny
  • AtuhGroupFile
  • AuthUserFile
  • AuthName
  • AuthType
  • Limit
  • LimitExcept
  • order
  • require
  1. allow

    • Szintakszis:
    • allow from hoszt
      Ahol hoszt lehet:
      • all: minden kliens hoszt
      • teljes ip cím, vagy annak csak egy része pl. 152.66.212. vagy 152.66.208.0/255.255.255.0
    • Hatása:
    • A megadott hosztokról jövő kéréseket engedélyezi.
  2. deny

    • Szintakszis:
    • deny from hoszt
      Ahol hoszt lehet:
      • all: minden kliens hoszt
      • teljes ip cím, vagy annak csak egy része pl. 152.66.212. vagy 152.66.208.0/255.255.255.0
    • Hatása:
    • A megadott hosztokról jövő kéréseket blokkolja.
  3. AuthGroupFile

    • Szintakszis:
    • AuthGroupFile filename
      Ahol a filename névvel jelzett állomány tartalmazza a csoport definíciókat a következő formában:
      csoportnév:felhasználó felhasználó
      Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • Azt a file-t adja meg ami megadja a csoport definíciókat. Ha az adott file és az AuthUserFile által hivatkozott állomány egybeesik, akkor annak formátuma a következő kell legyen:
      felhasználónév:DES-kódolt-jelszó:csoportok-vesszővel-elválasztott-listája
  4. AuthUserFile

    • Szintakszis:
    • AuthUserFile filename
      Ahol a filename névvel jelzett állomány tartalmazza a felhasználó definíciókat a következő formában:
      felhasználónév:DES-kódolt-jelszó
      Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • Azt a file-t adja meg ami megadja a felhasználó definíciókat. Ha az adott file és az AuthGroupFile által hivatkozott állomány egybeesik, akkor annak formátuma a következő kell legyen:
      felhasználónév:DES-kódolt-jelszó:csoportok-vesszővel-elválasztott-listája
  5. AuthName

    • Szintakszis:
    • AuthName authentication_realm
      Az authentication_realm egy string ami a felhasználói azonosításhoz tartozó "tartományt" írja le. Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • A megadott string tipikusan azonosításkor jelenik meg a kliens oldalon. Hatással lehet a felhasználónév, jelszó kliens oldali eltárolására is.
  6. AuthType

    • Szintakszis:
    • AuthType basic
      Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • Az autentikációs módot írja le. Jelenleg a basic az egyetlen támogatott mód.
  7. <Limit>

    • Szintakszis:
    • <Limit parancs parancs ...>
      allow, deny, order, vagy require direktívák
      </Limit>

      Ahol a parancsok a HTTP parancsok közül kerülnek ki, mint pl. GET, POST, PUT. Minden a webserver által értelmezett parancs használható.
    • Hatása:
    • A közrefogott direktívákat a megfelelő parancsokra értelmezi.
  8. <LimitExcept>

    • Szintakszis:
    • <LimitExcept parancs parancs ...>
      allow, deny, order, vagy require direktívák
      </LimitExcept>

      Ahol a parancsok a HTTP parancsok közül kerülnek ki, mint pl. GET, POST, PUT. Minden a webserver által értelmezett parancs használható.
    • Hatása:
    • A közrefogott direktívákat a felsorolásban nem szereplő parancsokra értelmezi.
  9. order

    • Szintakszis:
      • order allow,deny

      • order deny,allow

      • order mutual-failure
      Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • A megadott sorrendben értékeli ki az allow, illetve deny direktívákat. A mutual-failure blokkolja azon hostok számára a parancs vágrehajtását, amelyek mindkét (allow vagy deny) felsorolásban szerepelnek. Figyelem: az egyes hosztokra értelmezett döntés a kiértékelés sorrendjében maszkolódik!
  10. require

    • Szintakszis:
      • require group csoportnév

      • require user felhasználónév

      • require valid-user
      Nem szükséges <Limit> vagy <LimitExcept> tagek közé tenni.
    • Hatása:
    • Az első esetben azt írhatjuk elő, hogy a felhasználó egy adott csoport tagja legyen. A második esetben konkrét felhasználót írhatunk elő. A harmadik esetben csak azt követeljük meg, hogy a felhasználó szerepeljen az általunk definiált AuthUserFile állományban.


Jelszófile létrehozása

A fentiekben tárgyalt AuthUserFile direktívával definiált file belső szerkezetéről már tettem említést. A helyes fileformátum fenntartása érdekében ajánlom a htpasswd parancs használatát, aminek segítségével játszi könnyedséggel hozhatsz létre ilyen filet, illetve bővítheted a már meglevőt.


CGI

A web szerver eléggé kényes a cgi futtatásakor. Mindenképpen figyelj arra, hogy a cgi file első sorában definiáld a Content-Type: taget (pl. Content-Type: text/html) és utána mindenképpen irass ki legalább egy üres sort!
Perl esetén például, ha a fejlesztés során bekapcsoltad a warning opciót, azaz a cgi forrás első sora: #!/usr/bin/cgi -w akkor azt a biztonság kedvéért írd át: #!/usr/bin/perl-re. A web szerver ugyanis nem fogja lefuttatni az olyan scriptet ami fordítás közben warningokat generál!


Servletek, jsp file-ok telepítése


ASP

Asp weblapokat úgy jeleníthetsz meg, ha egyszerűen asp kiterjesztéssel látod el őket.
Néhány hasznos adat arról, hogy a web szerver milyen oldalakat támogat:

  • ASP 3.0
  • VBScript and JScript 5.5
A web szerver természetesen a saját Asp, VBScript, JavaScript implementációit alkalmazza, ezért vannak eltérések a MS-ASP-hez, MS-VBScripthez és MS-JScripthez viszonytva. Ezekről itt tájékozódhatsz.


Ha adatbázist szeretnél elérni

A balun sajnos nincs lehetőséged adatbázis közvetlen elérésére. Azonban a KSZK adatbázis szerver üzembehelyezését tervezi a közejövőben.


Könyvtár indexelés

A web szerver általi könyvtár indexelésre is van lehetőség amennyiben egy könyvtárban nem helyezel el index.html file-t. Ekkor a web szerver az adott könyvtár tartalmát fogja kilistázni.


Ha problémád van

Ha úgy érzed, hogy segítségre van szükséged, akkor írj nekem levelet a sisi_pont_sch_pont_bme_pont_hu címre. Nagyon nagy probléma esetén a 414-es szobában vagyok telefonon megtalálható.