[email protected]
Offshore XML/XHTML Development
Verzi�t�rt�net | ||
---|---|---|
Verzi�: v4.1.2 | 2003.10.17 | �tdolgozta: sa |
Hozz�adva az SSL teljes�tm�nybe�ll�t�si fejezet | ||
Verzi�: v4.1.1 | 2003.09.29 | �tdolgozta: sa |
Friss�t�sek az SSL r�szben, az olvas�i visszajelz�sekre alapozva. | ||
Verzi�: v4.1.0 | 2003.09.02 | �tdolgozta: sa |
Friss�t�sek az SSL r�szben, az olvas�i visszajelz�sekre alapozva. | ||
Verzi�: v4.0.2 | 2003.08.01 | �tdolgozta: sa |
Kisebb friss�t�sek az Apache-ot be�ll�t� parancssorban. /dev/random hivatkoz�s az SSL r�szben. | ||
Verzi�: v4.0.1 | 2003.07.27 | �tdolgozta: sa |
Az SSL fejezet tov�bbi inform�ci�val b�v�tve. | ||
Verzi�: v4.0 | 2002.06.29 | �tdolgozta: sa |
Friss�tve a HOGYAN Apache 2.0.-ra. A doksi forr�sk�dja XML form�tum�. | ||
Verzi�: v3.4 | 2002.06.29 | �tdolgozta: sa |
Hozz�adva a "Hogyan gener�ljunk CSR-t" fejezet. | ||
Verzi�: v3.3 | 2002.04.14 | �tdolgozta: sa |
Hozz�adva a "WebDAV szerver �zemeltet�se" fejezet. |
Jelen dokumentum c�lja, hogy fel�p�ts�nk egy Apache + MySQL + PHP + WebDAV -alap� webes alkalmaz�sszervert, amely LDAP szerverek haszn�lat�val v�gzi az azonos�t�st (authentication). A dokumentum felfedi a titkos�tott LDAP tranzakci�kezel�s egyes r�szleteit is.
![]() | Megjegyz�s: |
---|---|
Ha b�rmilyen probl�m�val tal�lkozol az Apache vagy valamely modul telep�t�s�n�l, l�pj kapcsolatba velem a <[email protected]> e-mail c�men. |
Ez a dokumentum eredetileg 2001-ben k�sz�lt. Az�ta sz�mos friss�t�s �s b�v�t�s t�rt�nt. K�sz�net minden k�zrem�k�d�nek a friss�t�sek�rt �s jav�t�sok�rt.
Eme dokumentum XML k�dja megtal�lhat� a http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.xml webhelyen.
A dokumentum utols� v�ltozata a http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.html honlapon tal�lhat�.
Ha szeretn�l k�zrem�k�dni a HOGYAN karbantart�s�ban, let�ltheted az XML k�dot a http://www.xml-dev.com:8080/cocoon/mount/docbook/Apache-WebDAV-LDAP-HOWTO.xml webhelyr�l, �s elk�ldheted a friss�tett k�dot a [email protected] e-mail c�mre A SZERZ�K LIST�J�BAN �S A V�LTOZ�SOK T�RT�NET�BEN A TE NEVEDDEL :). Ez megk�nny�ti sz�momra a kapcsolatfelv�telt mindazokkal akik friss�tett�k/jav�tott�k a dokumentumot. K�sz�n�m.
Az Apache egy ny�lt forr�sk�d� http szerver modern oper�ci�s rendszerekre, amilyen a UNIX �s a Windows NT. Http szolg�ltat�sokat ny�jt a jelenlegi HTTP szabv�nyoknak megfelel�en.
Az Apache szabadon/ingyenesen let�lthet� a http://httpd.apache.org/ webhelyr�l.
A WebDAV egy Web enabled Distributed Authoring and Versioning, vagyis Web alap� Elosztott Szerz�i �s V�ltozatnyilv�ntart� rendszer. Egy�ttm�k�d�si k�rnyezetet biztos�t azoknak a felhaszn�l�knak, akik szerkesztik/karbantartj�k egy webszerver f�jljait. Technikailag a DAV a http protokoll kiterjeszt�se.
�me egy r�vid le�r�s a DAV �ltal biztos�tott b�v�t�sekr�l:
Fel�l�r�si v�delem: Z�rol�si �s felold�si mechanizmus az "elveszett friss�t�s" probl�ma kik�sz�b�l�s�re. A DAV protokoll mind a megosztott, mind a kiz�r�lagos z�rol�sokat t�mogatja.
Tulajdons�gok: Meta-adatok (c�m, t�rgy, k�sz�t�, stb.)
Nevek karbantart�sa: F�jlok m�sol�sa, �tnevez�se, mozgat�sa �s t�rl�se.
Hozz�f�r�s-szab�lyoz�s (Access Control; AC): A hozz�f�r�s korl�toz�sa bizonyos er�forr�sokhoz. Jelenleg a DAV felt�telezi az AC megl�t�t, �s nem biztos�t t�l er�s azonos�t�si mechanizmust.
V�ltozatnyilv�ntart�s: Dokumentumok rev�zi�j�nak nyilv�ntart�sa. M�g nem megval�s�tott.
A PHP (rekurz�v bet�sz� "PHP: Hypertext Preprocessor"; "PHP: Hipersz�veg El�feldolgoz�") sz�lesk�r�en haszn�lt, ny�l forr�sk�d�, �ltal�nos c�l� szkript-nyelv, amely k�l�n�sen Web-es fejleszt�sekn�l alkalmazhat� �s be�gyazhat� a HTML-be.
A PHP megtal�lhat� a http://www.php.net webhelyen.
A MySQL a legn�pszer�bb ny�lt forr�sk�d� SQL adatb�zis-kezel�, a MySQL AB fejleszti, terjeszti �s t�mogatja.
A MySQL adatb�zismotor let�lthet� a http://www.MySQL.com/ webhelyr�l.
A c�l el�r�s�hez sz�ks�ges eszk�z�k:
C Compiler, p�ld�ul GCC
Apache 2 Web szerver
LDAP Module az Apache-hoz
iPlanet LDAP lib f�jlok
SSL motor
PHP
MySQL adatb�zismotor
![]() | Megjegyz�s: |
---|---|
Mindezen csomagok szabadon hozz�f�rhet�k �s let�lthet�k a Net-r�l. |
A dokumentum felt�telezi, hogy a k�vetkez�k m�r telep�tve vannak a rendszereden:
gzip vagy gunzip - megtal�lhat� a http://www.gnu.org webhelyen
gcc �s GNU make - megtal�lhat� a http://www.gnu.org webhelyen
A magyar ford�t�st Kili�n Magdolna k�sz�tette (2003.03.28). A lektor�l�st Szijj�rt� L�szl� v�gezte el (2003.07.09). Utolj�ra Daczi (dacas) L�szl� friss�tette (2003.12.10). A dokumentum legfrissebb v�ltozata megtal�lhat� a Magyar Linux Dokument�ci�s Projekt honlapj�n.
Le kell t�ltened �s ford�tanod (compile) n�h�ny csomagot. Ez a HOGYAN elmagyar�zza a ford�t�si folyamatot, de tudnod kell forr�sk�db�l telep�teni.
Sz�ks�ged van Solarisra/Linuxra �s GNU CC ford�t�ra a g�pen. A GNU gnzip �s GNU tar szint�n sz�ks�ges.
Az Apache egy HTTP szerver, Web-es alkalmaz�sok kiszolg�l�s�ra haszn�ljuk. T�ltsd le az Apache 2.0.46 forr�sk�dot a http://www.apache.org/dist/httpd/ webhelyr�l.
T�ltsd le az OpenSSL csomagot a http://www.openssl.org/source/ webhelyr�l. A legutols� verzi�t t�ltsd le. Az OpenSSL telep�t�st az SSL k�nyvt�rak mod_ssl ford�t�s�ra haszn�ljuk Apache-csal, valamint SSL bizony�tv�nyok karbantart�s�ra a webszerveren. T�ltsd le az OpenSSL forr�sk�dot gzippelt f�jlk�nt a /tmp/downloads k�nyvt�rba.
T�ltsd le az iPlanet LDAP SDK csomagot a http://wwws.sun.com/software/download/products/3ec28dbd.html honlapr�l. Az iPlanet LDAP SDK csomagot fogjuk haszn�lni, mert ez tartalmazza az ldaps-hoz sz�ks�ges programk�nyvt�rakat (LDAP az SSL felett).
Az mod_auth_ldap csomagot az LDAP t�mogat�s Apache-ba ford�t�s�ra fogjuk haszn�lni. T�ltsd le a http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap_apache2.html honlapr�l.
T�ltsd le a soron k�vetkez� MySQL csomagot a http://www.MySQL.com/downloads/index.html honlapr�l.
El�sz�r ellen�rizd le n�h�ny telep�t�si felt�tel megl�t�t, majd kezdd meg a telep�t�st.
Az alkalmaz�sszerver terv�nk szerinti telep�t�s�hez sz�ks�gesek az SSL �s LDAP programk�nyvt�rak. Az SSL motorra is sz�ks�ge van az Apach 2.x-nek, az SSL tan�s�tv�nyok kezel�s�hez/haszn�lat�hoz.
Jelentkezz be root felhaszn�l�k�nt, a su parancs haszn�lat�val:
$ su - |
Hozzd l�tre az /usr/local/iplanet-ldap-sdk.5 k�nyvt�rat. M�sold az ldapcsdk5.08-Linux2.2_x86_glibc_PTH_OPT.OBJ.tar.gz f�jlt a /tmp/downloads k�nyvt�rb�l az /usr/local/iplanet-ldap-sdk.5 k�nyvt�rba.
# 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 sz�ks�ges iPlanet LDAP lib f�jlnak a megfelel� k�nyvt�rban kell lennie.
Ezut�n az OpenSSL motort kell telep�tened.
Az OpenSSL az SSL/TLS protokoll ny�lt forr�sk�d� megval�s�t�sa. Az OpenSSL sz�ks�ges az SSL tan�s�tv�nyok l�trehoz�s�hoz �s kezel�s�hez a webszerveren. A telep�t�s a lib f�jlokhoz is sz�ks�ges, ezeket az SSL modul az Apache kiszolg�l�s�ra haszn�lja.
L�pj be abba a k�nyvt�rba, ahova az OpenSSL forr�sk�dj�nak f�jljait 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 lefut�sa ut�n az openssl futtathat� f�jljai az /usr/local/ssl k�nyvt�rban lesznek.
A MySQL telep�t�se el�g egyszer�. A let�lt�tt futtathat� �llom�nyokat a megfelel� k�nyvt�rba kell tenni.
Kezdetk�nt hozz l�tre egy user:group csoportot a MySQL d�mon sz�m�ra, majd m�sold be a f�jlokat a megfelel� k�nyvt�rakba.
# 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 |
Ezut�n futtasd az install_db szkriptet, �s �ll�tsd be a f�jlok jogosults�gait.
# cd MySQL # scripts/MySQL_install_db # chown -R MySQL . |
Most ind�tsd el a MySQL kiszolg�l�t a telep�t�s ellen�rz�s�hez.
# bin/MySQLd_safe --user=MySQL & |
Ellen�rizd a MySQL d�mon fut�s�t, a ps -ef parancs haszn�lat�val. A k�vetkez� 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 --defaults-extra-file=/usr/local/MySQL/data/my.cnf --basedir=/usr/local/MySQL --datadir=/usr/local/MySQL/data --user=MySQL --pid-file=/usr/local/MySQL/data/downloa |
A MySQL kiszolg�l� le�ll�t�s�hoz k�vesd az al�bbi �tmutat�st:
# cd /usr/local/MySQL # ./bin/MySQLadmin -u root -p shutdown |
A MySQL d�mon minden inform�ci�t egy "Data Directory" nev� k�nyvt�rban t�rol. Ha k�vetted a fenti �tmutat�st, a Data Directory megtal�lhat� az /usr/local/MySQL/data k�nyvt�r alatt.
A Data Directory hely�nek meghat�roz�s�hoz haszn�ld a MySQLadmin seg�dprogramot, az al�bbi m�don:
# /usr/local/MySQL/bin/MySQLadmin variables -u root --password={your_password} | grep datadir |
Kezdetnek �ll�ts be n�h�ny FLAGS-et a ford�t� sz�m�ra.
# export LDFLAGS="-L/usr/local/iplanet-ldap-sdk.5/lib/ -R/usr/local/iplanet-ldap-sdk.5/lib/:/usr/local/lib" # export CPPFLAGS="-I/usr/local/iplanet-ldap-sdk.5/include" |
Ezut�n csomagold ki az Apache 2.0 forr�sf�jljait, �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 |
Ezut�n add ki a make parancsot
# make # make install |
Csomagold ki a modauthldap_apache2.tar.gz f�jlt.
cd /tmp/download # gzip -d modauthldap_apache2.tar.gz # tar -xvf modauthldap_apache2.tar # cd modauthldap_apache2 |
Most �ll�tsd be �s telep�tsd a mod_auth_ldap csomagot.
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-ldap-dir=/usr/local/iplanet-ldap-sdk.5/ # make # make install |
Le kell t�ltened a cert7.db �s key7.db adatb�zisokat a http://www.xml-dev.com/xml/key3.db �s http://www.xml-dev.com/xml/cert7.db webhelyr�l �s el kell helyezned az /usr/local/apache2/sslcert/ k�nyvt�rban.
Csomagold ki a PHP forr�sf�jlokat.
gzip -d php-xxx.tar.gz tar -xvf php-xxx.tar |
�ll�tsd be, majd futtasd a make parancsot.
cd php-xxx ./configure --with-MySQL --with-apxs=/usr/local/apache2/bin/apxs |
Ford�tsd le a forr�sk�dot.
# make # make install |
M�sold a php.ini f�jlt a megfelel� k�nyvt�rba.
cp php.ini-dist /usr/local/lib/php.ini |
Ez egy k�nny� r�sz. Ebben a fejezetben enged�lyezni fogjuk a WebDAV szolg�ltat�st az Apache egy f�k�nyvt�r�ban.
Ellen�rizd a k�vetkez� Apache direkt�v�k megl�t�t az /usr/local/apache/conf/httpd.conf f�jlban:
Addmodule mod_dav.c |
Amennyiben nincs benne, add hozz�. Ez jelzi az Apache sz�m�ra a DAV k�pess�g megl�t�t. A direkt�v�t mindenk�pp kont�neren (container) k�v�l kell elhelyezni.
Ezt k�vet�en meg kell adnod azt, hogy az Apache hol t�rolja a DAVLockDB f�jlt. Ez egy z�rol�si adatb�zis a WebDAV-hoz, ezt �rhat�v� kell tenned a httpd processz sz�m�ra.
A DAVLock f�jlt �n az /usr/local/apache/var k�nyvt�rban t�rolom. �n ezt a k�nyvt�rat m�s c�lokra is haszn�lom. Add hozz� a k�vetkez� sort az /usr/local/apache/conf/httpd.conf f�jlhoz, annak meghat�roz�s�hoz, hogy a DAVLockDB f�jl az /usr/local/apache/var k�nyvt�rban van:
DAVLockDB /usr/local/apache/var/DAVLock |
Az utas�t�st a t�rol�n k�v�l helyezd el.
Mint fent eml�tettem, egy k�nyvt�rat kell l�trehoznod a DAVLockDB f�jl sz�m�ra, majd �rhat�v� kell tenned a webszerver folyamat sz�m�ra. �ltal�ban a webszerver folyamat "nobody" felhaszn�l�i n�ven fut. Ellen�rizd ezt a k�vetkez� parancs haszn�lat�val:
ps -ef | grep httpd |
# cd /usr/local/apache # mkdir var # chmod -R 755 var/ # chown -R nobody var/ # chgrp -R nobody var/ |
A DAV enged�lyez�se pofonegyszer�. Az Apache f�k�nyvt�ra alatti k�nyvt�r DAV enged�lyez�s�hez, add hozz� annak a bizonyos k�nyvt�rnak a t�rol�j�hoz a k�vetkez� direkt�v�t:
DAV On |
Ez enged�lyezi a DAV-ot arra a k�nyvt�rra �s alk�nyvt�raira.
A k�vetkez� p�lda be�ll�t�s enged�lyezi a DAV �s LDAP azonos�t�st/hiteles�t�st az /usr/local/apache/htdocs/DAVtest k�nyvt�rra. Rakd be az /usr/local/apache/conf/httpd.conf f�jlba.
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 akt�v, meg kell adnod az LDAP SSL portot, ez �ltal�ban 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> |
Mint egy kor�bbi r�szben eml�tettem, minden DAV k�nyvt�rnak �rhat�nak kell lennie a webszerver folyamat �ltal. Ebben a p�ld�ban felt�telezz�k, hogy a webszerver "nobody" n�v alatt fut. Ez az �ltal�nos. A felhaszn�l� megtekint�s�hez (akinek neve alatt a webszerver fut) haszn�ld a
# ps -ef | grep httpd |
parancsot.
Hozz l�tre egy tesztk�nyvt�rat "DAVtest" n�ven az /usr/local/apache2/htdocs k�nyvt�r alatt:
# mkdir /usr/local/apache/htdocs/DAVtest
V�ltoztasd meg a hozz�f�r�si jogokat a k�nyvt�rban, az legyen �rhat�-olvashat� a httpd folyamat sz�m�ra. Felt�telezve, hogy a httpd "nobody" felhaszn�l�n�v alatt fut, haszn�ld a k�vetkez� parancsokat:
# cd /usr/local/apache/htdocs # chmod -R 755 DAVtest/ # chown -R nobody DAVtest/ # chgrp -R nobody DAVtest/ |
V�g�l le kell futtatnod az Apache-hoz mell�kelt konfigur�ci�s tesztrutint, a httpd.conf f�jl szintaxis�nak ellen�rz�s�hez:
# /usr/local/apache/bin/apachectl configtest |
Ha hiba�zenetet kapsz, akkor ellen�rizd le, hogy minden utas�t�st helyesen k�vett�l-e. Ha nem tudod kital�lni a hiba ok�t, �rj nekem (a hiba�zenetet is �rd meg) a [email protected] e-mail c�mre.
Ha a konfigur�ci� tesztje sikeres, ind�tsd el az Apache webszervert:
# /usr/local/apache/bin/apachectl restart
Most van egy WebDAV enged�lyezett Apache szervered LDAP hiteles�t�ssel �s SSL titkos�t�ssal.
Nagyon fontos, hogy a most telep�tett WebDAV teljesen �sszhangban legyen a WebDAV-2 protokollal. Ha nem teljesen kompatibilis, akkor a WebDAV alkalmaz�sok kliens oldala nem fog rendesen m�k�dni.
A kompatibilit�s tesztel�s�hez a Litmus nev� eszk�zt haszn�ljuk. A Litmus a WebDAV protokoll tesztel�je, amely azt vizsg�lja, hogy �sszhangban van-e egy szerver az RFC2518-ben le�rt WebDAV protokollal.
T�ltsd le a Litmus forr�sk�dj�t a http://www.webdav.org/neon/litmus/ webhelyr�l, majd m�sold be a /tmp/downloads k�nyvt�rba.
Haszn�ld a gzip �s tar programokat a kicsomagol�shoz:
# 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 ford�t�sa �s telep�t�se egyszer�:
# ./configure # make # make install |
A make install parancs a bin�ris f�jlokat az /usr/local/bin, a s�g� f�jljait pedig az /usr/local/man k�nyvt�rba teszi.
A most telep�tett WebDAV szerver tesztel�s�hez haszn�ld a
# /usr/local/bin/litmus http://you.dav.server/DAVtest userid passwd |
parancsot.
Ebben a r�szben megvitatjuk a k�l�nb�z� kezel�si feladatokat - p�ld�ul LDAP bel�p�s ellen�rz�se, �s hogyan dolgozunk Apache-on DAV m�dszerrel.
A legt�bb konfigur�ci�s v�ltoz�st a DAV-hoz a httpd.conf f�jl haszn�lat�val tessz�k. Ez a f�jl az /usr/local/apache/conf/httpd.conf k�nyvt�rban tal�lhat�.
A httpd.conf egy sz�veges konfigur�ci�s f�jl, amelyet az Apache haszn�l. Szerkeszt�s�hez b�rmely sz�vegszerkeszt�t haszn�lhatsz, �n legink�bb a vi-t szoktam. K�sz�ts egy m�solatot err�l a f�jlr�l, miel�tt megv�ltoztatod.
Miut�n a httpd.conf f�jlban elv�gezted a v�ltoztat�sokat, az Apache szervert �jra kell ind�tanod az /usr/local/apache/bin/apachectl restart paranccsal. Miel�tt �jraind�tan�d, teszteld a httpd.conf �rv�nyess�g�t az /usr/local/apache/bin/apachectl configtest paranccsal.
Az el�z� r�szben, amikor l�trehoztuk a DAVtest megoszt�st, az LDAP-ot hiteles�t�si c�lb�l haszn�ltuk. Azonban b�rki, aki hiteles�ti mag�t, az LDAP- ot haszn�lva a felhaszn�l�i azonos�t�j�val/jelszav�val, hozz�f�rhet ahhoz a mapp�hoz.
A require direkt�va haszn�lat�val a httpd.conf f�jlban limit�lhatod adott egy�nek vagy csoportok hozz�f�r�s�t.
Ha megn�zed a DAVtest konfigur�ci�t az el�z� r�szb�l :
<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> |
LDAP UID-t is haszn�lhatjuk a DAV mappa hozz�f�r�s�nek korl�toz�s�ra.
A require valid-user direkt�va megv�ltoztathat� require user 334455 445566 �rt�kre.
Ez a 334455 �s 445566 UID-vel rendelkez� felhaszn�l�kra korl�tozza a hozz�f�r�st. Senki m�snak nem lesz hozz�f�r�se ehhez a mapp�hoz.
A require direkt�v�t haszn�lhatod csoportok tagjai hozz�f�r�s�nek korl�toz�s�ra. Ezt megteheted az LDAP csoportok vagy az LDAP sz�r�k haszn�lat�val. A sz�r�t az LDAP filter szintaxis szerint kell fel�p�teni.
Lehets�ges a DAV megoszt�sok forr�sainak szerkeszt�s�t bizonyos szem�lyekre korl�tozni, mindemellett b�rki megn�zheti ezeket az er�forr�sokat (p�ld�ul f�jlokat - dacas). Ezt k�nnyen teheted a <Limit> c�mke haszn�lat�val a httpd.conf f�jlban.
<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> megv�ltoztat�s�val korl�tozhatod adott szem�ly �r�si jog�t:
<Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require 334455 </Limit> |
Alapvet�en korl�tozzuk a 334455 UID-vel rendelkez� felhaszn�l� PUT POST DELETE PROPPATH MKCOL COPY MOVE LOCK �s az UNLOCK jog�t. Mindenki m�s k�pes lesz haszn�lni a GET �s PROPFIND m�dszert a forr�sokon, de m�st nem.
Manaps�g a f�jlszerveren t�rolt adatok biztons�ga nagyon fontos. A kompromitt�lt adatok t�bb ezer doll�rba is ker�lhetnek egy t�rsas�gnak. Az utols� r�szben LDAP hiteles�t�si modult ford�tottunk az Apache-ba, hogy biztos�tsuk a hiteles�t�si mechanizmust. B�r a HTTP forgalom nem igaz�n biztons�gos, �s minden adat tiszta sz�vegk�nt jelenik meg - ez azt jelenti, hogy az LDAP hiteles�t�s (userid/passwd) ugyancsak tiszta sz�vegk�nt megy �t. Ez probl�m�t okozhat. B�rki kutathat ezen userid/passwd p�rosok ut�n �s hozz�f�rhet a DAV �llom�nyhoz. Ennek megel�z�s�hez titkos�tanunk kell a HTTP forgalmat, val�j�ban a HTTP+SSL vagy HTTPS seg�ts�g�vel. B�rmi, ami �tmegy a HTTPS-en, titkos�tott lesz, �gy az LDAP userid/passwd-ben nem kutakodhatnak. A HTTPS a 443-as porton fut. Az el�z� r�sz ford�t�si folyamat�nak eredm�nyek�nt az Apache mindk�t porton, a 80-ason (norm�l HTTP) �s 443-ason (HTTPS) is fut. Ha csak a DAV-hoz haszn�lod majd a szervert, akkor nagyon aj�nlott bez�rni a 80-as portot. A HOGYAN ezen r�sz�ben n�h�ny inform�ci�t ny�jtok az SSL-r�l �s annak �zemeltet�s�r�l egy Apache HTTP szerveren.
Az SSL (Secure Socket Layer; Biztons�gi Alr�teg) egy protokoll r�teg, amely a h�l�zati (Network layer) �s az alkalmaz�si r�tegek (Application layer) k�z�tt van. Mint neve is sugallja, az SSL mindenf�le forgalom titkos�t�s�ra haszn�lhat� - LDAP, POP, IMAP �s legf�k�pp HTTP.
�me egy v�gletekig leegyszer�s�tett �bra az SSL-el kapcsolatban �ll� r�tegekr�l.
+-------------------------------------------+ | LDAP | HTTP | POP | IMAP | +-------------------------------------------+ | SSL | +-------------------------------------------+ | H�l�zati r�teg (Network Layer) | +-------------------------------------------+ |
H�romf�le titkos�t�si technol�gi�t haszn�lnak az SSL-ben: "nyilv�nos-titkos kulcs" (Public-Private Key), "szimmetrikus kulcs" (Symmetric Key), �s "digit�lis al��r�s" (Digital Signature).
"Nyilv�nos-titkos kulcs" titkos�t�s - SSL kapcsolat ind�t�sa: Ebben az algoritmusban a titkos�t�s �s a visszafejt�s nyilv�nos-titkos kulcsp�rral t�rt�nik. A webszerver� a titkos kulcs, a nyilv�nos kulcsot pedig a tan�s�tv�nyban k�ldi el a kliensnek.
A kliens k�ri a HTTPS-t haszn�l� Web szervert�l a tartalmat.
A web szerver v�laszol egy Digit�lis Tan�s�tv�nnyal (Digital Certificate), amiben benne van a szerver nyilv�nos kulcsa.
A kliens ellen�rzi, hogy lej�rt-e a tan�s�tv�ny.
Ezut�n a kliens ellen�rzi, hogy a tan�s�tv�ny hat�s�g (Certificate Authority; tov�bbiakban CA), amely al��rta a tan�s�tv�nyt, megb�zott hat�s�g-e a b�ng�sz� list�j�n. Ez a magyar�zata annak, mi�rt van sz�ks�g�nk egy megb�zott CA-t�l kapott tan�s�tv�nyra.
A kliens ellen�rzi, hogy a webszerver teljes domain neve (Fully Qualified Domain Name) megegyezik-e a tan�s�tv�nyon l�v� k�z�ns�ges n�vvel (Common Name).
Ha minden megfelel�, l�trej�n az SSL kapcsolat.
![]() | Megjegyz�s: |
---|---|
B�rmi, amit titkos kulccsal titkos�tottak, kiz�r�lag a nyilv�nos kulccsal fejthet� vissza. Ennek megfelel�en, b�rmilyen nyilv�nos kulccsal titkos�tott dolog, kiz�r�lag a titkos kulccsal fejthet� vissza. Elterjedt az a t�vhit, miszerint kiz�r�lag nyilv�nos kulccsal lehet titkos�tani �s titkos kulccsal visszafejteni. Ez nem �gy van. B�rmelyik kulcs haszn�lhat� titkos�t�sra �s visszafejt�sre egyar�nt (ha annak p�rj�t haszn�lj�k visszafejt�sre �s titkos�t�sra - dacas). V�g�l is, ha az egyik kulcsot haszn�lt�k titkos�t�sra, a m�sikat kell haszn�lni a visszafejt�sre stb. Egy �zenet nem titkos�that� �s visszafejthet� kiz�r�lag a nyilv�nos kulcs haszn�lat�val. A titkos kulccsal t�rt�n� titkos�t�s �s a nyilv�nos kulccsal t�rt�n� visszafejt�s biztos�t�k a c�mzetteknek arr�l, hogy a k�ldem�nyt a k�ld� (a titkos kulcs tulajdonosa) adta fel (mivel a titkos kulcs haszn�lat�hoz sz�ks�ges jelmondatot csak � ismeri - dacas). A nyilv�nos kulccsal t�rt�n� titkos�t�s �s titkos kulccsal visszafejt�s biztos�tja azt, hogy a k�ldem�nyt csak a meghat�rozott c�mzett (a titkos kulcs tulajdonosa) k�pes visszafejteni. |
Szimmetrikus titkos�t�s - az adatok tulajdonk�ppeni �tvitele: Miut�n az SSL kapcsolat l�trej�tt, szimmetrikus titkos�t�st haszn�l az adatok titkos�t�s�ra, kevesebb CPU ciklust felhaszn�lva (teh�t kev�sb� er�forr�sig�nyes - a lektor). Szimmetrikus titkos�t�skor az adat ugyanazzal a kulccsal titkos�that� �s visszafejthet�. A szimmetrikus titkos�t�s kulcsa a kapcsolat ind�t�sakor ker�l �tad�sra, a nyilv�nos-titkos kulcsp�rral t�rt�n� titkos�t�s alatt.
�zenet ellen�rz�s A szerver kivonatot k�sz�t az �zenetr�l valamilyen algoritmus szerint, mint p�ld�ul HMAC, SHA, MD5, majd ezek alapj�n ellen�rzi az adatok s�rtetlens�g�t.
Titkos�t�si folyamat
Felad� C�mzett titkos kulcsa nyilv�nos kulcsa ,-. ,-. ( ).......... ( ).......... `-' ''''|'|'|| `-' ''''''''|| | | | | | | .-----------. | | .-----------. | .-----------. | | V | |Titkos�tott| V |Titkos�tott| |Sima sz�veg|-------->| sz�veg |-------->| sz�veg | | |1. l�p�s | 1 |2. l�p�s | 2 |\ `-----------' | `-----------' `----------' \ __ | | \ [_' | | 5. l�p�s\ | |3. l�p�s | __ --|-- | | _.--' | V | _..-'' / \ .----------. | _..-'' C�mzett | SHA 1 | V .---------._..-'' | �zenet |-------->|Digit�lis| | kivonat | 4. l�p�s| al��r�s | _ `----------' `---------' _ (_) _____ ____ ____ ____ _ _ ____ _| |_ _ ___ ____ | ___ | _ \ / ___)/ ___) | | | _ (_ _) |/ _ \| _ \ | ____| | | ( (___| | | |_| | |_| || |_| | |_| | | | | |_____)_| |_|\____)_| \__ | __/ \__)_|\___/|_| |_| (____/|_| |
1. l�p�s: az eredeti "sima sz�veg" titkos�t�sa a felad� titkos kulcs�nak haszn�lat�val, ennek eredm�nye a "titkos�tott sz�veg 1". Ez biztos�tja a felad� hiteless�g�t.
2. l�p�s: a "titkos�tott sz�veg 1" titkos�t�sa a c�mzett nyilv�nos kulcs�val, ennek eredm�nye a "titkos�tott sz�veg 2". Ez biztos�tja a c�mzett hiteless�g�t (�rtsd: csak a c�mzett tudja visszafejteni a sz�veget a saj�t titkos kulcs�val).
3. l�p�s: az SHA1 �zenet kivonat (ellen�rz� �sszeg - dacas) k�sz�t�se a "sima sz�veg" alapj�n.
4. l�p�s: SHA1 �zenet kivonat titkos�t�sa a felad� titkos kulcs�val, ennek eredm�nye a "sima sz�veg" digit�lis al��r�sa. Ezt a digit�lis al��r�st a c�mzett felhaszn�lhatja az �zenet s�rtetlens�g�nek �s a felad� hiteless�g�nek ellen�rz�s�re.
5. l�p�s: a "digit�lis al��r�s" �s a "titkos�tott sz�veg 2" elk�ld�se a c�mzettnek.
Visszafejt�si folyamat
C�mzett Felad� titkos kulcsa nyilv�nos kulcsa ,-. ,-. ( ).......... ( ).......... `-' ''''''''|| `-' '''''''||| | | | | | | .-----------. | .-----------. | | .-----------. .----#1----. |Titkos�tott| V |Titkos�tott| V | | | | SHA 1 | | sz�veg |------->| sz�veg |--------->|Sima sz�veg|------->| �zenet | | 2 |1. l�p�s| 1 |2. l�p�s| | |3. l�p�s| kivonat | `-----------' `-----------' | `-----------' `----------' | || | ||5. l�p�s | || | || .---------. | .----------. |Digit�lis| V | SHA 1 | | al��r�s |---------------------->| �zenet | _ `---------' 4. l�p�s _ | kivonat | | | _ (_) `----#2----' __| |_____ ____ ____ _ _ ____ _| |_ _ ___ ____ / _ | ___ |/ ___)/ ___) | | | _ (_ _) |/ _ \| _ \ ( (_| | ____( (___| | | |_| | |_| || |_| | |_| | | | | \____|_____)\____)_| \__ | __/ \__)_|\___/|_| |_| (____/|_| |
1. l�p�s: a "titkos�tott sz�veg 2" visszafejt�se a c�mzett titkos kulcs�nak haszn�lat�val, ennek eredm�nye a "titkos�tott sz�veg 1".
2. l�p�s: a "titkos�tott sz�veg 1" visszafejt�se a felad� nyilv�nos kulcs�nak haszn�lat�val, ennek eredm�nye a "sima sz�veg".
3. l�p�s: SHA1 �zenet kivonat (ellen�rz� �sszeg - dacas) elk�sz�t�se, az el�z� 2 l�p�s eredm�nyek�nt kapott "sima sz�veg" alapj�n.
4. l�p�s: a "digit�lis al��r�s" visszafejt�se a felad� nyilv�nos kulcs�nak haszn�lat�val, ennek eredm�nye az "SHA1 �zenet kivonat".
5. l�p�s: az "SHA �zenet kivonat #1" �s "SHA �zenet kivonat #2" �sszehasonl�t�sa. Amennyiben a kett� egyezik, �gy az �zenet nem m�dosult az �tvitel alatt, �gy az eredeti "sima sz�veg" s�rtetlen.
Az Apache ford�t�sa k�zben l�trehoztunk egy teszt tan�s�tv�nyt. A mod-ssl csomagban l�v� makefile programot haszn�ltuk az egy�ni Tan�s�tv�ny l�trehoz�s�hoz. Erre a
# make certificate TYPE=custom |
Ezt a tan�s�tv�nyt tesztel�si c�lokra haszn�lhatjuk.
"�zemi" haszn�lathoz sz�ks�g�nk lesz egy tan�s�tv�nyra valamely Certificate Authority-t�l (tan�s�tv�ny hat�s�g) (ezent�l CA). A CA-k a tan�s�tv�nyt �ruba bocs�t�k, akik egy megb�zhat� CA list�n vannak a felhaszn�l� b�ng�sz� kliens�ben. Mint azt az algoritmus titkos�t�s r�szben eml�tettem, ha a CA nincs a megb�zott hat�s�gok list�j�n, a felhaszn�l� figyelmeztet� �zenetet kap, amikor megpr�b�l kapcsol�dni egy biztos�tott/biztons�gos helyhez.
Hasonl�an a teszt tan�s�tv�nyokhoz, ez is k�ld egy figyelmeztet� �zenetet a felhaszn�l� b�ng�sz�j�nek.
A CSR (TAK) vagy Certificate Signing Request-et (tan�s�tv�ny al��r�si k�relem) el kell k�ldeni egy megb�zott CA-nak al��r�sra. Ez a r�sz foglalkozik azzal, hogyan gener�lhatsz CSR-t �s k�ldheted el egy �ltalad kiv�lasztott CA-nak. Az # openssl req parancs haszn�lhat� erre, az al�bbiak szerint:
# cd /usr/local/apache/conf/ # /usr/local/ssl/bin/openssl req -new -nodes -keyout private.key -out public.csr 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 []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:badpassword An optional company name []: |
![]() | "PRNG not seeded" �zenet | |
---|---|---|
Ha nincs /dev/random k�nyvt�r a rendszer�nk�n, "PRNG not seeded" hiba�zenetet kapsz. Ebben az esetben add ki a k�vetkez� parancsot:
A "some_file.ext" r�szt cser�lj�k ki egy rendszer�nk�n l�tez� f�jl nev�re. B�rmilyen f�jlt megadhatunk. Az Openssl ezt fogja v�letlen sz�m gener�l�shoz haszn�lni. A Solaris 9 rendszer r�szek�nt adnak /dev/random f�jlt. Amennyiben Solaris rendszert haszn�lsz, elk�pzelhet�, hogy telep�tened kell a 112438 foltot a /dev/random f�jl haszn�lat�hoz. |
Ezen a ponton p�r k�rd�st tesz fel a szerver hely�r�l, hogy gener�lhassa a Certificate Signing Request-et.
Megjegyz�s: A k�z�ns�ges neved (Common Name) a teljes DNS neve (Fully Qualified DNS) a webszerverednek, p�ld�ul dav.server.com. Ha m�st �rsz oda, akkor NEM fog m�k�dni. Jegyezd meg a haszn�lt jelsz�t, a j�v�beli haszn�lat �rdek�ben.
Mihelyst befejez�d�tt a folyamat, lesz egy private.key �s egy public.csr f�jlod. Sz�ks�ged lesz a public.csr f�jlt bemutatnunk a CA-nak. Ekkor a public.key f�jl m�g nem titkos�tott. A titkos�t�shoz haszn�ld az
# mv private.key private.key.unecrpyted # /usr/local/ssl/bin/openssl rsa -in private.key.unecrpyted -des3 -out private.key |
parancsokat.
Miut�n a CA feldolgozta a k�r�sed, visszak�ldenek egy k�dolt tan�s�tv�nyt. A Digit�lis Tan�s�tv�ny form�tum�t az X.509 v3 szabv�ny hat�rozza meg. A k�vetkez�kben l�that� egy tipikus, X509 v3 szabv�ny szerinti Digit�lis Tan�s�tv�ny fel�p�t�se:
Certificate
Version
Serial Number
Algorithm ID
Issuer
Validity
Not Before
Not After
Subject
Subject Public Key Info
Public Key Algorithm
RSA Public Key
Extensions
Certificate Signature Algorithm
Certificate Signature
Egy X.509 Tan�s�tv�ny ellen�rz�s�re haszn�ld a k�vetkez� parancsot:
# openssl verify server.crt server.crt: OK |
Ahol a server.crt a Digit�lis Tan�s�tv�nyt tartalmaz� f�jl neve.
Egy Digit�lis Tan�s�tv�ny tartalma megtekinthet� a # openssl x509 parancs haszn�lat�val, az al�bbiak 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 protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): ............ ............ Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption ............ ............ |
Ezt kell elhelyezned a szerveren, �s be�ll�tanod az Apache-ban ennek hely�t.
P�ld�ul a titkos kulcsot az /usr/local/apache2/conf/ssl.key/ k�nyvt�rba, a tan�s�tv�nyt pedig az /usr/local/apache2/conf/ssl.crt/ k�nyvt�rba.
M�sold le a tan�s�tv�nyt egy server.crt nev� f�jlba, az /usr/local/apache2/conf/ssl.crt/ k�nyvt�rba.
Az el�z� l�p�sben gener�lt private.key f�jlt helyezd az /usr/local/apache2/conf/ssl.key/ k�nyvt�rba
Ezut�n m�dos�tsd az /usr/local/apache2/conf/ssl.conf f�jlt, hogy a megfelel� titkos kulcsra �s tan�s�tv�nyra 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 |
A webszerveren t�rolt RSA titkos kulcs �ltal�ban titkos�tott, ez�rt sz�ks�ged van egy jelmondatra a haszn�lat�hoz. Ez�rt k�r jelmondatot, mikor az Apache-ot modssl-el ind�tod:
# 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 titkos�t�sa nagyon fontos. Ha valaki megkaparintja a "titkos�tatlan RSA titkos kulcsot", akkor k�nnyen eltulajdon�thatja a webszervert. Ha a kulcs titkos�tott, az illet� nem tud semmit tenni a jelmondat n�lk�l, hacsak "nyers er�vel" (brute force) fel nem t�ri. Haszn�lj er�s (�rtsd: hossz� �s �rtelmetlen) jelmondatot erre a c�lra.
A kulcs titkos�t�sa n�ha kellemetlens�g forr�sa is lehet, mivel a webszerver minden ind�t�sakor k�ri a jelmondatot. K�l�n�sen ha rc szkripteket haszn�lunk, a webszerver rendszerind�t�skor t�rt�n� bet�lt�s�hez. A jelmondat bek�r�se probl�m�t okozhat, mivel meg�ll�tja a folyamatot, bemenetre v�r.
K�nnyen megszabadulhatsz a jelmondatt�l, ha visszafejted (decrypt) a kulcsot. Bizonyosodj meg arr�l, hogy senki se szerezheti meg a kulcsot. Vedd figyelembe a biztons�gi �s v�delmi aj�nl�sokat, miel�tt visszafejted a kulcsot a webszerveren.
A kulcs visszafejt�s�nek m�dja:
El�sz�r k�sz�ts m�solatot a titkos�tott kulcsr�l
# cp server.key server.key.cryp |
azt�n �rd �jra a kulcsot titkos�t�ssal. K�rni fogja t�led az eredeti titkos�tott kulcs jelmondat�t:
# /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 m�dja annak, mik�nt biztos�thatod a visszafejtett titkos kulcsot. �gy csak a root felhaszn�l� olvashatja:
# chmod 400 server.key |
Az Apache t�bbfolyamatos modellt haszn�l, amelyben NEM ugyanaz a munkafolyamat foglalkozik az �sszes k�r�ssel. Ennek eredm�nyek�nt az SSL r�szfolyamat adatai (Session Information) elvesznek, mikor a kliens t�bbsz�r�s k�r�ssel fordul a szerverhez. A t�bbsz�r�s kapcsol�d�s nagy t�bbletterhel�st jelent a webszervernek �s a kliensnek. Ennek elker�l�s�re az SSL r�szfolyamatok adatai egy munkafolyamatok k�z�tti r�szfolyamat-t�rban t�rol�dnak, ez lehet�v� teszi a munkafolyamatok sz�m�ra a kapcsol�d�si adatokhoz val� hozz�f�r�st. Az SSLSessionCache kapcsol� az /usr/local/apache2/conf/ssl.conf f�jlban van, itt hat�rozhatod meg az SSL r�szfolyamat-gyorst�r hely�t:
SSLSessionCache shmht:logs/ssl_scache(512000) #SSLSessionCache shmcb:logs/ssl_scache(512000) #SSLSessionCache dbm:logs/ssl_scache SSLSessionCacheTimeout 300 |
A dbm haszn�lata: a logs/ssl_scache DBF hash-f�jlt k�sz�t gyorst�rk�nt a helyi lemezeden.
A shmht haszn�lata: a logs/ssl_scache(512000) a gyorst�rat a megosztott mem�ri�ban hozza l�tre.
![]() | shmht vs shmcb |
---|---|
shmht: egy hash t�bl�t haszn�l az SSL kapcsol�d�si adatok gyorst�raz�s�ra a megosztott mem�ri�ban. shmht: egy ciklikus buffert haszn�l az SSL kapcsol�d�si adatok gyorst�raz�s�ra a megosztott mem�ri�ban. |
![]() | Megjegyz�s: |
---|---|
Nem minden platform/oper�ci�s rendszer t�mogatja hash t�bla l�trehoz�s�t a megosztott mem�ri�ban. Ekkor a "dbm:logs/ssl_scache"-t kell haszn�lnod helyette. |
Az SSLSessionCache megfelel� m�k�d�s�nek ellen�rz�s�re az openssl seg�dprogramot haszn�lhatod a -reconnect kapcsol�val, mint azt a k�vetkez�kben l�thatod:
# 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� k�nyszer�ti az "s_client"-et arra, hogy �tsz�r ugyanazzal a SSL munkafolyamat-azonos�t�val (SSL session ID) kapcsol�djon a szerverhez. �tsz�r ugyanannak az SSL munkafolyamat-azonos�t�nak az �jrahaszn�lat�t kell l�tnod, mint a fenti p�ld�ban.
�me egy lista, a Web szerverekhez haszn�lhat�, ny�lt forr�s� teljes�tm�nybe�ll�t� programokr�l:
A k�vetkez� hardveres SSL titkos�t�si megold�sok �rhet�k el:
CHIL (Cryptographic Hardware Interface Library; titkos�t� hardverek csatol�fel�leteinek programk�nyvt�ra) az nCipher-t�l
ab - Apache HTTP szerver teljes�tm�nybe�ll�t� program
�me a tan�s�tv�ny hat�s�gok (Certificate Authorities) list�ja, amelyeket a k�l�nb�z� b�ng�sz�k megb�zhat�nak min�s�tenek:
Egy adatjegyz�k, amely az X.509 Format-ban szerepl� inform�ci�kat tartalmazza.
A digit�lis tan�s�tv�ny (Digital Certificate) kibocs�t�ja. Azon v�gfelhaszn�l� (End-Entity) azonoss�g�t is hiteles�ti, amelynek birtok�ban van a digit�lis tan�s�tv�ny.
A tan�s�tv�ny al��r�si k�relem (Certificate Signing Request; CSR) az, ami elk�ld�sre ker�l a tan�s�tv�ny hat�s�gnak (Certifiate Authority; CA) bejegyz�sre. Az al��r�si k�relem tartalmazza a v�gfelhaszn�l� (End-Entity) ny�lv�nos kulcs�t (Public Key), amelyre a digit�lis tan�s�tv�nyt k�relmezik.
A k�z�ns�ges n�v (Common Name) a v�gfelhaszn�l� (End-Entity) neve, p�ld�ul Saqib Ali. Ha a v�gfelhaszn�l� egy webszerver, akkor ez a webszerver "teljesen k�pzett domain neve" (Fully Qualified Domain Name; FQDN).
Egy tan�s�tv�ny kapcsolja a nyilv�nos kulcsot (Public Key) egy szem�lyhez (Subject; end-entity). Ez a tan�s�tv�ny az X.509 Format-ban meghat�rozott egy�b azonos�t� inform�ci�kat is tartalmaz a szem�lyr�l. A kibocs�t� CA (tan�s�tv�ny hat�s�g; TH) al��r�s�val van ell�tva, annak titkos kulcs�t haszn�lva ehhez a m�velethez. �me egy digit�lis tan�s�tv�ny.
Egy digit�lis al��r�s (Digital Signature) az �zenetkivonat (Message Digest) titkos kulccsal t�rt�n� al��r�s�val k�sz�thet� el. Biztos�t a k�ld� (Sender) (szem�ly)azonoss�g�r�l (Identity) �s az adat s�rtetlens�g�r�l (Integrity of the Data).
A titkos�t�s eredm�nye egy hexadecim�lis sz�m, amely egy sz�veg karakterl�nc�b�l lett gener�lva, ez�rt k�t k�l�nb�z� karakterl�nc nem k�pes ugyanazt a titkos�tott eredm�nyt produk�lni.
A HMAC egy megval�s�t�sa az �zenethiteles�t�-k�d algoritmusnak (Message Authentication Code Algorithm).
Hasonl� az �zenetkivonathoz (Message Digest; Hash/Fingerprint), azzal a k�l�nbs�ggel, hogy a titkos�tott eredm�ny kisz�m�t�s�hoz a megosztott rejtett kulcs (Shared Secret Key) lett felhaszn�lva. Mivel a rejtett kulcs lett felhaszn�lva, ez�rt egy t�mad� nem tudja megv�ltoztatni az �zenetkivonatot. Mindezek mellett a rejtett kulcsok kell el�sz�r k�z�lni a partnerekkel, ellent�tben a digit�lis al��r�ssal, amelyn�l az �zenetkivonat a titkos kulccsal (Private Key) van al��rva. A HMAC egy p�ld�ja az �zenethiteles�t�-k�d algoritmusnak.
Az �zenetkivonat 5 (Message Digest 5; MD5) egy 128 bites egyir�ny� titkos�t� f�ggv�ny.
A titkos kulcsot - az aszimmetrikus titkos�t�si rendszerben - a tulajdonosa (End-Entity) biztons�gos helyen tartja. Titkos�t�sra �s visszafejt�sre haszn�lhat�.
Az aszimmetrikus titkos�t�s nyilv�nos kulcs�t sz�les k�rben terjesztik. Titkos�t�sra �s visszafejt�sre haszn�lhat�.
Nyilv�nos kulcsos rendszer.
A biztons�gos titkos�t� algoritmus (Secure Hash Algorithm; SHA-1) egy 160 bites egyir�ny� titkos�t� f�ggv�ny. Az �zenet maxim�lis hossza 2^64 bit.
Az SSL egy biztons�gi protokoll, amely hiteless�get (digit�lis al��r�s), megb�zhat�s�got (titkos�t�s) �s adats�rtetlens�get (�zenet ellen�rz�s - MD5, SHA, stb.) biztos�t
Ebben a rendszerben az �zenet ugyanazzal a kulccsal titkos�that� �s visszafejthet�. (((n^2-n))/2) sz�m� kulcsra van sz�ks�ge n felhaszn�l�nak, ha ezen m�dszer szerint akarnak titkos�tani.