
Apache-alap WebDAV szerver, LDAP s SSL szolgltatsokkalSaqib Ali

               saqib@seagate.com
     Offshore XML/XHTML Development

   Verzitrtnet
   Verzi: v4.1.2 2003.10.17 tdolgozta: sa
   Hozzadva az SSL teljestmnybelltsi fejezet
   Verzi: v4.1.1 2003.09.29 tdolgozta: sa
   Frisstsek az SSL rszben, az olvasi visszajelzsekre alapozva.
   Verzi: v4.1.0 2003.09.02 tdolgozta: sa
   Frisstsek az SSL rszben, az olvasi visszajelzsekre alapozva.
   Verzi: v4.0.2 2003.08.01 tdolgozta: sa
   Kisebb frisstsek az Apache-ot bellt parancssorban. /dev/random
   hivatkozs az SSL rszben.
   Verzi: v4.0.1 2003.07.27 tdolgozta: sa
   Az SSL fejezet tovbbi informcival bvtve.
   Verzi: v4.0   2002.06.29 tdolgozta: sa
   Frisstve a HOGYAN Apache 2.0.-ra. A doksi forrskdja XML formtum.
   Verzi: v3.4   2002.06.29 tdolgozta: sa
   Hozzadva a "Hogyan generljunk CSR-t" fejezet.
   Verzi: v3.3   2002.04.14 tdolgozta: sa
   Hozzadva a "WebDAV szerver zemeltetse" fejezet.

   Ez a HOGYAN egy Apache-alap WebDAV szerver teleptst rja le,
   LDAP-al az azonostshoz, s SSL-el a titkostshoz.
     _________________________________________________________________

   Tartalomjegyzk
   1. [1]Bevezets

        1.1. [2]Errl a dokumentumrl
        1.2. [3]Kzremkdk
        1.3. [4]Mi az Apache?
        1.4. [5]Mi a WebDAV?
        1.5. [6]Mi a PHP?
        1.6. [7]Mi a MySQL?
        1.7. [8]Mire van szksgnk?
        1.8. [9]Felttelezsek
        1.9. [10]Magyar fordts

   2. [11]Kvetelmnyek

        2.1. [12]Alapok
        2.2. [13]Apache 2.0.46
        2.3. [14]OpenSSL
        2.4. [15]iPlanet LDAP programknyvtr
        2.5. [16]mod_auth_ldap
        2.6. [17]MySQL adatbzismotor
        2.7. [18]PHP

   3. [19]Telepts

        3.1. [20]Teleptsi felttelek
        3.2. [21]MySQL
        3.3. [22]Apache 2.0
        3.4. [23]mod_auth_ldap
        3.5. [24]Tanstvny adatbzis az LDAPS:// rszre
        3.6. [25]PHP

   4. [26]A WebDAV szolgltatsok teleptse s belltsa

        4.1. [27]Mdostsok az /usr/local/apache/conf/httpd.conf fjlban
        4.2. [28]Egy DAVLockDB knyvtr ltrehozsa
        4.3. [29]A DAV engedlyezse
        4.4. [30]Egy "DAVtest" nev knyvtr ltrehozsa
        4.5. [31]Az Apache jraindtsa
        4.6. [32]A WebDAV protokoll tesztelse

   5. [33]A WebDAV szerver zemeltetse

        5.1. [34]A DAV megosztott hozzfrsnek korltozsa
        5.2. [35]rs jog korltozsa DAV megoszts alatt

   6. [36]Az SSL megvalstsa s hasznlata a HTTP forgalom
          biztonsgoss ttelre

        6.1. [37]Az SSL bemutatsa
        6.2. [38]Teszt tanstvnyok
        6.3. [39]Tanstvnyok "zemi" hasznlatra
        6.4. [40]Hogyan generlhatsz a CSR-t?
        6.5. [41]A szerver titkos kulcsnak s tanstvnynak teleptse
        6.6. [42]A jelmondat (passphrase) eltvoltsa az RSA titkos
                kulcsbl

        6.7. [43]SSL teljestmnybellts

   A. [44]HTTP/HTTPS teljestmnybellt programok
   B. [45]Hardveres SSL titkostsi megoldsok
   C. [46]Megbzott tanstvny hatsgok (Trusted Certificate
          Authorities)

   [47]A nyilvnos kulcs titkostssal kapcsolatos szavak gyjtemnye

1. Bevezets

Jelen dokumentum clja, hogy felptsnk egy Apache + MySQL + PHP + WebDAV
-alap webes alkalmazsszervert, amely LDAP szerverek hasznlatval vgzi az
azonostst (authentication). A dokumentum felfedi a titkostott LDAP
tranzakcikezels egyes rszleteit is.

   Megjegyzs Megjegyzs:


   Ha brmilyen problmval tallkozol az Apache vagy valamely modul
   teleptsnl, lpj kapcsolatba velem a <[48]saqib@seagate.com> e-mail
   cmen.
     _________________________________________________________________

1.1. Errl a dokumentumrl

Ez a dokumentum eredetileg 2001-ben kszlt. Azta szmos frissts s
bvts trtnt. Ksznet minden kzremkdnek a frisstsekrt s
javtsokrt.

Eme dokumentum XML kdja megtallhat a
[49]http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWT
O.xml webhelyen.

A dokumentum utols vltozata a
[50]http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWT
O.html honlapon tallhat.
     _________________________________________________________________

1.2. Kzremkdk

Ha szeretnl kzremkdni a HOGYAN karbantartsban, letltheted az XML
kdot a
[51]http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWT
O.xml webhelyrl, s elkldheted a frisstett kdot a saqib@seagate.com
e-mail cmre A SZERZK LISTJBAN S A VLTOZSOK TRTNETBEN A TE
NEVEDDEL :). Ez megknnyti szmomra a kapcsolatfelvtelt mindazokkal akik
frisstettk/javtottk a dokumentumot. Ksznm.
     _________________________________________________________________

1.3. Mi az Apache?

Az Apache egy nylt forrskd http szerver modern opercis rendszerekre,
amilyen a UNIX s a Windows NT. Http szolgltatsokat nyjt a jelenlegi HTTP
szabvnyoknak megfelelen.

Az Apache szabadon/ingyenesen letlthet a [52]http://httpd.apache.org/
webhelyrl.
     _________________________________________________________________

1.4. Mi a WebDAV?

A WebDAV egy Web enabled Distributed Authoring and Versioning, vagyis Web
alap Elosztott Szerzi s Vltozatnyilvntart rendszer. Egyttmkdsi
krnyezetet biztost azoknak a felhasznlknak, akik
szerkesztik/karbantartjk egy webszerver fjljait. Technikailag a DAV a http
protokoll kiterjesztse.

me egy rvid lers a DAV ltal biztostott bvtsekrl:

Fellrsi vdelem: Zrolsi s feloldsi mechanizmus az "elveszett
frissts" problma kikszblsre. A DAV protokoll mind a megosztott, mind
a kizrlagos zrolsokat tmogatja.

Tulajdonsgok: Meta-adatok (cm, trgy, kszt, stb.)

Nevek karbantartsa: Fjlok msolsa, tnevezse, mozgatsa s trlse.

Hozzfrs-szablyozs (Access Control; AC): A hozzfrs korltozsa
bizonyos erforrsokhoz. Jelenleg a DAV felttelezi az AC megltt, s nem
biztost tl ers azonostsi mechanizmust.

Vltozatnyilvntarts: Dokumentumok revzijnak nyilvntartsa. Mg nem
megvalstott.
     _________________________________________________________________

1.5. Mi a PHP?

A PHP (rekurzv betsz "PHP: Hypertext Preprocessor"; "PHP: Hiperszveg
Elfeldolgoz") szleskren hasznlt, nyl forrskd, ltalnos cl
szkript-nyelv, amely klnsen Web-es fejlesztseknl alkalmazhat s
begyazhat a HTML-be.

A PHP megtallhat a [53]http://www.php.net webhelyen.
     _________________________________________________________________

1.6. Mi a MySQL?

A MySQL a legnpszerbb nylt forrskd SQL adatbzis-kezel, a MySQL AB
fejleszti, terjeszti s tmogatja.

A MySQL adatbzismotor letlthet a [54]http://www.MySQL.com/ webhelyrl.
     _________________________________________________________________

1.7. Mire van szksgnk?

A cl elrshez szksges eszkzk:

    i. C Compiler, pldul GCC
   ii. Apache 2 Web szerver
   iii. LDAP Module az Apache-hoz
   iv. iPlanet LDAP lib fjlok
    v. SSL motor
   vi. PHP
   vii. MySQL adatbzismotor

   Megjegyzs Megjegyzs:


   Mindezen csomagok szabadon hozzfrhetk s letlthetk a Net-rl.
     _________________________________________________________________

1.8. Felttelezsek

A dokumentum felttelezi, hogy a kvetkezk mr teleptve vannak a
rendszereden:

    i. gzip vagy gunzip - megtallhat a [55]http://www.gnu.org webhelyen
   ii. gcc s GNU make - megtallhat a [56]http://www.gnu.org webhelyen
     _________________________________________________________________

1.9. Magyar fordts

A magyar fordtst [57]Kilin Magdolna ksztette (2003.03.28). A
lektorlst [58]Szijjrt Lszl vgezte el (2003.07.09). Utoljra [59]Daczi
(dacas) Lszl frisstette (2003.12.10). A dokumentum legfrissebb vltozata
megtallhat a [60]Magyar Linux Dokumentcis Projekt honlapjn.
     _________________________________________________________________

2. Kvetelmnyek

Le kell tltened s fordtanod (compile) nhny csomagot. Ez a HOGYAN
elmagyarzza a fordtsi folyamatot, de tudnod kell forrskdbl telepteni.
     _________________________________________________________________

2.1. Alapok

Szksged van Solarisra/Linuxra s GNU CC fordtra a gpen. A GNU gnzip s
GNU tar szintn szksges.
     _________________________________________________________________

2.2. Apache 2.0.46

Az Apache egy HTTP szerver, Web-es alkalmazsok kiszolglsra hasznljuk.
Tltsd le az Apache 2.0.46 forrskdot a
[61]http://www.apache.org/dist/httpd/ webhelyrl.
     _________________________________________________________________

2.3. OpenSSL

Tltsd le az OpenSSL csomagot a [62]http://www.openssl.org/source/
webhelyrl. A legutols verzit tltsd le. Az OpenSSL teleptst az SSL
knyvtrak mod_ssl fordtsra hasznljuk Apache-csal, valamint SSL
bizonytvnyok karbantartsra a webszerveren. Tltsd le az OpenSSL
forrskdot gzippelt fjlknt a /tmp/downloads knyvtrba.
     _________________________________________________________________

2.4. iPlanet LDAP programknyvtr

Tltsd le az iPlanet LDAP SDK csomagot a
[63]http://wwws.sun.com/software/download/products/3ec28dbd.html honlaprl.
Az iPlanet LDAP SDK csomagot fogjuk hasznlni, mert ez tartalmazza az
ldaps-hoz szksges programknyvtrakat (LDAP az SSL felett).
     _________________________________________________________________

2.5. mod_auth_ldap

Az mod_auth_ldap csomagot az LDAP tmogats Apache-ba fordtsra fogjuk
hasznlni. Tltsd le a
[64]http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap_apache
2.html honlaprl.
     _________________________________________________________________

2.6. MySQL adatbzismotor

Tltsd le a soron kvetkez MySQL csomagot a
[65]http://www.MySQL.com/downloads/index.html honlaprl.
     _________________________________________________________________

2.7. PHP

Tltsd le a PHP forrskdjt a [66]http://www.php.net/downloads.php
webhelyrl.
     _________________________________________________________________

3. Telepts

Elszr ellenrizd le nhny teleptsi felttel megltt, majd kezdd meg
a teleptst.
     _________________________________________________________________

3.1. Teleptsi felttelek

Az alkalmazsszerver tervnk szerinti teleptshez szksgesek az SSL s
LDAP programknyvtrak. Az SSL motorra is szksge van az Apach 2.x-nek, az
SSL tanstvnyok kezelshez/hasznlathoz.
     _________________________________________________________________

3.1.1. iPlanet LDAP SDK

Jelentkezz be root felhasznlknt, a su parancs hasznlatval:

$ su -

   Hozzd ltre az /usr/local/iplanet-ldap-sdk.5 knyvtrat. Msold az
   ldapcsdk5.08-Linux2.2_x86_glibc_PTH_OPT.OBJ.tar.gz fjlt a
   /tmp/downloads knyvtrbl az /usr/local/iplanet-ldap-sdk.5
   knyvtrba.
# mkdir /usr/local/iplanet-ldap-sdk.5
# cp /tmp/downloads/ldapcsdk5.08-Linux2.2_x86_glibc_PTH_OPT.OBJ.tar /usr/local/
iplanet-ldap-sdk.5
# cd /usr/local/iplanet-ldap-sdk.5
# tar -xvf ldapcsdk5.08-Linux2.2_x86_glibc_PTH_OPT.OBJ.tar

   Most az sszes szksges iPlanet LDAP lib fjlnak a megfelel
   knyvtrban kell lennie.
     _________________________________________________________________

3.1.2. OpenSSL motor

Ezutn az OpenSSL motort kell teleptened.

Az OpenSSL az SSL/TLS protokoll nylt forrskd megvalstsa. Az OpenSSL
szksges az SSL tanstvnyok ltrehozshoz s kezelshez a webszerveren.
A telepts a lib fjlokhoz is szksges, ezeket az SSL modul az Apache
kiszolglsra hasznlja.

Lpj be abba a knyvtrba, ahova az OpenSSL forrskdjnak fjljait tetted.

 # cd /tmp/download
# gzip -d openssl.x.x.tar.gz
# tar -xvf openssl.x.x.tar
# cd openssl.x.x
# make
# make test
# make install

   A make install lefutsa utn az openssl futtathat fjljai az
   /usr/local/ssl knyvtrban lesznek.
     _________________________________________________________________

3.2. MySQL

A MySQL teleptse elg egyszer. A letlttt futtathat llomnyokat a
megfelel knyvtrba kell tenni.

Kezdetknt hozz ltre egy user:group csoportot a MySQL dmon szmra, majd
msold be a fjlokat a megfelel knyvtrakba.

 # groupadd MySQL
# useradd -g MySQL MySQL
# cd /usr/local
# gunzip < /path/to/MySQL-VERSION-OS.tar.gz | tar xvf - 
# ln -s full-path-to-MySQL-VERSION-OS MySQL

   Ezutn futtasd az install_db szkriptet, s lltsd be a fjlok
   jogosultsgait.
 # cd MySQL
# scripts/MySQL_install_db
# chown -R MySQL .
     _________________________________________________________________

3.2.1. A MySQL indtsa

Most indtsd el a MySQL kiszolglt a telepts ellenrzshez.

 # bin/MySQLd_safe --user=MySQL &

   Ellenrizd a MySQL dmon futst, a ps -ef parancs hasznlatval. A
   kvetkez kimenetnek kell megjelennie:
# ps -ef | grep MySQL
root      3237     1  0 May29 ?        00:00:00 /bin/sh bin/safe_MySQLd
MySQL     3256  3237  0 May29 ?        00:06:58 /usr/local/MySQL/bin/MySQLd --d
efaults-extra-file=/usr/local/MySQL/data/my.cnf --basedir=/usr/local/MySQL --da
tadir=/usr/local/MySQL/data --user=MySQL --pid-file=/usr/local/MySQL/data/downl
oa
     _________________________________________________________________

3.2.2. A MySQL lelltsa

A MySQL kiszolgl lelltshoz kvesd az albbi tmutatst:

# cd /usr/local/MySQL
# ./bin/MySQLadmin -u root -p shutdown
     _________________________________________________________________

3.2.3. A Data Directory helynek meghatrozsa

A MySQL dmon minden informcit egy "Data Directory" nev knyvtrban
trol. Ha kvetted a fenti tmutatst, a Data Directory megtallhat az
/usr/local/MySQL/data knyvtr alatt.

A Data Directory helynek meghatrozshoz hasznld a MySQLadmin
segdprogramot, az albbi mdon:

# /usr/local/MySQL/bin/MySQLadmin variables -u root --password={your_password}
| grep datadir
     _________________________________________________________________

3.3. Apache 2.0

Kezdetnek llts be nhny FLAGS-et a fordt szmra.

# export LDFLAGS="-L/usr/local/iplanet-ldap-sdk.5/lib/ -R/usr/local/iplanet-lda
p-sdk.5/lib/:/usr/local/lib"
# export CPPFLAGS="-I/usr/local/iplanet-ldap-sdk.5/include"

   Ezutn csomagold ki az Apache 2.0 forrsfjljait, s futtasd a
   configure szkriptet.
# cd /tmp/download
# gzip -d httpd-2.0.46.tar.gz 
# tar -xvf httpd-2.0.46.tar
# cd httpd-2.0.46
#./configure --enable-so --with-ssl --enable-ssl --enable-rewrite --enable-dav

   Ezutn add ki a make parancsot
# make
# make install
     _________________________________________________________________

3.3.1. Az Apache indtsa

# /usr/local/apache2/bin/apachectl start
     _________________________________________________________________

3.3.2. Az Apache lelltsa

# /usr/local/apache2/bin/apachectl stop
     _________________________________________________________________

3.4. mod_auth_ldap

Csomagold ki a modauthldap_apache2.tar.gz fjlt.

cd /tmp/download
# gzip -d modauthldap_apache2.tar.gz
# tar -xvf modauthldap_apache2.tar
# cd modauthldap_apache2

   Most lltsd be s teleptsd a mod_auth_ldap csomagot.
# ./configure --with-apxs=/usr/local/apache2/bin/apxs  --with-ldap-dir=/usr/loc
al/iplanet-ldap-sdk.5/
# make
# make install
     _________________________________________________________________

3.5. Tanstvny adatbzis az LDAPS:// rszre

Le kell tltened a cert7.db s key7.db adatbzisokat a
[67]http://www.xml-dev.com/xml/key3.db s
[68]http://www.xml-dev.com/xml/cert7.db webhelyrl s el kell helyezned az
/usr/local/apache2/sslcert/ knyvtrban.
     _________________________________________________________________

3.6. PHP

Csomagold ki a PHP forrsfjlokat.

gzip -d php-xxx.tar.gz
tar -xvf php-xxx.tar

   lltsd be, majd futtasd a make parancsot.
cd php-xxx
./configure --with-MySQL --with-apxs=/usr/local/apache2/bin/apxs

   Fordtsd le a forrskdot.
# make 
# make install

   Msold a php.ini fjlt a megfelel knyvtrba.
   cp php.ini-dist /usr/local/lib/php.ini
     _________________________________________________________________

4. A WebDAV szolgltatsok teleptse s belltsa

Ez egy knny rsz. Ebben a fejezetben engedlyezni fogjuk a WebDAV
szolgltatst az Apache egy fknyvtrban.
     _________________________________________________________________

4.1. Mdostsok az /usr/local/apache/conf/httpd.conf fjlban

Ellenrizd a kvetkez Apache direktvk megltt az
/usr/local/apache/conf/httpd.conf fjlban:

  Addmodule mod_dav.c

   Amennyiben nincs benne, add hozz. Ez jelzi az Apache szmra a DAV
   kpessg megltt. A direktvt mindenkpp kontneren (container)
   kvl kell elhelyezni.

   Ezt kveten meg kell adnod azt, hogy az Apache hol trolja a
   DAVLockDB fjlt. Ez egy zrolsi adatbzis a WebDAV-hoz, ezt rhatv
   kell tenned a httpd processz szmra.

   A DAVLock fjlt n az /usr/local/apache/var knyvtrban trolom. n
   ezt a knyvtrat ms clokra is hasznlom. Add hozz a kvetkez sort
   az /usr/local/apache/conf/httpd.conf fjlhoz, annak meghatrozshoz,
   hogy a DAVLockDB fjl az /usr/local/apache/var knyvtrban van:

     DAVLockDB      /usr/local/apache/var/DAVLock

   Az utastst a troln kvl helyezd el.
     _________________________________________________________________

4.2. Egy DAVLockDB knyvtr ltrehozsa

Mint fent emltettem, egy knyvtrat kell ltrehoznod a DAVLockDB fjl
szmra, majd rhatv kell tenned a webszerver folyamat szmra. ltalban
a webszerver folyamat "nobody" felhasznli nven fut. Ellenrizd ezt a
kvetkez parancs hasznlatval:

ps -ef | grep httpd

Az /usr/local/apache alatt hozz ltre egy knyvtrat, s lltsd be a
hozzfrsi jogokat, a kvetkez parancsok hasznlatval:

  # cd /usr/local/apache
  # mkdir var
  # chmod -R 755 var/
  # chown -R nobody var/
  # chgrp -R nobody var/
     _________________________________________________________________

4.3. A DAV engedlyezse

A DAV engedlyezse pofonegyszer. Az Apache fknyvtra alatti knyvtr
DAV engedlyezshez, add hozz annak a bizonyos knyvtrnak a troljhoz a
kvetkez direktvt:

  DAV On

   Ez engedlyezi a DAV-ot arra a knyvtrra s alknyvtraira.

   A kvetkez plda bellts engedlyezi a DAV s LDAP
   azonostst/hitelestst az /usr/local/apache/htdocs/DAVtest
   knyvtrra. Rakd be az /usr/local/apache/conf/httpd.conf fjlba.
 DavLockDB /tmp/DavLock
<Directory "/usr/local/apache2/htdocs/DAVtest">
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthName "SMA Development server"
AuthType Basic
LDAP_Debug On
#LDAP_Protocol_Version 3
#LDAP_Deref NEVER
#LDAP_StartTLS On
LDAP_Server you.ldap.server.com
#LDAP_Port 389
# Ha az SSL aktv, meg kell adnod az LDAP SSL portot, ez ltalban 636
LDAP_Port 636
LDAP_CertDbDir /usr/local/apache2/sslcert
Base_DN "o=SDS"
UID_Attr uid
DAV On
#require valid-user
require valid-user
#require roomnumber "123 Center Building"
#require filter "(&(telephonenumber=1234)(roomnumber=123))"
#require group cn=rcs,ou=Groups
</Directory>
     _________________________________________________________________

4.4. Egy "DAVtest" nev knyvtr ltrehozsa

Mint egy korbbi rszben emltettem, minden DAV knyvtrnak rhatnak kell
lennie a webszerver folyamat ltal. Ebben a pldban felttelezzk, hogy a
webszerver "nobody" nv alatt fut. Ez az ltalnos. A felhasznl
megtekintshez (akinek neve alatt a webszerver fut) hasznld a

# ps -ef | grep httpd

   parancsot.

   Hozz ltre egy tesztknyvtrat "DAVtest" nven az
   /usr/local/apache2/htdocs knyvtr alatt:

   # mkdir /usr/local/apache/htdocs/DAVtest

   Vltoztasd meg a hozzfrsi jogokat a knyvtrban, az legyen
   rhat-olvashat a httpd folyamat szmra. Felttelezve, hogy a httpd
   "nobody" felhasznlnv alatt fut, hasznld a kvetkez parancsokat:
  # cd /usr/local/apache/htdocs
  # chmod -R 755 DAVtest/
  # chown -R nobody DAVtest/
  # chgrp -R nobody DAVtest/
     _________________________________________________________________

4.5. Az Apache jraindtsa

Vgl le kell futtatnod az Apache-hoz mellkelt konfigurcis tesztrutint, a
httpd.conf fjl szintaxisnak ellenrzshez:

# /usr/local/apache/bin/apachectl configtest

   Ha hibazenetet kapsz, akkor ellenrizd le, hogy minden utastst
   helyesen kvettl-e. Ha nem tudod kitallni a hiba okt, rj nekem (a
   hibazenetet is rd meg) a [69]saqib@seagate.com e-mail cmre.

   Ha a konfigurci tesztje sikeres, indtsd el az Apache webszervert:

   # /usr/local/apache/bin/apachectl restart

   Most van egy WebDAV engedlyezett Apache szervered LDAP hitelestssel
   s SSL titkostssal.
     _________________________________________________________________

4.6. A WebDAV protokoll tesztelse

Nagyon fontos, hogy a most teleptett WebDAV teljesen sszhangban legyen a
WebDAV-2 protokollal. Ha nem teljesen kompatibilis, akkor a WebDAV
alkalmazsok kliens oldala nem fog rendesen mkdni.

A kompatibilits tesztelshez a Litmus nev eszkzt hasznljuk. A Litmus a
WebDAV protokoll tesztelje, amely azt vizsglja, hogy sszhangban van-e
egy szerver az RFC2518-ben lert WebDAV protokollal.

Tltsd le a Litmus forrskdjt a [70]http://www.webdav.org/neon/litmus/
webhelyrl, majd msold be a /tmp/downloads knyvtrba.

Hasznld a gzip s tar programokat a kicsomagolshoz:

# cd /tmp/downloads
# gzip -d litmus-0.6.x.tar.gz
# tar -xvf litmus-0.6.x.tar
# cd litmus-0.6.x

   A Litmus fordtsa s teleptse egyszer:
# ./configure
# make
# make install

   A make install parancs a binris fjlokat az /usr/local/bin, a sg
   fjljait pedig az /usr/local/man knyvtrba teszi.

   A most teleptett WebDAV szerver tesztelshez hasznld a
   # /usr/local/bin/litmus http://you.dav.server/DAVtest userid passwd

   parancsot.
     _________________________________________________________________

5. A WebDAV szerver zemeltetse

Ebben a rszben megvitatjuk a klnbz kezelsi feladatokat - pldul LDAP
belps ellenrzse, s hogyan dolgozunk Apache-on DAV mdszerrel.

A legtbb konfigurcis vltozst a DAV-hoz a httpd.conf fjl hasznlatval
tesszk. Ez a fjl az /usr/local/apache/conf/httpd.conf knyvtrban
tallhat.

A httpd.conf egy szveges konfigurcis fjl, amelyet az Apache hasznl.
Szerkesztshez brmely szvegszerkesztt hasznlhatsz, n leginkbb a vi-t
szoktam. Kszts egy msolatot errl a fjlrl, mieltt megvltoztatod.

Miutn a httpd.conf fjlban elvgezted a vltoztatsokat, az Apache szervert
jra kell indtanod az /usr/local/apache/bin/apachectl restart paranccsal.
Mieltt jraindtand, teszteld a httpd.conf rvnyessgt az
/usr/local/apache/bin/apachectl configtest paranccsal.
     _________________________________________________________________

5.1. A DAV megosztott hozzfrsnek korltozsa

Az elz rszben, amikor ltrehoztuk a DAVtest megosztst, az LDAP-ot
hitelestsi clbl hasznltuk. Azonban brki, aki hitelesti magt, az
LDAP- ot hasznlva a felhasznli azonostjval/jelszavval, hozzfrhet
ahhoz a mapphoz.

A require direktva hasznlatval a httpd.conf fjlban limitlhatod adott
egynek vagy csoportok hozzfrst.

Ha megnzed a DAVtest konfigurcit az elz rszbl :

  <Directory /usr/local/apache/htdocs/DAVtest>
  Dav On
  #Options Indexes FollowSymLinks

  AllowOverride None
  order allow,deny
  allow from all
  AuthName "LDAP_userid_password_required"
  AuthType Basic
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require valid-user
  </Limit>
  LDAP_Server ldap.server.com
  LDAP_Port 389
  Base_DN "o=ROOT"

  UID_Attr uid
  </Directory>

Lthatod, hogy a require direktva rtke valid-user. Ami azt jelenti, hogy
brmely hitelestett felhasznlnak hozzfrse van ahhoz a mapphoz.
     _________________________________________________________________

5.1.1. Hozzfrs korltozsa egyni UID alapjn

LDAP UID-t is hasznlhatjuk a DAV mappa hozzfrsnek korltozsra.

A require valid-user direktva megvltoztathat require user 334455 445566
rtkre.

Ez a 334455 s 445566 UID-vel rendelkez felhasznlkra korltozza a
hozzfrst. Senki msnak nem lesz hozzfrse ehhez a mapphoz.
     _________________________________________________________________

5.1.2. Hozzfrs korltozsa csoportok tagjai szmra

A require direktvt hasznlhatod csoportok tagjai hozzfrsnek
korltozsra. Ezt megteheted az LDAP csoportok vagy az LDAP szrk
hasznlatval. A szrt az LDAP filter szintaxis szerint kell felpteni.
     _________________________________________________________________

5.2. rs jog korltozsa DAV megoszts alatt

Lehetsges a DAV megosztsok forrsainak szerkesztst bizonyos szemlyekre
korltozni, mindemellett brki megnzheti ezeket az erforrsokat (pldul
fjlokat - dacas). Ezt knnyen teheted a <Limit> cmke hasznlatval a
httpd.conf fjlban.

  <Directory /usr/local/apache/htdocs/DAVtest>
  Dav On
  #Options Indexes FollowSymLinks

  AllowOverride None
  order allow,deny
  allow from all
  AuthName "LDAP_userid_password_required"
  AuthType Basic
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require valid-user
  </Limit>
  LDAP_Server ldap.server.com
  LDAP_Port 389
  Base_DN "o=ROOT"

  UID_Attr uid
  </Directory>

   A <limit> megvltoztatsval korltozhatod adott szemly rsi jogt:
  <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require 334455
  </Limit>

   Alapveten korltozzuk a 334455 UID-vel rendelkez felhasznl PUT
   POST DELETE PROPPATH MKCOL COPY MOVE LOCK s az UNLOCK jogt. Mindenki
   ms kpes lesz hasznlni a GET s PROPFIND mdszert a forrsokon, de
   mst nem.
     _________________________________________________________________

6. Az SSL megvalstsa s hasznlata a HTTP forgalom biztonsgoss ttelre

Manapsg a fjlszerveren trolt adatok biztonsga nagyon fontos. A
kompromittlt adatok tbb ezer dollrba is kerlhetnek egy trsasgnak. Az
utols rszben LDAP hitelestsi modult fordtottunk az Apache-ba, hogy
biztostsuk a hitelestsi mechanizmust. Br a HTTP forgalom nem igazn
biztonsgos, s minden adat tiszta szvegknt jelenik meg - ez azt jelenti,
hogy az LDAP hitelests (userid/passwd) ugyancsak tiszta szvegknt megy
t. Ez problmt okozhat. Brki kutathat ezen userid/passwd prosok utn s
hozzfrhet a DAV llomnyhoz. Ennek megelzshez titkostanunk kell a
HTTP forgalmat, valjban a HTTP+SSL vagy HTTPS segtsgvel. Brmi, ami
tmegy a HTTPS-en, titkostott lesz, gy az LDAP userid/passwd-ben nem
kutakodhatnak. A HTTPS a 443-as porton fut. Az elz rsz fordtsi
folyamatnak eredmnyeknt az Apache mindkt porton, a 80-ason (norml HTTP)
s 443-ason (HTTPS) is fut. Ha csak a DAV-hoz hasznlod majd a szervert,
akkor nagyon ajnlott bezrni a 80-as portot. A HOGYAN ezen rszben nhny
informcit nyjtok az SSL-rl s annak zemeltetsrl egy Apache HTTP
szerveren.
     _________________________________________________________________

6.1. Az SSL bemutatsa

Az SSL (Secure Socket Layer; Biztonsgi Alrteg) egy protokoll rteg, amely
a hlzati (Network layer) s az alkalmazsi rtegek (Application layer)
kztt van. Mint neve is sugallja, az SSL mindenfle forgalom titkostsra
hasznlhat - LDAP, POP, IMAP s legfkpp HTTP.

me egy vgletekig leegyszerstett bra az SSL-el kapcsolatban ll
rtegekrl.

        +-------------------------------------------+
        |   LDAP   |    HTTP    |   POP   |   IMAP  |
        +-------------------------------------------+
        |                   SSL                     |
        +-------------------------------------------+
        |      Hlzati rteg (Network Layer)       |
        +-------------------------------------------+
     _________________________________________________________________

6.1.1. Az SSL-ben hasznlt titkost algoritmusok

Hromfle titkostsi technolgit hasznlnak az SSL-ben: "nyilvnos-titkos
kulcs" (Public-Private Key), "szimmetrikus kulcs" (Symmetric Key), s
[71]"digitlis alrs" (Digital Signature).

"Nyilvnos-titkos kulcs" titkosts - SSL kapcsolat indtsa: Ebben az
algoritmusban a titkosts s a visszafejts nyilvnos-titkos kulcsprral
trtnik. A webszerver a titkos kulcs, a nyilvnos kulcsot pedig a
tanstvnyban kldi el a kliensnek.

    1. A kliens kri a HTTPS-t hasznl Web szervertl a tartalmat.
    2. A web szerver vlaszol egy Digitlis Tanstvnnyal (Digital
       Certificate), amiben benne van a szerver nyilvnos kulcsa.
    3. A kliens ellenrzi, hogy lejrt-e a tanstvny.
    4. Ezutn a kliens ellenrzi, hogy a tanstvny hatsg
       (Certificate Authority; tovbbiakban CA), amely alrta a
       tanstvnyt, megbzott hatsg-e a bngsz listjn. Ez a
       magyarzata annak, mirt van szksgnk egy megbzott CA-tl
       kapott tanstvnyra.
    5. A kliens ellenrzi, hogy a webszerver teljes domain neve (Fully
       Qualified Domain Name) megegyezik-e a tanstvnyon lv
       kznsges nvvel (Common Name).
    6. Ha minden megfelel, ltrejn az SSL kapcsolat.

   Megjegyzs Megjegyzs:


   Brmi, amit titkos kulccsal titkostottak, kizrlag a nyilvnos
   kulccsal fejthet vissza. Ennek megfelelen, brmilyen nyilvnos
   kulccsal titkostott dolog, kizrlag a titkos kulccsal fejthet
   vissza. Elterjedt az a tvhit, miszerint kizrlag nyilvnos kulccsal
   lehet titkostani s titkos kulccsal visszafejteni. Ez nem gy van.
   Brmelyik kulcs hasznlhat titkostsra s visszafejtsre egyarnt
   (ha annak prjt hasznljk visszafejtsre s titkostsra - dacas).
   Vgl is, ha az egyik kulcsot hasznltk titkostsra, a msikat kell
   hasznlni a visszafejtsre stb. Egy zenet nem titkosthat s
   visszafejthet kizrlag a nyilvnos kulcs hasznlatval.

   A titkos kulccsal trtn titkosts s a nyilvnos kulccsal trtn
   visszafejts biztostk a cmzetteknek arrl, hogy a kldemnyt a
   kld (a titkos kulcs tulajdonosa) adta fel (mivel a titkos kulcs
   hasznlathoz szksges jelmondatot csak  ismeri - dacas). A
   nyilvnos kulccsal trtn titkosts s titkos kulccsal visszafejts
   biztostja azt, hogy a kldemnyt csak a meghatrozott cmzett (a
   titkos kulcs tulajdonosa) kpes visszafejteni.

   Szimmetrikus titkosts - az adatok tulajdonkppeni tvitele: Miutn
   az SSL kapcsolat ltrejtt, szimmetrikus titkostst hasznl az adatok
   titkostsra, kevesebb CPU ciklust felhasznlva (teht kevsb
   erforrsignyes - a lektor). Szimmetrikus titkostskor az adat
   ugyanazzal a kulccsal titkosthat s visszafejthet. A szimmetrikus
   titkosts kulcsa a kapcsolat indtsakor kerl tadsra, a
   nyilvnos-titkos kulcsprral trtn titkosts alatt.

   zenet ellenrzs A szerver kivonatot kszt az zenetrl valamilyen
   algoritmus szerint, mint pldul [72]HMAC, [73]SHA, [74]MD5, majd ezek
   alapjn ellenrzi az adatok srtetlensgt.
     _________________________________________________________________

6.1.2. A hitelessg s srtetlensg ellenrzse

Titkostsi folyamat

             Felad                  Cmzett
          titkos kulcsa          nyilvnos kulcsa
          ,-.                     ,-.
         (   )..........         (   )..........
          `-' ''''|'|'||          `-' ''''''''||
                  | |                    |
                  | |                    |
   .-----------.  | |    .-----------.   |     .-----------.
   |           |  V |    |Titkostott|   V     |Titkostott|
   |Sima szveg|-------->|  szveg   |-------->|  szveg   |
   |           |1. lps |    1      |2. lps |    2      |\
   `-----------'    |    `-----------'          `----------' \    __
         |          |                                         \   [_'
         |          |                                  5. lps\   |
         |3. lps  |                                       __   --|--
         |          |                                  _.--'       |
         V          |                            _..-''           / \
    .----------.    |                      _..-''               Cmzett
    |  SHA 1   |    V    .---------._..-''
    | zenet   |-------->|Digitlis|
    | kivonat  | 4. lps| alrs |             _
    `----------'         `---------'         _  (_)
        _____ ____   ____  ____ _   _ ____ _| |_ _  ___  ____
       | ___ |  _ \ / ___)/ ___) | | |  _ (_   _) |/ _ \|  _ \
       | ____| | | ( (___| |   | |_| | |_| || |_| | |_| | | | |
       |_____)_| |_|\____)_|    \__  |  __/  \__)_|\___/|_| |_|
                               (____/|_|

     * 1. lps: az eredeti "sima szveg" titkostsa a felad titkos
       kulcsnak hasznlatval, ennek eredmnye a "titkostott szveg 1".
       Ez biztostja a felad hitelessgt.
     * 2. lps: a "titkostott szveg 1" titkostsa a cmzett nyilvnos
       kulcsval, ennek eredmnye a "titkostott szveg 2". Ez biztostja
       a cmzett hitelessgt (rtsd: csak a cmzett tudja visszafejteni
       a szveget a sajt titkos kulcsval).
     * 3. lps: az SHA1 zenet kivonat (ellenrz sszeg - dacas)
       ksztse a "sima szveg" alapjn.
     * 4. lps: SHA1 zenet kivonat titkostsa a felad titkos
       kulcsval, ennek eredmnye a "sima szveg" digitlis alrsa. Ezt
       a digitlis alrst a cmzett felhasznlhatja az zenet
       srtetlensgnek s a felad hitelessgnek ellenrzsre.
     * 5. lps: a "digitlis alrs" s a "titkostott szveg 2"
       elkldse a cmzettnek.

   Visszafejtsi folyamat
           Cmzett                   Felad
        titkos kulcsa            nyilvnos kulcsa
         ,-.                     ,-.
        (   )..........         (   )..........
         `-' ''''''''||          `-' '''''''|||
                |                      |    |
                |                      |    |
  .-----------. |      .-----------.   |    | .-----------.        .----#1----.
  |Titkostott| V      |Titkostott|   V    | |           |        |  SHA 1   |
  |  szveg   |------->|  szveg   |--------->|Sima szveg|------->| zenet   |
  |    2      |1. lps|     1     |2. lps| |           |3. lps|  kivonat |
  `-----------'        `-----------'        | `-----------'        `----------'
                                            |                        ||
                                            |                        ||5. lps
                                            |                        ||
                                            |                        ||
                               .---------.  |                    .----------.
                               |Digitlis|  V                    |  SHA 1   |
                               | alrs |---------------------->| zenet   |
                 _             `---------'  4. lps  _          | kivonat  |
                | |                               _  (_)         `----#2----'
              __| |_____  ____  ____ _   _ ____ _| |_ _  ___  ____
             / _  | ___ |/ ___)/ ___) | | |  _ (_   _) |/ _ \|  _ \
            ( (_| | ____( (___| |   | |_| | |_| || |_| | |_| | | | |
             \____|_____)\____)_|    \__  |  __/  \__)_|\___/|_| |_|
                                    (____/|_|

     * 1. lps: a "titkostott szveg 2" visszafejtse a cmzett titkos
       kulcsnak hasznlatval, ennek eredmnye a "titkostott szveg 1".
     * 2. lps: a "titkostott szveg 1" visszafejtse a felad
       nyilvnos kulcsnak hasznlatval, ennek eredmnye a "sima
       szveg".
     * 3. lps: SHA1 zenet kivonat (ellenrz sszeg - dacas)
       elksztse, az elz 2 lps eredmnyeknt kapott "sima szveg"
       alapjn.
     * 4. lps: a "digitlis alrs" visszafejtse a felad nyilvnos
       kulcsnak hasznlatval, ennek eredmnye az "SHA1 zenet kivonat".
     * 5. lps: az "SHA zenet kivonat #1" s "SHA zenet kivonat #2"
       sszehasonltsa. Amennyiben a kett egyezik, gy az zenet nem
       mdosult az tvitel alatt, gy az eredeti "sima szveg" srtetlen.
     _________________________________________________________________

6.2. Teszt tanstvnyok

Az Apache fordtsa kzben ltrehoztunk egy teszt tanstvnyt. A mod-ssl
csomagban lv makefile programot hasznltuk az egyni Tanstvny
ltrehozshoz. Erre a

# make certificate TYPE=custom

parancsot hasznltuk.

   Ezt a tanstvnyt tesztelsi clokra hasznlhatjuk.
     _________________________________________________________________

6.3. Tanstvnyok "zemi" hasznlatra

"zemi" hasznlathoz szksgnk lesz egy tanstvnyra valamely Certificate
Authority-tl (tanstvny hatsg) (ezentl CA). A CA-k a tanstvnyt
ruba bocstk, akik egy megbzhat CA listn vannak a felhasznl bngsz
kliensben. Mint azt az algoritmus titkosts rszben emltettem, ha a CA
nincs a megbzott hatsgok listjn, a felhasznl figyelmeztet zenetet
kap, amikor megprbl kapcsoldni egy biztostott/biztonsgos helyhez.

Hasonlan a teszt tanstvnyokhoz, ez is kld egy figyelmeztet zenetet a
felhasznl bngszjnek.
     _________________________________________________________________

6.4. Hogyan generlhatsz a CSR-t?

A CSR (TAK) vagy Certificate Signing Request-et (tanstvny alrsi
krelem) el kell kldeni egy megbzott CA-nak alrsra. Ez a rsz
foglalkozik azzal, hogyan generlhatsz CSR-t s kldheted el egy ltalad
kivlasztott CA-nak. Az # openssl req parancs hasznlhat erre, az albbiak
szerint:

# cd /usr/local/apache/conf/
# /usr/local/ssl/bin/openssl req -new -nodes -keyout private.key -out public.cs
r
Generating a 1024 bit RSA private key
............++++++
....++++++
writing new private key to 'private.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
Locality Name (eg, city) []:San Jose
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Seagate
Organizational Unit Name (eg, section) []:Global Client Server
Common Name (eg, YOUR name) []:xml.seagate.com
Email Address []:saqib@seagate.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:badpassword
An optional company name []:

   Megjegyzs "PRNG not seeded" zenet


   Ha nincs /dev/random knyvtr a rendszernkn, "PRNG not seeded"
   hibazenetet kapsz. Ebben az esetben add ki a kvetkez parancsot:
# /usr/local/ssl/bin/openssl req -rand some_file.ext -new -nodes -keyout privat
e.key -out public.csr 

   A "some_file.ext" rszt cserljk ki egy rendszernkn ltez fjl
   nevre. Brmilyen fjlt megadhatunk. Az Openssl ezt fogja vletlen
   szm generlshoz hasznlni.

   A Solaris 9 rendszer rszeknt adnak /dev/random fjlt. Amennyiben
   Solaris rendszert hasznlsz, elkpzelhet, hogy teleptened kell a
   [75]112438 foltot a /dev/random fjl hasznlathoz.

   Ezen a ponton pr krdst tesz fel a szerver helyrl, hogy
   generlhassa a Certificate Signing Request-et.

   Megjegyzs: A kznsges neved (Common Name) a teljes DNS neve (Fully
   Qualified DNS) a webszerverednek, pldul dav.server.com. Ha mst rsz
   oda, akkor NEM fog mkdni. Jegyezd meg a hasznlt jelszt, a
   jvbeli hasznlat rdekben.

   Mihelyst befejezdtt a folyamat, lesz egy private.key s egy
   public.csr fjlod. Szksged lesz a public.csr fjlt bemutatnunk a
   CA-nak. Ekkor a public.key fjl mg nem titkostott. A titkostshoz
   hasznld az
 # mv private.key private.key.unecrpyted
# /usr/local/ssl/bin/openssl rsa -in private.key.unecrpyted -des3 -out private.
key

   parancsokat.
     _________________________________________________________________

6.5. A szerver titkos kulcsnak s tanstvnynak teleptse

Miutn a CA feldolgozta a krsed, visszakldenek egy kdolt tanstvnyt. A
Digitlis Tanstvny formtumt az X.509 v3 szabvny hatrozza meg. A
kvetkezkben lthat egy tipikus, X509 v3 szabvny szerinti Digitlis
Tanstvny felptse:

     * Certificate
          + Version
          + Serial Number
          + Algorithm ID
          + Issuer
          + Validity
          +
               o Not Before
               o Not After
          + Subject
          + Subject Public Key Info
          +
               o Public Key Algorithm
               o RSA Public Key
          + Extensions
     * Certificate Signature Algorithm
     * Certificate Signature
     _________________________________________________________________

6.5.1. Egy Digitlis Tanstvny ellenrzse

Egy X.509 Tanstvny ellenrzsre hasznld a kvetkez parancsot:

# openssl verify server.crt
 server.crt: OK

   Ahol a server.crt a Digitlis Tanstvnyt tartalmaz fjl neve.
     _________________________________________________________________

6.5.2. Egy Digitlis Tanstvny tartalmnak megtekintse

Egy Digitlis Tanstvny tartalma megtekinthet a # openssl x509 parancs
hasznlatval, az albbiak szerint:

# openssl x509 -text -in server.crt
 Certificate:
     Data:
         Version: 3 (0x2)
         Serial Number: 312312312 (0x0)
         Signature Algorithm: md5WithRSAEncryption
        Issuer: C=US, O=GTE Corporation, CN=GTE CyberTrust Root
         Validity
             Not Before: Feb  8 03:25:50 2000 GMT
             Not After : Feb  8 03:25:50 2001 GMT
            Subject: C=US, ST=New York, L=Pelham, O=xml-dev, OU=web, CN=www.xml
-dev.com/Email=saqib@xml-dev.com
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
             RSA Public Key: (1024 bit)
                 Modulus (1024 bit):
                ............
                ............
                 Exponent: 65537 (0x10001)
     Signature Algorithm: md5WithRSAEncryption
        ............
        ............

     _________________________________________________________________

6.5.3. A httpd.conf fjl mdostsa a tanstvnyok teleptshez

Ezt kell elhelyezned a szerveren, s belltanod az Apache-ban ennek helyt.

Pldul a titkos kulcsot az /usr/local/apache2/conf/ssl.key/ knyvtrba, a
tanstvnyt pedig az /usr/local/apache2/conf/ssl.crt/ knyvtrba.

Msold le a tanstvnyt egy server.crt nev fjlba, az
/usr/local/apache2/conf/ssl.crt/ knyvtrba.

Az elz lpsben generlt private.key fjlt helyezd az
/usr/local/apache2/conf/ssl.key/ knyvtrba

Ezutn mdostsd az /usr/local/apache2/conf/ssl.conf fjlt, hogy a
megfelel titkos kulcsra s tanstvnyra mutasson:

#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
#SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server-dsa.crt

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/private.key
#SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server-dsa.key
     _________________________________________________________________

6.6. A jelmondat (passphrase) eltvoltsa az RSA titkos kulcsbl

A webszerveren trolt RSA titkos kulcs ltalban titkostott, ezrt
szksged van egy jelmondatra a hasznlathoz. Ezrt kr jelmondatot, mikor
az Apache-ot modssl-el indtod:

# apachectl startssl
Apache/1.3.23 mod_ssl/2.8.6 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.
Server your.server.dom:443 (RSA)
Enter pass phrase:

   Az RSA titkos kulcs titkostsa nagyon fontos. Ha valaki megkaparintja
   a "titkostatlan RSA titkos kulcsot", akkor knnyen eltulajdonthatja
   a webszervert. Ha a kulcs titkostott, az illet nem tud semmit tenni
   a jelmondat nlkl, hacsak "nyers ervel" (brute force) fel nem tri.
   Hasznlj ers (rtsd: hossz s rtelmetlen) jelmondatot erre a
   clra.

   A kulcs titkostsa nha kellemetlensg forrsa is lehet, mivel a
   webszerver minden indtsakor kri a jelmondatot. Klnsen ha rc
   szkripteket hasznlunk, a webszerver rendszerindtskor trtn
   betltshez. A jelmondat bekrse problmt okozhat, mivel meglltja
   a folyamatot, bemenetre vr.

   Knnyen megszabadulhatsz a jelmondattl, ha visszafejted (decrypt) a
   kulcsot. Bizonyosodj meg arrl, hogy senki se szerezheti meg a
   kulcsot. Vedd figyelembe a biztonsgi s vdelmi ajnlsokat, mieltt
   visszafejted a kulcsot a webszerveren.

   A kulcs visszafejtsnek mdja:

   Elszr kszts msolatot a titkostott kulcsrl

   # cp server.key server.key.cryp

   aztn rd jra a kulcsot titkostssal. Krni fogja tled az eredeti
   titkostott kulcs jelmondatt:

# /usr/local/ssl/bin/openssl rsa -in server.key.cryp -out server.key
read RSA key
Enter PEM pass phrase:
writing RSA key

   me egy mdja annak, miknt biztosthatod a visszafejtett titkos
   kulcsot. gy csak a root felhasznl olvashatja:
   # chmod 400 server.key
     _________________________________________________________________

6.7. SSL teljestmnybellts

6.7.1. Munkafolyamatok kztti SSL rszfolyamat-gyorstr (Inter Process SSL
Session Cache)

Az Apache tbbfolyamatos modellt hasznl, amelyben NEM ugyanaz a
munkafolyamat foglalkozik az sszes krssel. Ennek eredmnyeknt az SSL
rszfolyamat adatai (Session Information) elvesznek, mikor a kliens
tbbszrs krssel fordul a szerverhez. A tbbszrs kapcsolds nagy
tbbletterhelst jelent a webszervernek s a kliensnek. Ennek elkerlsre
az SSL rszfolyamatok adatai egy munkafolyamatok kztti rszfolyamat-trban
troldnak, ez lehetv teszi a munkafolyamatok szmra a kapcsoldsi
adatokhoz val hozzfrst. Az SSLSessionCache kapcsol az
/usr/local/apache2/conf/ssl.conf fjlban van, itt hatrozhatod meg az SSL
rszfolyamat-gyorstr helyt:

SSLSessionCache        shmht:logs/ssl_scache(512000)
#SSLSessionCache        shmcb:logs/ssl_scache(512000)
#SSLSessionCache         dbm:logs/ssl_scache
SSLSessionCacheTimeout  300

   A dbm hasznlata: a logs/ssl_scache DBF hash-fjlt kszt gyorstrknt
   a helyi lemezeden.

   A shmht hasznlata: a logs/ssl_scache(512000) a gyorstrat a
   megosztott memriban hozza ltre.

   Megjegyzs shmht vs shmcb


   shmht: egy hash tblt hasznl az SSL kapcsoldsi adatok
   gyorstrazsra a megosztott memriban.

   shmht: egy ciklikus buffert hasznl az SSL kapcsoldsi adatok
   gyorstrazsra a megosztott memriban.

   Megjegyzs Megjegyzs:


   Nem minden platform/opercis rendszer tmogatja hash tbla
   ltrehozst a megosztott memriban. Ekkor a "dbm:logs/ssl_scache"-t
   kell hasznlnod helyette.
     _________________________________________________________________

6.7.2. Az SSLSession gyorstr ellenrzse

Az SSLSessionCache megfelel mkdsnek ellenrzsre az openssl
segdprogramot hasznlhatod a -reconnect kapcsolval, mint azt a
kvetkezkben lthatod:

# openssl s_client -connect your.server.dom:443 -state  -reconnect

CONNECTED(00000003)
.......
.......
Reused, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
SSL-Session:
.....
Reused, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
SSL-Session:
.....
Reused, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
SSL-Session:
.....
Reused, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
SSL-Session:
.....
Reused, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
SSL-Session:
.....

   A -reconnect kapcsol knyszerti az "s_client"-et arra, hogy tszr
   ugyanazzal a SSL munkafolyamat-azonostval (SSL session ID)
   kapcsoldjon a szerverhez. tszr ugyanannak az SSL
   munkafolyamat-azonostnak az jrahasznlatt kell ltnod, mint a
   fenti pldban.
     _________________________________________________________________

A. HTTP/HTTPS teljestmnybellt programok

me egy lista, a Web szerverekhez hasznlhat, nylt forrs
teljestmnybellt programokrl:

    i. [76]SSLswamp - egy SSL-t hasznl szerverhez csatlakozni kpes
       terhelhetsgi teszt/teljestmnymr program
   ii. [77]HTTPERF - Egy eszkz a Web szerver teljestmnynek
       bemrshez
   iii. [78]ab - Apache HTTP szerver teljestmnybellt program
     _________________________________________________________________

B. Hardveres SSL titkostsi megoldsok

A kvetkez hardveres SSL titkostsi megoldsok rhetk el:

    i. [79]CHIL (Cryptographic Hardware Interface Library; titkost
       hardverek csatolfelleteinek programknyvtra) az nCipher-tl
   ii. [80]ab - Apache HTTP szerver teljestmnybellt program
     _________________________________________________________________

C. Megbzott tanstvny hatsgok (Trusted Certificate Authorities)

me a tanstvny hatsgok (Certificate Authorities) listja, amelyeket a
klnbz bngszk megbzhatnak minstenek:

    i. [81]Baltimore
   ii. [82]Entrust
   iii. [83]GeoTrust
   iv. [84]Thawte
    v. [85]TrustCenter

A nyilvnos kulcs titkostssal kapcsolatos szavak gyjtemnye

A

   Asymmetric Cryptography (aszimmetrikus titkosts)
          Ez a titkosts egy kulcsprt - titkos (Private) s nyilvnos
          (Public) kulcsot hasznl. A titkos kulcsot (Private Key)
          biztonsgos helyen kell tartani, a nyilvnos kulcsot (Public
          Key) pedig szles krben terjeszteni.

C

   Certificate (tanstvny)
          Egy adatjegyzk, amely az [86]X.509 Format-ban szerepl
          informcikat tartalmazza.

   Certificate Authority (CA) (tanstvny hatsg; TH) (CA)
          A digitlis tanstvny (Digital Certificate) kibocstja. Azon
          vgfelhasznl (End-Entity) azonossgt is hitelesti, amelynek
          birtokban van a digitlis tanstvny.

   Certificate Signing Request (CSR) (tanstvny alrsi krelem; TAK)
          (CSR)
          A tanstvny alrsi krelem (Certificate Signing Request;
          CSR) az, ami elkldsre kerl a tanstvny hatsgnak
          (Certifiate Authority; CA) bejegyzsre. Az alrsi krelem
          tartalmazza a vgfelhasznl (End-Entity) nylvnos kulcst
          (Public Key), amelyre a digitlis tanstvnyt krelmezik.

   Common Name (CN) (kznsges nv) (CN)
          A kznsges nv (Common Name) a vgfelhasznl (End-Entity)
          neve, pldul Saqib Ali. Ha a vgfelhasznl egy webszerver,
          akkor ez a webszerver "teljesen kpzett domain neve" (Fully
          Qualified Domain Name; FQDN).

D

   Digital Certificate (digitlis tanstvny)
          Egy tanstvny kapcsolja a nyilvnos kulcsot (Public Key) egy
          szemlyhez (Subject; end-entity). Ez a tanstvny az [87]X.509
          Format-ban meghatrozott egyb azonost informcikat is
          tartalmaz a szemlyrl. A kibocst CA (tanstvny hatsg;
          TH) alrsval van elltva, annak titkos kulcst hasznlva
          ehhez a mvelethez. me egy [88]digitlis tanstvny.

   Digital Signature (digitlis alrs)
          Egy digitlis alrs (Digital Signature) az zenetkivonat
          (Message Digest) titkos kulccsal trtn alrsval
          kszthet el. Biztost a kld (Sender)
          (szemly)azonossgrl (Identity) s az adat srtetlensgrl
          (Integrity of the Data).

E

   End-Entity (vgfelhasznl)
          Egy felhasznl, aki rszt vesz a nyilvnos kulcs
          titkostsban. ltalban szerver, szolgltats (Service),
          tvlaszt (Router) vagy szemly. A tanstvny hatsg
          (Certificate Authority; CA) nem vgfelhasznl.

H

   Hash (a titkosts eredmnye)
          A titkosts eredmnye egy hexadecimlis szm, amely egy szveg
          karakterlncbl lett generlva, ezrt kt klnbz
          karakterlnc nem kpes ugyanazt a titkostott eredmnyt
          produklni.

   HMAC: Keyed Hashing for Message Authentication (kulcsos titkosts
          zenethitelestshez) (HMAC)
          A HMAC egy megvalstsa az zenethitelest-kd algoritmusnak
          (Message Authentication Code Algorithm).

M

   Message Authentication Code (zenethitelest-kd) (MAC)
          Hasonl az zenetkivonathoz (Message Digest; Hash/Fingerprint),
          azzal a klnbsggel, hogy a titkostott eredmny
          kiszmtshoz a megosztott rejtett kulcs (Shared Secret Key)
          lett felhasznlva. Mivel a rejtett kulcs lett felhasznlva,
          ezrt egy tmad nem tudja megvltoztatni az zenetkivonatot.
          Mindezek mellett a rejtett kulcsok kell elszr kzlni a
          partnerekkel, ellenttben a digitlis alrssal, amelynl az
          zenetkivonat a titkos kulccsal (Private Key) van alrva. A
          HMAC egy pldja az zenethitelest-kd algoritmusnak.

   Message Digest 5 - MD5 (zenetkivonat 5) (MD5)
          Az zenetkivonat 5 (Message Digest 5; MD5) egy 128 bites
          egyirny titkost fggvny.

P

   Private Key (titkos kulcs)
          A titkos kulcsot - az aszimmetrikus titkostsi rendszerben - a
          tulajdonosa (End-Entity) biztonsgos helyen tartja.
          Titkostsra s visszafejtsre hasznlhat.

   Public Key (nyilvnos kulcs)
          Az aszimmetrikus titkosts nyilvnos kulcst szles krben
          terjesztik. Titkostsra s visszafejtsre hasznlhat.

   Public Key Infrastructure (PKI) (nyilvnos kulcsos rendszer; NYKR)
          (PKI)
          Nyilvnos kulcsos rendszer.

S

   SHA-1: Secure Hash Algorithm (biztonsgos titkost algoritmus) (MD5)
          A biztonsgos titkost algoritmus (Secure Hash Algorithm;
          SHA-1) egy 160 bites egyirny titkost fggvny. Az zenet
          maximlis hossza 2^64 bit.

   Secure Socket Layer (SSL) (Biztonsgi Alrteg) (SSL)
          Az SSL egy biztonsgi protokoll, amely hitelessget (digitlis
          alrs), megbzhatsgot (titkosts) s adatsrtetlensget
          (zenet ellenrzs - MD5, SHA, stb.) biztost

   Symmetric Cryptography (Szimmetrikus Titkosts)
          Ebben a rendszerben az zenet ugyanazzal a kulccsal
          titkosthat s visszafejthet. (((n^2-n))/2) szm kulcsra
          van szksge n felhasznlnak, ha ezen mdszer szerint akarnak
          titkostani.

References

   1. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#intro
   2. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN62
   3. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN69
   4. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN73
   5. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN78
   6. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN92
   7. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN97
   8. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN102
   9. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN123
  10. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN133
  11. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN140
  12. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN143
  13. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN146
  14. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN150
  15. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN154
  16. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN158
  17. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN162
  18. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN166
  19. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN170
  20. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN173
  21. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN208
  22. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN245
  23. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN271
  24. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN284
  25. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN290
  26. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#config-webdav
  27. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN310
  28. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN326
  29. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN340
  30. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN350
  31. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN365
  32. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN377
  33. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN402
  34. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN414
  35. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN434
  36. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#ssl
  37. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN448
  38. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN512
  39. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN518
  40. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN522
  41. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#InstallingServerCert
  42. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN625
  43. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN651
  44. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN676
  45. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN689
  46. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#AEN699
  47. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#glossary
  48. mailto:saqib@seagate.com
  49. http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.xml
  50. http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.html
  51. http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.xml
  52. http://httpd.apache.org/
  53. http://www.php.net/
  54. http://www.MySQL.com/
  55. http://www.gnu.org/
  56. http://www.gnu.org/
  57. mailto:souly1@freemail.hu_NO_SPAM
  58. mailto:laca@janus.gimsz.sulinet.hu_NO_SPAM
  59. mailto:dacas@freemail.hu_NO_SPAM
  60. http://tldp.fsf.hu/index.html
  61. http://www.apache.org/dist/httpd/
  62. http://www.openssl.org/source/
  63. http://wwws.sun.com/software/download/products/3ec28dbd.html
  64. http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap_apache2.html
  65. http://www.MySQL.com/downloads/index.html
  66. http://www.php.net/downloads.php
  67. http://www.xml-dev.com/xml/key3.db
  68. http://www.xml-dev.com/xml/cert7.db
  69. mailto:saqib@seagate.com
  70. http://www.webdav.org/neon/litmus/
  71. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#digitsign
  72. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#hmac
  73. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#sha1
  74. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#md5
  75. http://sunsolve.sun.com/pub-cgi/findPatch.pl?patchId=112438
  76. http://distcache.sourceforge.net/
  77. http://www.hpl.hp.com/personal/David_Mosberger/httperf.html
  78. http://httpd.apache.org/docs-2.1/en/programs/ab.html
  79. http://www.ncipher.com/
  80. http://httpd.apache.org/docs-2.1/en/programs/ab.html
  81. http://www.baltimore.com/
  82. http://www.entrust.com/
  83. http://www.globalsign.net/
  84. http://www.thawte.com/
  85. http://www.trustcenter.de/
  86. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#InstallingServerCert
  87. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#InstallingServerCert
  88. file://localhost/home/dacas/temp/Apache-WebDAV-LDAP-HOWTO-hu.html#viewingdigitcertcontent
