Stunnel

Allikas: Kuutõrvaja
Redaktsioon seisuga 22. märts 2007, kell 03:27 kasutajalt Imre (arutelu | kaastöö)

Eesmärk

Stunnel tarkvara võimaldab programmidel, mis iseenesest ei sisalda krüptimise tuge pidada üle võrgu krüptitud andmevahetust.

Ettevalmistused

Stunneli kasutamisel üldiselt läheb tarvis lisaks stunneli programmile endale võimalust tekitada sertifikaate ning kasutada neid kliendi või serveri sertifikaatidena. Tõenäoliselt kõige otsekohesem on kasutada isesigneeritud (ingl. k. self-signed) sertifikaate, mille valmistamine toimub tarkvara OpenSSL abil näiteks selliselt

bash$ openssl req -nodes -new -newkey rsa:1024 -keyout sertifikaat.key -out sertifikaat.csr
bash$ openssl x509 -in sertifikaat.csr -out sertifikaat.crt -req -signkey sertifikaat.key -days 3650

Tulemusena on tekkinud kolm faili

sertifikaat.csr - nn sertifikaadi gereneerimise taotlus ehk avalik võti
sertifikaat.key - vastav salajane võti
sertifikaat.crt - isesigneeritud sertifikaat, mis tähendab praktiliselt seda, et sertifikaadi Issuer ja Subjekt langevad kokku
openssl x509 -in sertifikaat.crt -text -noout

Lisaks on OpenSSL programmiga hea pöörduda krüptitud teenuse poole selliselt

openssl s_client -connect ssl.loomaaed.tartu.ee:993

millele vastuseks näidatakse krüptitud ühenduse moodustamisel kasutatud parameetreid ning jääb ootama konsoolilt sisendit. Praktiliselt saab siit edasi tegutseda nagu krüptimata serveri poole telnet programmiga pöördumisel.

Krüptitud teenuse kasutamine krüptimise mitte toetava kliendiga

Eeldame, et krüptitud teenus asub aadressil ssl.loomaaed.tartu.ee:993 ning eesmärgiks on korraldada, et krüptimata andmevahetuseks saab pöörduda kohaliku arvuti localhost:143 pordi poole.

bash$ stunnel -f -c -d localhost:143 -r imap.loomaaed.tartu.ee:993

Võti -f tähendab, et stunnel jääb ees tööle, ilma -f kasutamiseta käivitatakse ta deemonina. Lisaks on -f kasutamisel hea näha stunneli logi. Muude kasutatud võtmete tähendus on ilmne

-c - stunnel töötab kliendina ja teine pool on krüptitud
-r - kauge arvuti soket
-d - stunnel töötab deemon rezhiimis kuulates näidatud soketil

Veendumaks, et ühendus toimib maksab pöörduda telneti või imap'i kliendiga localhost:143 poole.

Krüptitud teenuse pakkumine

Kui on tarvis korraldada krüptitud andmevahetust iseenesest krüptimist mitte toetava tarkvara abil, siis sobib kasutada stunnelit selliselt

bash$ stunnel -f -d imap.loomaaed.tartu.ee:993 -p sertifikaat.pem -r imap.loomaaed.tartu.ee:143

Antud juhul asuvad küll tunneli mõlemad otsad samas arvutis, kuid see ei pruugi olla tingimata nii. Failis sertifikaat.pem on alguses salajane võti ja seejärel sertfikaat, näiteks sobival kujul sertifikaat.pem faili saab moodustada selliselt

bash$ cat sertifikaat.key sertifikaat.crt > sertifikaat.pem

Kliendisertifikaadiga autentimine

Lisaks niisama krüptimist mitte võimaldavale programmile krüptitud teenuse kättesaadavaks teegemisele on võimalik stunneli abil esitada ka kliendisertifikaat, näiteks juhul kui teenus on seadistatud käima selliselt, et kliendi autentimine toimub kliendisertifikaadi alusel.