Protocolul SSH
Protocolul SSH.
Protocolul SSH.
Avantajele protocolului SSH.
Utilizarea protocolului SSH.
Securizarea protocolului SSH.
Ce este protocolul SSH?
SSH (Secure Shell) este un protocol de nivel
aplicație care permite accesul securizat la un
sistem remote. Poate fi utilizat pentru
administrarea remote a calculatorului și
transfer de fișiere.
După funcționalitatea sa, SSH se aseamănă
cu protocoale Telnet și rlogin, însă, spre
deosebire de ele, SSH criptează tot traficul
de date.
Istoria SSH.
SSH-1 a fost creat da către colaboratorul
Universității Tehnice din Helsinki, Tatu
Yl'nen, în anul 1995 ca o alternativă
securizată protocoalelor Telnet, rlogin și rsh.
În 1996 a fost creeată versiune SSH-2,
incompatibilă cu SSH-1, însă mult mai
securizată. În 2000, protocolul SSH era
utilizat pe peste 2 milioane de calculatoare.
În 2006 SSH-2 a fost adoptat ca standard de
către IETF.
De ce SSH?
Protocoalele Telnet și rlogin au următoarele
dezavantaje:
Datele și parolele nu se criptează;
Datele transmise pot fi liber interceptate și
modificate de terța parte;
Atacatorul poate sa se autentifice pe server,
utilizînd hash-ul parolei utilizat mai devreme.
Poate fi utilizat pentru transmiterea datelor
oricărui alt protocol de nivel aplicație.
SSH este un protocol securizat.
Spre deosebire de Telnet și rlogin, SSH conține
următoarele metode de securizare:
Utilizează criptarea asimetrică pentru
informația de autentificare a utilizatorului
(algoritmele RSA, DSA);
Utilizează criptarea cu cheia simetrică pentru
datele transmise (algoritmele AES, Blowfish,
3DES);
Verifică integritatea datelor transmise
(SSH-1 – CRC32; SSH-2 – SHA1, MD5).
Cum utilizăm SSH?
Pentru a utiliza SSH, avem nevoie de server
SSH și client SSH.
Serverul SSH ”ascultă” conexiunile de șa
clienți pe un port specificat (de obicei, portul
TCP nr. 22), execută comenzile primite și
transmite rezultatul clientului.
Clientul SSH se utilizează pentru
conectarea la serverul SSH și transmiterea
comenzilor către serverul SSH.
Servere SSH.
Există mai multe realizări a serverului SSH,
pentru diferite sisteme de operare și diferite
platforme:
Linux: dropbear, lsh-server, openssh-server,
ssh.
MS Windows: freeSSHd, OpenSSH sshd,
WinSSHD, ProSSHD, Dropbear SSH
Server.
Clienți SSH.
Există mai multe realizări a clientului SSH,
pentru diferite sisteme de operare și diferite
platforme:
Linux: ssh, putty, openssh-client, lsh-client.
MS Windows: PuTTY, SecureCRT,
SSHWindows, ProSSHD, ZOC, ShellGuard.
MacOS: Nifty Telnet SSH.
Symbian OS: PuTTY.
Java: MindTerm, AppGate Security Server.
Metode de autentificare prin
SSH.
SSH suportă următoarele metode de
autentificare:
prin adresa clientului;
prin cheia publică a utilizatorului;
Prin parolă.
Autentificarea prin adresa
clientului.
Autentificarea este reușită, doar dacă adresa de
pe care este efectuată conexiunea este în ista
hosturilor permise. Lista hosturilor permise se
află în fișierele /etc/[Link] și
/etc/ssh/[Link].
Se recomandă ca serverul să fie setat astfel încît
să verifice cheile RSA a clienților, astfel
protejîndu-se de falsificarea adresei clientului.
În acest caz, serverul va căuta adresa și cheia
corespunzătoare în fișierul
/etc/ssh/ssh_known_hosts
Autentificarea prin cheia publică
a utilizatorului.
Este identică autentificării după adresă, însă
se verifică nu adresa a hostului de pe care
se efectuează conexiunea, ci cheia publică
și numele utilizatorului.
Fiecărui utilizatori pe server îi corespunde o
cheie publică. Dacă clientul are cheia
privată ce corespunde cheii publice a
utilizatorului respectiv, autentificarea este
reușită.
Autentificarea prin parolă
Clientul și servereul produc schimbul de chei
asimetrice.
După aceasta, către server se transmite hash-
ul parolei criptat cu cheia privată a clientului.
Cum ne conectăm?
În Linux sau FreeBSD, formatul comenzii de
conectare este următorul:
$ ssh [opțiuni] utilizator@host
În MS Windows, putem utiliza programul
PuTTY, care are o interfața grafică simplă și
intuitivă pentru setarea conexiunii.
SFTP - o versiune securizată de
FTP
Permite ca și FTP copierea de fișiere de pe o
mașină pe alta, diferența fiind că în cazul
SFTP tunelul prin care se desfășoară
comunicația este criptat. SFTP se rulează în
felul următor:
# sftp user1@remote_server
și implementează majoritatea comenzilor pe
care FTP le implementează. Este pur și
simplu același lucru însă într-un tunel criptat.
SCP - copierea securizată de
fișiere.
SCP se rulează din linia de comandă și
permite copierea oricărui fișier sau director
de la sau către o mașină remote.
Exemplu de utilizare:
# scp fiș[Link] user1@remote_server:~/
# scp user1@remote_server:~/[Link] .
Există programe cu interfața grafică pentru
SCP, de ex. Krusader pe Linux, WinSCP pe
Windows.
Tunele VNC prin SSH
Exemplul următor permite unui utilizator să se
conecteze la o sesiune existentă X11 pe o
mașină Linux.
Pornim tunelul ssh de pe mașina locală către
server astfel:
# ssh -L 5900:localhost:5900 [user]@[linux-
box]
Pornim orice tip de VNCVIEWER și ne
conectăm pe localhost portul 5900.
X11 - rularea de aplicații grafice
de la distanță.
Forwardarea protocolului X ne poate permite
să rulăm aproape orice aplicație X de la
distanță, fără a ne compromite securitatea
muncii pe care o depunem. Este de ajuns să
ne conectam pe mașina respectiva cu
opțiunea -X:
# ssh -X user1@remote_server
Astfel afișarea tuturor aplicațiilor ce necesită
X11 executate de acum încolo vor fi
forwardate pe serverul X11 local.
Recomandări pentru securizare
SSH.
Interzicerea accesului cu drepturi de
administrator.
Interzicerea conectării cu parola nulă.
Utilizarea portului diferit de 22 pentru server
SSH.
Limitarea adreselor de pe care este permisă
conexiune.
Verificarea frecventă a mesajelor de
autentificare eronată.
Mulțumesc pentru atenție!