OpenSSH
Vikipēdijas raksts
OpenSSH |
|
---|---|
Don't tell anyone that I'm free. |
|
Uzturētājs: | OpenBSD |
Tekošā versija: | 4.3 / 2006. gada 1. februāris |
OS: | Multiplatformu |
Žanrs: | Attālināta piekļuve |
Licence: | BSD |
Mājaslapa: | http://www.openssh.com |
OpenSSH jeb Open Secure Shell ir komplekss servera un lietojumprogrammu risinājums, kas nodrošina korespondences, datu apmaiņas un klienta–servera sesiju kriptēšanu datortīklos, implementējot un attīstot brīvu SSH protokola versiju. Gandrīz viss projekta kods ir BSD licencēts. Pirmkods, kas nav BSD licencēts neuzliek, un nedrīkst uzlikt, vairāk ierobežojumu (tātad projekts neiekļauj kodu, kas ir licencēts ar GPL) kā pati BSD licence. OpenSSH tika radīts kā no patentiem brīva, un bez maksas pieejama alternatīva Secure Shell īpašumprogrammatūrai. Šobrīd OpenSSH ir populārākā SSH implementācija, aizņemot aptuveni 88% (2005. gada statistika) tirgus daļas. Projektu vada Teo de Rots no Kalgari, Albertas provinces, Kanādā.
Satura rādītājs |
[izmainīt šo sadaļu] Vēsture
OpenSSH projektu uzsāka OpenBSD izstrādātāju komanda kā brīvu alternatīvu oriģinālajai Tatu Ylönen SSH programmatūras versijai, kuras licence joprojām ir komerciāla. OpenSSH izstrādātāji uzskata, ka tā ir daudz drošāka par oriģinālu, pateicoties viņu ieradumam radīt tīru un auditētu pirmkodu un faktam, ka, tā, kā projekta vārds norāda, ir BSD licencēta. Un, lai gan pirmkods no oriģinālā SSH projekta tagad ir pieejams, tā licence nosaka zināmus ierobežojumus to izplatot un lietojot, kas OpenSSH daudzu brīvprogrammu izstrādātāju vidū padara par favorītu.
OpenSSH pirmo reizi parādījās OpenBSD 2.6 versijā. OpenSSH 4.3 versija iznāca 2006. gada februārī[1].
[izmainīt šo sadaļu] Reģistrēta preču zīme
2001. gada februārī, SSH Communications Security priekšsēdētājs un galvenais izstrādātājs, Tatu Ylönen OpenSSH izstrādātāju e-pasta sarakstes forumā openssh-unix-dev@mindrot.org paziņoja, ka pēc sarunas ar galvenajiem OpenSSH izstrādātājiem, Markusu Friedelu, Teo de Rotu, and Nilu Provosu, kompānijai būs jāizmanto savas tiesības uz SSH un Secure Shell preču zīmju neizskarāmību[2]. Turklāt, Tatū arī lūdza mainīt atsauces uz izmantojamo protokolu no SSH uz SecSh vai secsh, lai aizsargātu produkta preču zīmi un atpazīstamību. OpenSSH projektam, Tatū vārdiem, draudēja tiesāšanās, taču Teo de Rots atklāti paziņoja, ka projekta vārdu mainīt negrasās.
Tolaik termini "SSH", "Secure Shell" un "ssh" tika lietoti protokola darbagrupas dokumentos, kas piedāvāja protokolu padarīt par atvērtu un vienotu standartu, tāpēc tika uzskatīts, ka tādejādi Tatū jau ir atteicies no SSH kā reģistrētas preču zīmes, lai tā nodēvētu pašu protokolu. Tā notika tāpēc, ka ASV savienoto valstu reģistrētu preču zīmju aizsardzības likums nosaka, ka preču zīmes, kas izmantojamas reklāmā, var tikt lietotas vienīgī kā īpašvārdi, ne kā sugas vārdi. Nepareiza preču zīmes pielietošana, vai atļauja citiem to lietot nepareizi, padara to par vispārēju un juridiski neizsargātu terminu, kā tas, piemēram, notika ar Kleenex vai Aspirīnu[3].
Tāpat, palika neatbildēts jautājums, vai vārds "ssh" vispār varēja tikt uzskatīts par preču zīmi, vai arī tas vienkārsi tika lietots kā SSH Communications Security logo, kas turklāt, vārdu attēlojot, lietoja mazos burtus. Daudzi Interneta apskatnieki, to tā arī traktē, un pēc USPTO reģistrēto preču zīmju datu bāzē veiktā pētījuma, var secināt, ka arī fakts, ka kompānijas preču zīmes juridiskā aizstāvība vēršoties pret tādu brīvu produkta alternatīvu kā OpenSSH, kas sākta tikai sešus gadus pēc kompānijas dibināšanas, nerada šaubas par to, ka SSH, kā plaši izplatīta protokola apzīmejums lietots likumīgi[4].
Gan OpenSSH izstrādātāji, gan pats Ylönens bija IETF protokola standarta izstrādes darba grupas dalībnieki. IETF, pec vairākām tikšanās reizēm, oficiāli noraidīja Ylönena prasību (kas tika pamatota ar bažām, ka tas radītu nevajadzīgu reģistrētu preču zīmju konflikta precedentu pret IETF) par protokola nosaukuma maiņu. Darba grupa vēlreiz uzsvēra, ka gan Secure Shell, gan SSH termini jau tobrīd tika lietoti, lai apzīmētu populāru protokolu, ne kādas firmas komercproduktu[5].
[izmainīt šo sadaļu] Izstrāde
OpenSSH izstrāde noris izmantojot OpenBSD projekta infrastruktūru, ko ik gadu finansē no OpenBSD savāktajiem ziedojumiem un ieņemumiem par pārdotajiem diskiem un citiem aksesuāriem (t–krekli, uzlīmes u. tml.). Gandrīz visi OpenSSH izstrādātāji ir arī OpenBSD operētajsistēmas programmētāji. Abu projektu izvirzītie mērķi un prioritātes ir identitiskas — izstrādāt iespējami drošāku pirmkodu. OpenSSH izstrādes process, lai gan atvērts un visiem pieejams, tomēr var tikt uzskatīts par samērā konservatīvu, kas skaidrojams ar SSH protokola nozīmīgo lomu visu pasaules datortīklu infrastūrā. Tādejādi, lai arī licence neparedz legālas konsekvences atklāto kļūdu vai ievainojamību rezultātā, uz OpenSSH izstrādātāju pleciem gulstas liela atbildība. Vēljovairāk tāpēc, ka OpenSSH implementācija ir kļuvusi par teju vai de facto standartu, izmantojot to attālinātai serveru administrēšanai, drošai autorizācijai un datņu kopēšanai. OpenSSH projekta izstrādātā programmatūra ir iekļauta neskaitāmās operētājsistēmu versijās, gan komerciālās, gan atvērtā koda sistēmās, sākot no Cisco Systems, Inc. Ethernet maršrutizātoriem un ugunsmūriem biznesa-līmeņa sistēmās un beidzot ar nu jau reti sastopamām UNIX tipa sistēmām vai populāriem Linux distributīviem. Pilns atbalstīto sistēmu saraksts pieejams OpenSSH oficiālajā mājaslapā. Periodiski OpenSSH izstrādātāji par savas programmatūras izplatību Internetā ievāc statistiku, kas var kalpot paštīksmināšanās un statistikas mērķiem. To veic izmantojot Nilsa Provosa izstrādāto skenēšanas programmu — ScanSSH. ScanSSH veic pilnu Internetā lietoto IP adrešu diapazona skenēšanu, pieslēdzoties pie ikviena servera vai darbstacijas, kas atbild uz 22 otrā porta (noklusētais SSH servera ports) vaicājumu. Uzsākot autorizācijas dialogu ar SSH serveri, ScanSSH programmatūrai ir iespēja noskaidrot SSH servera implementācijas un lietotā protokola versiju. Statistika par iepriekšējām skenēšanas reizēm atrodama OpenSSH mājaslapā.
[izmainīt šo sadaļu] Sistēmneatkarības nodrošināšana
Daļēji tapēc, ka OpenSSH jāveic autentifikācija, darbību, kas nav pilnīgi sistēmneatkarīga un, kas tāpēc prasa dažādu implementāciju, kas atkarīga no operētājsistēmas tipa, projektam jānodrošina plašaptveroša sistēmneatkarību nodrošinoša infrastruktūra. Lai to neiekļautu operētājsistēmā OpenBSD, uz kuras, vispirmāmkārtām, noris izstrādes darbs, versijas, kam nepieciešama sistēmneatkarība un atšķirīgas, uz OpenBSD nesastopamas, programmēšanas saskarsmes, tiek izstrādātas atsevišķi. Tās izstrādā par portabilitāti atbildīga komanda un to relīzes ir pazīstamas kā "viegli pārnesamās, jeb sistēmneatkarīgās versijas". Līdzīgu izstrādes modeli izmanto arī citi OpenBSD projekti, piemēram, OpenNTPD. Tas garantē pirmkoda integritāti, vienkāršību un kvalitāti. Sistēmneatkarību nodrošinošā izstrādes grupa lieto automatizētu kompilēšanas un regresijas testu izpildes infrastruktūru, kas par veiksmīgi nokārtotiem, vai gluži otrādi — nenokārtotiem testiem ziņo regresijas testu mājaslapā. Atkarībā no izstrādes procesa gaitas un tā, cik nesen esošais pirmkoda koks ir ticis sinhronizēts ar īsto OpenBSD versiju, mājaslapā situācija atšķiras — bieži vien, operētājsistēmas prasa īpašu pirmkoda pielāgošanu programmkoda videi.
[izmainīt šo sadaļu] Programmatūras patenti
Ja radušās problēmas dažādu programmatūras patentu dēļ, OpenBSD izstrādātāji vienmēr ir bijuši konsekventi — kods no projekta ir ticis izņemts, iekļaujot tikai pilnībā atvērtu un ar viņu licencēšanas politiku saskanošu pirmkodu. Tādejādi, OpenSSH atšķiras no oriģinālās implementācijas ar to, ka projekts neiekļauj patentētu vai ar GPL licencētu kodu. Šādas izstrādes politikas rezultātā no sākotnējās OpenSSH versijas tika izņemtas sekojošas komponentes:
- RSA, tagad sastopama OpenSSL kriptogrāfijas bibliotēkas programmēšanas interfeisā
- IDEA pilnībā izņemta, saistībā ar algoritma programmatūras patentu
- DES tagad ārēja komponente no OpenSSL bibliotēkas
- GMP koda funkcionalitāte aizvietota ar BN pirmkodu no OpenSSL
- Zlib — izmanto ārējo zlib bibliotēku
- The make-ssh-known-hosts script is no longer included
- TSS atbalsts ir pilnībā izņemts un to nav plānots atjaunot
- MD5 tagad ārēja komponente OpenSSL bibliotēkā
- RC4 atbalsts aizvietots ar ARC4 no OpenSSL bibliotēkas
- Blowfish tagad ārēja komponente OpenSSL bibliotēkā
[izmainīt šo sadaļu] Protokolu savietojamība
OpenSSH versijas, kas jaunākas par 2.0, atbalsta gan SSH 1.3, gan SSH 1.5 protokola standartus, nodrošinot savietojamību ar lielāko daļu UNIX un Windows operētājsistēmu komerciālajām implementācijām. Sākot ar 2.0. versiju, papildus SSH 1.3 un 1.5 protokoka standartu atbalstam, tiek nodrošināta pilnīga savietojamība ar 2.0. protokola specifikāciju; tāpāt, OpenSSH izvairās no RSA algoritma lietošanas — un tā vietā lieto no patentiem brīvās alternatīvas DH un DSA. Sākot ar versiju 2.5.0., ir pieejams pilns SFTP protokola atbalts un SFTP servera subsistēma — sftp-server strāda ar abām — SSH1 un SSH2 versijām.
[izmainīt šo sadaļu] Iespējas
- Stingra kriptogrāfija (3DES, Blowfish, AES, Arcfour)
- X11 protokola pāradresācija (kriptējot X Window Sistēmas datu plūsmu)
- Portu pāradresācija (iespēja kriptēt kanālu, lai izmantotu mantotu sistēmu, t.i., nekriptētus protokolus)
- Stingri realizēta autentifikācija (ar publisko atslēgu, vienreiz lietojamu paroli vai Kerberos autentifikāciju)
- Aģentu pāradresācija (Single-Sign-On)
- Savietojamība (Produkts savietojams ar SSH 1.3, 1.5, un 2.0 protokola standartiem)
- SFTP klienta un sarvera realizācija, gan SSH1, gan SSH2 protokola versijās
- Kerberos un AFS biļešu apmaiņa (vienreiz autorizējoties, lietotājs spēj lietot Kerberos un AFS servisus bez atkārtotas paroles ievades)
- Datu kompresija (uzlabo datu pārraides sniegumu lēnos datu tīklos) izmantojot zlib (populāra, atvērtā koda kompresijas bibliotēka)
[izmainīt šo sadaļu] Iekļautās programmas
OpenSSH programmatūras komplekts iekļauj sekojošas lietojumprogrammas:
- ssh, rlogin un telnet aizvietotājs:
ssh lietotājs@example.com
- scp, kas ir rcp aizvietotājs:
scp lietotājs@example.com:somefile .
- sftp, iecerētais ftp protokola aizvietotājs:
sftp lietotājs@example.com
- sshd, SSH protokola daemons:
sshd
[izmainīt šo sadaļu] Portu pāradresācija
Lielākā daļa programmu, kas lieto TCP konekcijas, var tikt pārraidītas caur drošu, kriptētu tunneli, izmantojot OpenSSH. Tāpat, to lieto, lai multipleksētu papildus TCP konekcijas, izmantojot vienu SSH sesiju. Tas lieti noder, lai caur publisku datortīklu varētu lietot nekriptētus protokolus, vai, ja ir vajadzība, apiet ugunsmūrus, kas konfigurēti datu filtrēšanai. UDP savienojumus var tunelēt par palīgu ņemot tādas programmas kā netcat. Par bieži lietotiem piemēriem kalpo X Window Sistēma, http lietojot starpniekserveri vai VNC. X Window Sistēmas tunelis bieži vien tiek izveidots automātiski, lai starp diviem UNIX lietojošiem datoriem, GUI programmas uz attālinātiem serveriem varētu lietot, vienkārši ievadot to nosaukumus:
ssh -Y user@example.com
password:
$ xclock
Turklāt, daļa programmatūras var tikt konfigurēta, lai, izmantojot OpenSSH, automātiski izveidotu drošu tuneli. Par piemēriem var kalpot tāda programmatūra kā DistCC, CVS, rsync, un fetchmail. Programmas, kur datu tunelēšana ir iespējama, bet sarežģīta ir ftp, kuru var aizvietot ar tās drošo alternatīvu -- sftp, un SMB. Dažās operētājsistēmās, attālinātas failu sistēmas var tikt lietotas izmantojot kriptētus tuneļus, izmantojot tādus risinājumus kā shfs, lufs vai podfuk.
[izmainīt šo sadaļu] SOCKS
OpenSSH ir pa spēkam izvedot ad hoc SOCKS starpniekserveri, kas var kalpot par efektīvāku vidutāju, kā vienkārša portu pāradresācija. Piemēram:
ssh -D1080 lietotājs@example.com
izveido lokālu SOCS serveri, kas atbildēs uz "localhost:1080" pieprasījumiem.
[izmainīt šo sadaļu] Tuneļus izmantojošs VPN risinājums
Sākot ar 4.3 versiju, OpenSSH implementē OSI 2/3 līmeņa "VPN". Līdz šim, tā ir pati pielāgojamākā OpenSSH tunelēšanas implementācija, ļaujot aplikācijām "caurspīdīgi" izmantot attālinātu datortīklu resursuss bez "soksifikācijas".
[izmainīt šo sadaļu] Autentifikācija
OpenSSH serveris var autentificēt sistēmas lietotājus izmantojot vienu no iebūvētajām autentifikācijas sistēmām:
- publisko atslēgu,
- keyboard-interactive (paroles un challenge-response), vai
- Kerberos/GSSAPI.
Bez jau iepriekš nosauktajām, OpenSSH bieži vien var izmantot papildus autentifikācijas metodes, ja tādas ir pieejamas uz lietotās operētājsistsēmas, kā piemēram, BSD autentifikācijas sistēmu (bsd_auth) vai PAM, kas ļautu izmantot tādus autentifikācijas veidus, kā vienreiz lietojāmās paroles.
[izmainīt šo sadaļu] Maldīgi uzskati
Nosaukumā lietotais prefikss Open-, daudzus vedina domāt, ka arī projekts OpenSSL, no kura kritpogrāfiju nodrošinošā programmēšanas interfeisa, tiešā veidā, ir atkarīgs arī pats OpenSSH projekts, ir OpenBSD izstrādātāju produkts. Vēljovairāk tapēc, ka OpenBSD tik tiešām vada un izstrādā virkni šādu, atvērtu, uz drošību orientētu un popularitāti ieguvušu produktu izstrādi. Tomēr tā ir kļūda. OpenSSL tiek izstrādāts bez tiešas OpenBSD projekta ietekmes, tā oficiālais izstrādes komandas nosaukums ir "OpenSSL Projekta izstrādes komanda", kurā ietilpst virkne, ar OpenBSD nesaistītu programmētāju, turklāt projekts lieto OpenBSD neraksturīgu licenci. Taisnības labad gan jāatzīst, ka arī OpenBSD sistēmas programmētāji ir devuši savu artavu OpenSSL attīstībā, ziņojot par atklātajam kļūdām vai drošības ievainojamībām, daļēji tāpec, ka OpenSSL ir iekļauts jau OpenBSD bāzes installācijā, un daļēji tāpec, ka OpenSSL tiek pielietots lielā daļā programmatūras, kur nepieciešama OpenSSL kriptogrāfijas bibliotēka (libcrypto), kā piemēram, Apache, IPSec implementācijā, OpenSSH, OpenNTPD un citur.
[izmainīt šo sadaļu] Atsauces
- ↑ Damiēna Millera paziņojums par OpenSSH 4.3 iznākšanu openssh-unix-dev@mindrot.org izstrādātāju forumā, skat. šeit.
- ↑ Tatu Ilonena e–pasts openssh-unix-dev izstrādātāju forumā, skat. šeit. 2001. gada 14. februāris. Skatīts 2006. gada 11. aprīlī.
- ↑ Newsforge avīžraksts: "Ylönen: We own ssh trademark, but here's a proposal", skat. šeit. 2001. gada 16. februāris. Skatīts 2006. gada 11. aprīlī.
- ↑ CNet News avīžraksts: "Ssh! Don't use that trademark", skat. šeit. 2001. gada 14. februāris. Skatīts 2006. gada 11. aprīlī.
- ↑ Network World avīžraksts: "SSH inventor denied trademark request": skat. šeit. 2001. gada 16. februāris. Skatīts 2006. gada 11. aprīlī.
[izmainīt šo sadaļu] Ārējās saites
- OpenSSH oficiālā mājaslapa
- OpenSSH — tiem, kas tankā (par autorizāciju ar RSA publisko atslēgu, latviski)
- OpenSSH licence un programmatūras autori
- Sistēmneatkarīgās versijas
- Darena Tukera OpenSSH mājaslapa
- OpenSSH procesa privilēģiju nomešana
- OpenSSH, 101 pielietojums: Pirmā daļa
- OpenSSH, 101 pielietojums: Otrā daļa
- OpenSSH–portable pirmkoda koks
- OpenSSH klienta konfigurācijas piemērs
- OpenSSH servera konfigurācijas piemērs
- OpenSSH versija Windows operētājsistēmai