SSH, SFTP, SCP

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Sadržaj

UVOD

Tema našeg seminara su SSH, SCP i SFTP protokoli. U ovom radu želimo prikazati koje sve aplikacije i protokoli postoje da bih se omogućio siguran prijenos podataka preko interneta na način da se podaci kriptiraju, te na koji način sve to skupa funkcionira.

--nigolub 11:03, 12. lipnja 2013. (CEST)



Značajke SSH, SCP te SFTP protokola

SSH ili Secure Shell je kodirana metoda daljinskog upravljanja računalom. SSH je izgrađen za rad uglavnom na UNIX operativnim sustavima (Linux, xBSD, OS X). Također se može koristiti na operativnom sistemu Windows, ali to zahtijeva softver treće strane. Sam SSH svoj rad bazira na kombinaciji simetrične i asimetrične kriptografije, kako bi se omogućio što sigurniji prijenos podataka. Postoje dvije verzije SSH protokola, a to su SSH1 i SSH2.

SCP ili Secure Copy je kodirana metoda prijenosa datoteka preko već uspostavljene SSH veze. Secure Copy omogućuje kopiranje kriptiranih podataka između dva udaljena računala. Također SCP ne zahtijeva neke dodatne instalacije na udaljenom računalu, već rad bazira na SSH protokolu, te kao takav koristi SSHD poslužitelj. SCP je najkorisniji sa unaprijed uspostavljenom SSH vezom, ali ako nemamo unaprijed uspostavljenu SSH vezu tada je puno bolje koristiti SFTP jer nam pruža puno više opcija. Jedan od najpoznatijih programa koji se bazira na SCP-u je WinSCP koji radi na Windows operativnim sustavima (Win 95,/98/NT/2000/ME/XP).

SFTP je kratica za Secure File Transfer Protocol. To je kodiran način prijenosa datoteka između dva računala. Međutim za razliku od FTP protokola, SFTP kriptira naredbe i podatke koji se prenose kako bi se zaštitili povjerljivi podaci.


--nigolub 11:03, 12. lipnja 2013. (CEST)


SSH

Uvod

Tema ovog djela seminara bit će SSH protokol. Svrha ovog protokola je sigurnost podataka preko interneta, na način da se sami podaci kriptiraju. Protokol je do sad ima tri verzije, i to 1.3, 1.5 i posljednja 2.0. Verzija 1.3 nastala je 1995 godine, kasnije nakon toga i verzija 1.5. Posljednja verzija 2.0, nastala je 1996 godine. Pošto je u startu SSH bila usluga koja se plaćala, 1999. godine organizacija pod nazivom OpenBSD napravila je svoj alat, pod nazivom OpenSSH, koji je omogućavao besplatno korištenje.

Način enkripcije

Postoje dva načina enkripcije. simetrična enkripcija i asimetrična. Simetrična koristi jedan tajni ključ, dok asimetrična enkripcija koristi parove javnih i privatnih ključeva, za dekriptiranje. Algoritmi koji se koriste kod simetrične enkripcije su: AES, DES, 3DES, Blowfish, Arcfour. Prednost same simetrične enkripcije je to da je vrlo brza i preporuča se za veće količine podataka. Problem kod simetrične enkripcije je razmjena tajnog ključa. Pa se za razmjene ključeva koristi Diffie-Hellman algoritam, koji kriptira taj tajni ključ pomoću operacija višestrukog potenciranja, pa je za probijanje ovakvog načina kriptiranja potrebno izvesti operacije logaritmiranja. Čim je ključ veći to je više vremena potrebno da se probije. Kod asimetrične enkripcije koriste se dva para ključa sa svake strane, jedan je javni a jedan tajni. Javni ključ služi da se prema određenoj osobi šalje kriptirani sadržaj, i samo ta osoba svojim privatnim ključem može dekriptirati sadržaj. U ovom slučaju je problem da osoba koja prima sadržaj ne zna od koga on potječe, pa se za tu svrhu, da bi se identificirali korisnici s jedne i druge strane koristi se funkcija hash (sažimanje) i digitalni popis. U ovom slučaju to su: DSA, i RSA algoritmi, i oni se koriste u većini slučajeva.

Funkcioniranje SSH konekcije

Sama arhitektura SSH protokola funkcionira na temelju klijent / server načinu rada. Sam klijent šalje upit za povezivanje na TCP port 22 na serveru, kad server identificira korisnika, on uspostavlja SSH vezu, automatski kriptira vezu te kad se prijenos završi prekida vezu.


Kijent server.jpg


Slika je preutea sa: http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2009-08-272.pdf


Pošto je SSH 2006. godine postao IETF standard, cijela arhitektura bila je definirana RFC dokumentima. RFC je kratica za Request For Comments, i definira 4 dokumenta: RFC4251, RFC4252, RFC4253 i. RFC4254. RFC4251 se odnosi na arhitekturu protokola, RFC4252 se odnosi na autentifikacijski sloj, RFC4253 odnosi se na transportni sloj, RFC4254 se odnosi na konekcijski sloj. Pa prema tome možemo reći da se SSH komunikacija vrši u tri sloja.

TRANSPORTNI SLOJ

Povezuje se sa poslužiteljem, i provjerava autentičnost, osigurava da podaci koji se prenose budu sigurni i da budu vjerodostojni, odnosno, da ono šta smo poslali , je i ono šta je druga strana dobila. Uz to što služi za prijenos, može poslužiti i za samu kompresiju podataka.

AUTENTIFIKACIJSKI SLOJ

To je sloj koji služi da bi se identificirao korisnik koji se želi spojiti na server i provjerilo dali on se ima pravo spojiti ili ne. Ta provjera može se vršiti na više načina: digitalni potpis, javnih i privatnih ključeva, putem kriptiranih lozinka, itd… Naravno sama provjera se vrši tek kad veza transportnog sloja već postoji sa serverom.

KONEKCIJSKI SLOJ

Možemo ga opisati kao sloj za izvođenje naredbi i prijenosa podataka na daljinu. To su npr. shell naredbe, pa onda sustav za prijenos scp i sftp, prosljeđivanje mrežnih prometa (port forwarding), itd.

SCP (Secure Copy Protokol)

Ovaj protokol nastao je kombinacijom RCP i SSH protokola. Sam RCP služi za kopiranje datoteka sa klijenta na server, dok SSH služi da se te datoteke kriptiraju i tunelliraju. Pošto se koristi SSH protokol, ovisno o načinu kriptiranja veze koju smo definirali, možemo napraviti spajanje. SCP protokol se puno koristi na Linux/Unix operativnim sustavima i to većinom iz naredbenog retka, dok na Windows sustavim postoje pristupačnija rješenja, tipa WinSCP program, čije funkcioniranje ćemo kasnije prikazati u praktičnom obliku.

SSH i WinSCP praktični dio

Da bi se mogao praktično prikazati korištenje SSH protokola i SCP-a, bilo je potrebno konfigurirati na računalu SSH server. To smo učinili pomoću programa freeSSHd. Nakon toga nam je potreban alat puttygen, koji nam je služio za kreiranje javnog i privatnog ključa, i na kraju program putty s kojim smo napravili SSH konekciju pomoću privatnog ključa. Taj isti server kasnije smo iskoristili da bi napravili SSH konekciju sa WinSCP programom.

KONFIGURACIJA FreeSSHd SERVERA

Nakon instalacije programa, program moramo podesiti. Prvo se uključuje SSH server, ako kojim slučajem ga ne možemo pokrenuti, to je zato jer nam je port 22 zauzet, pa smo u ovom slučaju promijenili port u 25.


01 freeSSHd SSH server on.jpg


02 freeSSHd SSH server port.jpg


Na slici 2 vidi se gdje se mijenja port, na koje adrese dopuštamo spajanje, tu je složeno na sve. Broj konekcija smo složili na dvije, i znači da se istovremenom mogu spojiti samo dva klijenta. Banner message nam služi za da postavimo pozdravnu poruku koju klijent vidi kad se spoji.


Nakon toga podešavamo autentifikaciju servera. Tu podešavamo link na folder gdje će se nalaziti javni ključevi, te način na koji će se vršiti autentifikacija, u našem slučaju smo odabrali preko javnih ključeva.


03 freeSSHd SSH server autentifikacija.jpg


Slijedeća stavka je postavljanje početnog foldera na koji će postaviti program, u našem slučaju kasnije WinSCP.


04 freeSSHd SSH server polazni direktorij.jpg


Slijedeći korak je definiranje korisnika na serveru, te njihove opcije koje mogu koristi.


05 freeSSHd SSH server korisnici.jpg


KREIRANJE PARA KLJUČEVA PREKO PROGRAMA PuTTYGen


Nakon što smo podesili server potrebno je izgenerirati par ključeva, privatni i javni, koje ćemo koristiti kod spajanja na server. Za kreiranje ključeva koristili smo program PuTTY Key Generator. On funkcionira na način da kad kliknemo na gumb „generate“, on nam izgenerira privatni i javni ključ. Javni ključ nam prikaže gore u selektiranom prozoru, i taj ključ cijeli kopiramo i stavimo u notepad ili bilo koji drugi txt editor, te spremimo u folder gdje smo u prethodnom postupku definirali gdje će se nalaziti javni ključevi, i bitno je da se file zove onako kako smo definirali da se zove korisnik, a to je u našem slučaju „dodo“. Nakon što spremimo javni ključ, treba samo obrisati ekstenziju tog file-a, tj maknuti „.txt“. Kad smo to učinili moramo izgenerirati privatni ključ. To radimo na način da prvo upišemo pass frazu i kliknemo na „Save private key“ kojega možemo spremiti bilo kamo ali bitno da znamo gdje, jer će nam trebati kod spajanja na server.


06 PuTTY gen kreiranje javnog i privatnog kljuca.jpg


SPAJANJE NA SERVER PREKO PROGRAMA PuTTY


Sad nam slijedi spajanje na server pomoću programa PuTTY. Prvo nam slijedi upis ip adrese servera, i definiranje porta koji je kod nas 25.


07 PuTTY ip.jpg


Nakon toga u meniju lijevo dođemo do opcije SSH, i tu pomoću „Browse“ nađemo naš privatni ključ i otvorimo ga, te nakon toga kliknemo na tipku „Open“.


08 PuTTY privatni kljuc.jpg


09 PuTTY privatni kljuc open.jpg


Prikaže nam se novi prozor. Upisujemo korisničko ime koje smo postavili, nakon toga pass frazu i program nas postavi na folder koji smo mu definirali na serveru.


10 PuTTY login.jpg


11 PuTTY pass.jpg


12 PuTTY dir.jpg


SPAJANJE NA SERVER PREKO PROGRAMA WinSCP


Slijedeće što ćemo pokazati je korištene SCP protokola pomoću Windows alata WinSCP. Kad otvorimo alata, prvo podešavamo vrstu protokola koji ćemo koristiti, u našem slučaju SCP, nakon toga upisujemo ip servera, te port, i na kraju pokupimo onaj naš privatni ključ koji nam koristi za identifikaciju.


13 WinSCP login.jpg


Kad kliknemo na gumb „Login“, otvori nam se prozor gdje upisujemo korisničko ime koje smo definirali na serveru, pa upisujemo pass frazu, nakon toga pojavi nam se pozdravna poruka koju smo definirali, i kad kliknemo na „Continue“ program na prebaci u folder koji smo definirali na serveru da će biti početni.


14 WinSCP login username.jpg


15 WinSCP login pass.jpg


16 WinSCP login pozdrav.jpg


17 WinSCP login logirano.jpg


--Dario.petrinic 10:13, 12. lipnja 2013. (CEST)



SFTP

Općenito o SFTP-u

FTP ili "File Transfer Protocol" je najkorišteniji protokol za prijenos podataka već više od trideset godina, ali on ne nudi sigurnu vezu. SFTP ili "Secure File Transfer Protocol" ima mogućnost prijenosa kriptiranih podataka(datoteka) putem sigurne veze. Preporučuje se korištenje SFTP-a umjesto FTP kad god je to moguće. Većina „hosting providera“ nude podršku za SFTP veze, iako ih se ponekad treba kontaktirati da omoguće opciju SFTP-a na vašem računu.

SFTP dolazi u programskom paketu openssh te omogućuje siguran prijenos datoteka, funkcionalnost preko pouzdanih, dvosmjernih protoka podataka. To je standardni protokol za prijenos datoteka za korištenje SSH2 protokola.

--nigolub 12:31, 12. lipnja 2013. (CEST)


Povijest

Internet Engineering Task Force (IETF), koji je razvio SSH je također radio na protokolu za siguran prijenos datoteka. Sam protokol za siguran prijenos datoteka je izmijenjen nekoliko puta tijekom razvoja.

„IETF-ova radna skupina "Secsh" koja je bila odgovorna za razvoj SSH2 protokola (RFC 4251), također je pokušala izraditi funkciju za siguran prijenos datoteka. Kako je njihov rad napredovao tako su stalno
izlazile nove verzije. Kao je razvoj napredovao, opseg radne skupine „Secsh“ je proširen na pristup datotekama i upravljanje datotekama. Na kraju je razvoj zastao zbog toga što su neki članovi
odbora počeli gledati SFTP kao protokol za datotečni sustav, a ne samo pristup datotekama ili protokol za prijenos datoteka, što ga je stavilo izvan nadležnosti radne skupine „Secsh“.“

Izvor: http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol#History_and_development

--nigolub 11:32, 12. lipnja 2013. (CEST)


Mogućnosti i razvoj SFTP-a

SFTP kod korištenja podsjeća na FTP – ako se prijavite preko SFTP protokola na udaljeno računalo, čekaju vas standardne interaktivne komande –put, get, dir i slično – tko je već koristio FTP preko komandne linije ne bih trebao imati problema sa SFTP protokolom.

Pojavom grafičkog korisničkog sučelja (GUI) „običnim“ korisnicima je olakšan rad sa SFTP-em, u odnosu na SCP klijent. GUI zaustavlja potrebu za unošenjem naredbi, već traži i nudi puno lakši korisnički sustav. Također, prednost SFTP-a nad SCP-em je u tome što on nije kreiran samo za Unix, nego je dostupan za većinu platformi.

U odnosu na raniji SCP protokol, koji omogućuje samo prijenos datoteka, SFTP protokol omogućuje niz operacija na udaljenim datotekama - to je više kao daljinski datotečni sustav protokola. SFTP klijent ima dodatne mogućnosti u odnosu na SCP klijent koje uključuju nastavak prekinutog transfera i daljinsko uklanjanje datoteke.

SFTP pokušava biti neovisan od SCP-a. Dok se SCP najčešće koristi na Unix platformama, SFTP poslužitelji su obično dostupni na skoro svim platformama. Često se zna brkati sa Simple File Transfer Protocol-om.

Za većinu korisnika se preporučuje korištenje SFTP-a u grafičkom obliku – najčešće se koriste dva programa: FileZilla i WinSCP.


***FileZilla***


FileZilla je besplatan program za FTP, te jedan od jednostavnijih programa ove namjene. Samo sučelje je veoma jednostavno, te tko ima neka iskustva sa sličnim programima ne bih trebao imati problema oko korištenja.

Nakon što se pokrene FileZilla, potrebno je unjeti podatke vezane za FTP server, koje primimo kod aktivacije usluge. U "Host" dijelu se unese ftp točka, pa zatim naziv naše domene, npr. ftp.NašaDomena.com. Nakon toga unese se naše korisničko ime i password i spremni smo za rad.


Slika1. Filezilla sučelje


Program se može preuzeti na adresi: http://filezilla-project.org/




***WinSCP***


Program WinSCP je grafički SFTP klijent otvorenog koda i FTP klijent za operacijski sustav Windows. Glavna funkcija ovog programa je sigurno kopiranje datoteka između lokalnog i udaljenog računala.


Upravljanje datotekama

Program WinSCP može izvoditi radnje preuzimanja i učitavanjadatoteka. Također omogućuje preimenovanje datoteka i mapa, izrade novih mapa, izmjenu svojstava datoteka i mapa, kao i izradu simboličkih veza i prečaca.


Povezivanje s udaljenim računalom

WinSCP omogućuje povezivanje sa SSH (Secure Shell) poslužiteljem putem SFTP-a, SCP-a ili pomoću FTP-a. SFTP je dio paketa SSH-2, a SCP je dio paketa SSH-1. Oba protokola je moguće pokrenuti na starijim verzijama SHH jer WinSCP podržava i SSH1 i SSH2.


Sučelje programa

U programu WinSCP možemo izabrati jedno od dva ponuđena sučelja koja imaju velik broj konfiguracijskih opcija. Prilikom same instalacije programa imamo priliku odabrati koje sučelje želimo koristiti, ali ako nismo zadovoljni odabirom možemo naknadno u postavkama programa odabrati drugo sučelje. Jedno sučelje je nalik na windows explorer te se to sučelje preporučuje svim korisnicima koji koriste ovaj program po prvi put. Drugo sučelje je nalik na „Norton Commander“ te je to sučelje usredotočeno na jednostavnu kontrolu putem tipkovnice te nema potrebe za korištenjem miša.


Instalacija i korištenje

Sam program skidamo na adresi: http://winscp.net/eng/download.php klikom na „Installation package“.


Slika 2. Instalacija WinSCP-a



Kad se sam program skine, te se pokrene instalacija dobijemo prozor za odabir jezika.

Slika 3. Instalacija WinSCP-a



Kada odaberemo jezik, dobijemo novi prozor te na njemu kliknemo „Next“.

Slika 4. Instalacija WinSCP-a



Na sljedećem prozoru kliknemo na „I accept the agreement“ i kliknemo next.

Slika 5. Instalacija WinSCP-a



Zatim stavimo na „Typical installation“ te ponovno kliknemo next.

Slika 6. Instalacija WinSCP-a



Na sljedećem prozoru nas pita koje sučelje želimo. Ranije smo rekli da ako nemamo iskustva sa programima ovog tipa da je bolje uzeti „Explorer interface“ zbog njegovog jednostavnog sučelja.

Slika 7. Instalacija WinSCP-a



Nakon odabranog sučelja samo kliknemo na „Install“ i počinje instalacija programa na naše računalo.

Slika 8. Instalacija WinSCP-a




Na posljednjem prozoru stavimo kvačicu na „Launch WinSCP“ i kliknemo Finish.

Slika 9. Instalacija WinSCP-a




Kada završi instalacija pokrenemo program te dobijemo prozor u kojem unesemo svoje korisničke podatke te smo spremni za rad.

Slika 10. Instalacija WinSCP-a



Kada unesemo podatke otvori nam se sučelje koje izgleda kao na dolje navedenoj slici.

Slika 14. Explorer interface WinSCP-a

--nigolub 12:31, 12. lipnja 2013. (CEST)




Verzije SFTP-a

Tijekom razvijanja SFTP-a nastalo je 6 verzija protokola. Kao i kod svakog razvitka, tako i kod ovog svaka nova verzija je donosila nove opcije, poboljšanja te jednostavniji rad. U nastavku teksta su stavljeni linkovi koji prosljeđuju do detalja o svakoj od 6 verzija SFTP-a.


Verzije 0 - 2

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-10



Verzija 3

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-00



Verzija 4

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-03


Version 5

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-05


Version 6

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-06

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-10

http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13



Izvor: http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol#History_and_development

--nigolub 12:31, 12. lipnja 2013. (CEST)




ZAKLJUČAK

Tehnologija munjevitom brzinom napreduje, a najbrže i najviše od svih se razvijaju tehnologije povezane sa računalima. Međutim, svaki napredak ima svoje prednosti i nedostatke. U slučaju računalne tehnologije, to se manifestira sa upadima u sustav te krađom podataka. Kao zaštita, nužan uvjet za očuvanje sigurnog informacijskog sustava nam se nalažu razno razne kontrole pristupa i autentikacije korisnika. Zato smo u ovom radu obradili SSH, SCP te SFTP protokol, te neke od mogućnosti njihove primjene. Možemo zaključiti da je namjena ovih protokola omogućiti što sigurniju interakciju između dva računala. Na taj način se donekle uklanja najveći nedostatak mrežnih servisa, a to je nezaštićen prijenos podataka.

--nigolub 12:31, 12. lipnja 2013. (CEST)




Literatura


  1. http://bib.irb.hr/datoteka/449851.Diplomski_-_Kreimir_Petrovi_ISO19005-1-PDFA.pdf
  2. http://www.ipv-zg.hr/docs/studenti/ITS_skripta_final.pdf
  3. http://spvp.zesoi.fer.hr/seminari/2005/LevakKristina_ProtokoliZaPrijenosDatoteka.pdf
  4. http://dkorunic.net/pdf/Servisi-sigurnost.pdf
  5. http://www.riteh.uniri.hr/zav_katd_sluz/zr/nastava/primrac/download/vjezbe/Linux3.pdf
  6. ftp://ftp.storm.hr/Upload/Teldat_privremeno/Teldat_dokumentacija/eng/..%5Cdocumentacion%5CManuales%2010.7%5CDm787%5CDm787-Iv10-70_SSH_Protocol.pdf
  7. http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2009-08-272.pdf
  8. https://en.wikipedia.org/wiki/Secure_Shell
  9. http://programmingbaba.com/wp-content/uploads/2013/05/p19715.gif
  10. http://bib.irb.hr/datoteka/343904.Analiza_i_simulacija_SSH_protokola.pdf
  11. http://www.cis.hr/dokumenti/mrezni-protokoli-za-razmjenu-datoteka.html
  12. http://kb.iu.edu/data/akqg.html
  13. http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol#History_and_development
  14. http://www.infinius.hr/blog/category/internet/sigurnost-na-internetu/page/5/
  15. http://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/draft-ietf-secsh-filexfer-13.txt
  16. http://winscp.net/eng/download.php



--Dario.petrinic 10:21, 12. lipnja 2013. (CEST) --nigolub 13:14, 12. lipnja 2013. (CEST)

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima