Source:http://www.lysator.liu.se/~nisse/lsh/lsh.html
Acest document descrieLSH
programe şi servicii conexe.
LSH
suită de programe este conceput ca un înlocuitor gratuit pentrussh
suită de programe. La rândul său,ssh
a fost conceput ca un înlocuitor sigur pentrursh
şirlogin
programe pentru autentificare de la distanţă prin Internet.
LSH
este o componentă aGNU sistemului.
Acest manual explică modul de utilizare şi de hackLSH
, ea corespunde cu
LSH
versiunea 2.0.
Ce este acest lucru numit de securitate ale calculatorului oricum? De ce ar doriţi să utilizaţi un program cum ar fiLSH
?
Acest capitol explică ameninţărileLSH
incearca pentru a vă proteja de la, şi unele dintre ameninţările care rămân. El descrie, de asemenea, unele dintre tehnologiile utilizate înLSH
.
Din timp în timp în acest manual, voi vorbi despreinamic. Aceasta înseamnă că oricine încearcă să trage cu urechea sau perturba comunicarea private. Această utilizare este de natură tehnică, şi nu implică faptul că inamicul este oarecum inferior punct de vedere moral pentru dvs.: duşmanul pot fi unii criminali încercarea de a trage cu urechea îngrozitor pe tine, sau poate fi poliţia încearcă să trage cu urechea pe criminali aceeaşi.
Inamicul poate fi un criminal, sau de un concurent, sau seful tau, care încearcă să afle cât de mult vă spun colegii sai de la firmele concurente. Acesta poate fi propriul dvs. sau altcineva de funcţionarii de securitate naţională. Sau pe fostul iubit, care se intampla sa fie prea curios.
Deci, ceea ce poate face pentru a inamicului de comunicaţii şi confidenţialitatea? Amintiţi-vă că doar pentru ca esti paranoic, care nu înseamnă că nimeni nu este încercarea de a te...
Atunci când vă conectaţi la unele altă maşină prin intermediul internetului, fie în aceeaşi clădire sau un continente câţiva paşi, sunt mai multe lucruri care pot fi sub atac inamic.
Şi chiar şi fără anomalii de rutare, este posibil ca inamicul a fost în măsură să preia controlul de unele maşini din apropiere, şi pot asculta în de acolo. Desigur, interceptarea pasiv este mai periculos dacă transmite parole text clar. Acesta este motivul principal de a nu folosi telnet vanilie să vă conectaţi la sistemele de la distanţă. Utilizaţi un telnet cu suport pentru
SSL sau Kerberos, sau de a folosi un program caLSH
sau
ssh
.
Un spargatori de coduri pasiv se presupune să nu facă nimic urât cu pachete dvs, dincolo de a le asculta.
LSH
nu face nici o încercare de a vă proteja de atacuri locale. Trebuie să aibă încredere în maşinile final. Se pare că într-adevăr dificil să susţină orice de securitate în cazul în care maşina locală este compromisă. Acest lucru este important de a păstra în minte în "vizitator"-scenariu, în cazul în care vă vizitaţi un prieten sau poate o cafenea Internet şi doriţi să vă conectaţi la unele dintre maşinile de la domiciliu sau la locul de muncă. În cazul în care inamicul a fost în măsură să compromită dvs. prieten sau echipamente de cafenea, este posibil să fi bine în necazuri.
Protecţia împotriva denial-of-service atacuri este, de asemenea, o problemă foarte dificilă, şiLSH
nu face nici o încercare de a vă proteja de asta.
În schimb, în scopul deLSH
, şi instrumentele cele mai grave pentru protecţia criptografică a comunicaţiilor în întreaga reţea, este de a izola vulnerabilităţilor la puncte finale de comunicare. Dacă ştiţi că obiective sunt în siguranţă, inamicul nu ar trebui să poată să compromită confidenţialitatea dvs. sau de comunicaţii. Cu excepţia denial-of-service atacuri(care, cel puţin nu poate fi efectuată fără să remarcaţi acest lucru).
Mai întâi de toate,LSH
oferă protecţie împotriva trage cu urechea pasivă. În plus, dacă vă luaţi măsurile necesare pentru a se asigura că sunt hostkeys autentificat corect,LSH
, de asemenea, protejeaza impotriva man-in-the-middle atacuri şi, în special împotriva atacurilor de pe rezoluţia de nume. Pe scurt, ai nevoie doar de încredere de securitate de la punctele de final: Chiar dacă inamicul controlează toate celelalte echipamente de reţea, rezolutia de nume şi de infrastructura de rutare, etc, el nu poate face nimic dincolo de atac denial-of-service.
Şi în cele din urmă, amintiţi-vă că nu există nici un lucru, cum ar fi securitatea absolută. Trebuie să estimeze valoarea a ceea ce sunteti protecţia, precum şi adaptarea măsurilor de securitate, astfel încât inamicii nu-l va găsi merita efortul pentru a le sparge.
LSH
nu doar oferă înlocuitori mai sigur pentru
Telnet
,rsh
şirlogin
, acesta oferă, de asemenea, câteva alte caracteristici pentru a face convenabil pentru a comunica în siguranţă. Această secţiune este de aşteptat să crească cu timpul, ca mai multe caracteristici de la dorinţa de-listă se adaugă LSH. Un gol pentruLSH
este de a face rezonabil de uşor să-l prelungească, fără să vă încurcaţi cu funcţionalitate de securitate de bază.
LSH
poate fi, de asemenea, utilizat în ceva numit modul de gateway-ul, în care poţi autentifica o dată şi a stabilit o conexiune care ulterior pot fi utilizate pentru crearea rapid noi sesiuni culshg
(a se vedea Invocarea lshg).
LSH
poate fi configurat pentru a permite autentificare pe baza unui personal-cheie pereche constând dintr-un privat şi o cheie publică, astfel încât să puteţi executa comenzi de la distanţă fără a tasta parola ta de fiecare dată. Există, de asemenea, suport experimental pentru Thomas Wu protocol Secure Remote Parola(SRP). Suport Kerberos este pe lista de dorinte, dar care nu sunt încă acceptate(a se vedea Kerberos).
Metodele publice-cheie de autentificare ar trebui să fie, de asemenea, extins pentru a sprijini infrastructura simplă Public Key(SPKI) certificate, inclusiv un mecanism de a delega login-uri restricţionate.
Transmiterea de arbitrareTCP/ IP este furnizat conexiuni. Acest lucru este util pentru tunelare protocoale altfel nesigure, cum ar fi telnet şi pop, printr-o criptatLSH
conexiune.
LSH
are de asemenea oSOCKS-proxy, care va ofera de asemenea tunel deTCP/ IP conexiuni, dar pot fi folosite cu uşurinţă, de exemplu, din cadrul browsere web populare cum ar fi Mozilla Firefox şi pentru traficul web tunelare. Există, de asemenea, programe cum ar fi
tsocks
care efectuează redirecţionarea transparente de acces la reţea printr-unSOCKS proxy.
Convenabil tunel deX a fost una dintre caracteristicile cele mai impresionante ale originaluluissh
programe. AtâtLSH
şi
lshd
sprijinX-forwarding, deşilshg
nu.
WhanX de expediere este în vigoare, procesul de la distanţă este pornit într-un mediu în careDISPLAY
variabila în punctele de mediu la un falsX server, conexiunile la care sunt trimise laX server în mediul local.LSH
creează, de asemenea, un nou "fals "MIT-MAGIC-COOKIE-1
pentru controlul de control al accesului. Tau realX datele de autentificare nu este trimis la masina de la distanţă.
Alte tipuri de tunelare care se poate dovedi a fi utilă includ autentificare(de exemplussh-agent
), transmiterea generală de
UDP, si de ce nu, de asemenea, general deIP-tunel.
Acest Sectii descrie câteva alte programe şi tehnici legate de
LSH
. Familia de ssh de programe de utilizare în mare parte acelaşi tip de securitate caLSH
. Kerberos şiIPSEC funcţionează destul de diferit, în special atunci când vine vorba de protecţia împotriva man-in-the-middle atacuri.
ssh-1.x
Primul a programelor de coajă Secure a fost Tatu Ylnen luissh
. Cel mai recent de versiunea 1 serie estessh-1.33
, care vorbeşte despre versiunea 1.5 a protocolului. "Liberă" versiune dessh-1.33
nu permite utilizarea în scopuri comerciale fără licenţă suplimentare, ceea ce face
ssh-1.33
software ne-liber în conformitate cu liniile directoare Debian Free Software şi Open Source Definition.
Versiunea de 1 Protocolul are unele puncte slabe subtile, în special, tot sprijinul pentru utilizarea cifrurilor flux a fost dezactivată în mod implicit câteva versiuni înapoi, din motive de securitate.
Există, de asemenea implementări libere dessh-1
, atât pentru Unix si Windows.ossh
şi mai târziu OpenSSH sunt derivate din versiunea anterioară de bulevard Tatu Ylnen luissh
, si sunt software liber.
ssh-2.x
SSH2
implementează următoarea generaţie de protocol Secure Shell, a cărei dezvoltare este supravegheată de cătreIETF
Grupul secsh de lucru. În afarăLSH
, unele implementari bine cunoscute din acest protocol include
SSH2
serie de programe proprietare vândute de către societatea SSH.LSH
interopereaza cu versiunile curente ale acestor programe, dar nu cu versiunea 3.0 şi anterioare(versiunile mai vechi obţine unele detalii privind protocolul de greşit, probabil pentru că a precedat caietul de sarcini protocol). Licenţa pentru compania SSH de
SSH2
programe este similar cu cel pentru versiunile recente ale
ssh1
, dar cu o definire mai restrânsă de "non-comercial".
chit
, un serviciu gratuitssh
punere în aplicare pentru Microsoft Windows.
Există un numeroase alte implementări, atât libere şi de proprietate. Lista de mai sus este departe de a fi completă.
Kerberos este un sistem de distribuţie cheie iniţial dezvoltat la sfarsitul anilor 1980: E ca o parte a proiectului Athena de laMIT. Dezvoltarea recente au fost efectuate la Institutul Regal de Tehnologie, Stockholm(KTH).
Kerberos foloseşte o centrală sigura bilet de acordare de server, şi necesită mai puţină încredere cu privire la masinile locale în sistem. Ea nu utilizează publice-cheie de tehnologie.
De obicei, susţinerea Kerberos este compilat în aplicaţii cum ar fi Telnet, FTP şi X-clienti. Familia de ssh de programe, pe de altă parte, încearcă să facă tot magie necesare, de exemplu, de a transmiteX în siguranţă, şi apoi oferă general,TCP/ IP de expediere ca o chiuveta de bucatarie.
Cred că "Kerberos şi protecţia împotriva LSH interceptarea pasive sunt în mare parte echivalente. Diferenţa este în setul de maşini şi ipoteze trebuie să ai încredere în scopul de a fi în siguranţă de la un om-in-the-middle atac.
Cred că principalul avantaj alLSH
peste Kerberos este că este mai uşor de instalat şi de a folosi pentru privind ghidul de muritor de rând. Pentru a configura tasta de schimb între două sisteme diferite Kerberos(sauKerberos taramurile), operatorii de sistem trebuie să facă schimb de chei. În cazul a doi utilizatori mod aleatoriu de la două site-uri aleatoare, înfiinţareaLSH
sau un alt program în familie ssh este probabil mai uşor decât pentru a obţine operatorii să petreacă timp şi atenţie. Deci,LSH
ar trebui să fie mai uşor de utilizat într-un anarhist iarbă-rădăcini mediu.
O altă perspectivă este de a combina caracteristici cum ar fi sshX şi TCP/ IP de expediere cu autentificare bazate pe Kerberos. Un astfel de aranjament poate oferi cele mai bune lucruri din două lumi pentru cei care se întâmplă să aibă un cont la o adecvat bilet de acordare server.
IPSEC este un set de protocoale pentru protejarea generală IP de trafic. Acesta este dezvoltat de un altIETF grup de lucru, şi este, de asemenea, o parte necesară aIP versiunea 6.
Din nou, principala diferenţă dintreIPSEC, Kerberos şi ssh este un set de maşini care trebuie să fie sigure şi tastele care trebuie să fie schimbate pentru a evita om-la-mijloc-atacuri.
Protocoale de curent şi implementări deIPSEC oferi doar autentificarea de maşini; nu e nimic analog cu autentificarea utilizatorului în ssh sau Kerberos.
Pe de altă parte,IPSEC oferă un avantaj distinct asupra criptare nivel de aplicaţie. DeoareceIP şiTCP anteturile sunt autentificate, oferă protecţie împotriva unor atacuri denial-of-service. În special, se face că atacurile hangup cauza uneiTCP conexiune mult mai dificilă.
Deci, este logic să folosească atâtIPSEC şi de un anumit nivel criptografic aplicarea protocolului.
De asemenea, reţineţi că este posibil să utilizaţiprotocolul Point-to-Point (PPP) pentru a arbitrar tunelIP de trafic peste o conexiune ssh. Acest aranjament ofera unele dintre funcţionalitatea de IPSEC, şi este uneori menţionată ca "un om sărac de Virtual Private Network".
Sunteţi instalaţiLSH
cu obişnuită./ configure & & make & & make install
. Pentru o listă completă cu opţiunile pe care le pot da pentru a
configura
, utilizaţi/ configure- help.
. De exemplu, utilizaţi
- fără a-PTY
pentru a dezactiva PTY-suport.
Opţiunea cea mai frecvent utilizată este- prefix
, care spune în cazul în care configuraţi LSH ar trebui să fie instalat. Prefix implicit este
/ usr/ local
.Lshd
server este instalat în
$ prefix/ sbin
, toate celelalte programe şi script-urile sunt instalate în
$ prefix/ bin
.
Scriptul configure încearcă să dau seama dacă linker-ul are nevoie de orice opţiuni speciale precizând în cazul în care pentru a găsi biblioteci legate dinamic de la momentul execuţiei(un caz în cazul în care acest lucru contează este dacă aveţi un libz.so dinamică instalate într-un loc non-standard). De obicei, aveţi posibilitatea să utilizaţi
/ Configure- with-lib-path=/ opt/ lib:./ Alte/ loc
pentru a specifica directoarele suplimentare bibliotecă, şi scriptul configure ar trebui să facă ceea ce trebuie. Dacă acest lucru nu funcţionează, sau credeţi că ştiţi dumneavoastră mai bine decât sistemul/ configure.
, situat la doar LDFLAGS şi/ sau LD_LIBRARY_PATH la valorile de dreapta în loc.
Această secţiune vă arată cum a efectua unele activităţi comune utilizând
LSH
suită de programe, fără să acopere toate opţiunile şi posibilităţile.
Mai multe dintre programele de LSH nevoie de un generator de pseudorandomness bun pentru funcţionarea în siguranţă. Primul lucru ce trebuie să faceţi este de a crea un fişier de seminţe pentru generatorul. Pentru a crea un fişier de seminţe personale, stocate ca
~/.lsh/ coada soricelului-seminţe de-fişier
, executaţi
LSH-make-seminţe de
Pentru a crea un fişier de seminţe pentru a fi utilizate de cătrelshd
, rulaţi
LSH-fac-seminţe- server
ca root. Seminţe de fişier este stocat ca
/ var/ spool/ LSH/ coada soricelului-seminţe de-fişier
.
LSH
Noţiuni de bazăLSH
este programul pe care îl utilizaţi pentru conectarea la un aparat corespondent. Câteva exemple sunt:
LSH sara.lysator.liu.se
Se conectează lasara.lysator.liu.se
şi începe un shell interactiv. În acest exemplu, şi în restul de exemple din această secţiune, LSH va solicita parola ta, dacă nu aveţi publice-cheie de autentificare ghidul de configurat.
Prima dată când încercaţi să vă conectaţi la o maşină nouă,LSH
de obicei, se plânge despre o "cheie pentru gazda necunoscut". Acest lucru se datorează faptului că nu are motive să creadă că a fost maşina de dreapta care au răspuns, şi nu o maşină controlată de inamic(a se vedea Ameninţări). Comportamentul implicit este sa nu accepte niciodată un server care nu este autentificat corect. O maşină este considerat autentic în cazul în care urmează protocolul şi are un ACL-intrare pentru hostkey sale publice care figurează în
~/.lsh/ gazdă-ACL-uri
.
Pentru a face LSH mai puţin paranoic, folosiţi
LSH- desfundat-gazdă-autentificare sara.lysator.liu.se
Apoi,LSH
va afişa oamprenta de cheie gazdă al maşinii de la distanţă, şi să te întreb dacă aceasta este corectă. Dacă este aşa, aparatul este considerat autentic şi un corespunzător ACL-intrare este anexată la dosar~/.lsh/ captured_keys
. Aveţi posibilitatea să copiaţi intrări ACL-aţi verificat la~/.lsh/ gazdă-ACL-uri
.
Puteţi utiliza chiar şi
LSH- desfundat-gazdă autentificare- captare de-a ~/.lsh/ gazdă-ACL-uri
pentru a obţineLSH
să se comporte mai mult ca tradiţionalessh
programului.
LSH-l Omar sara.lysator.liu.se
Conectează, la fel ca mai sus, dar încearcă să vă conectaţi ca ghidul de "Omar".
LSH sara.lysator.liu.se tar cf- unele dir/ |(cd/ target/ dir & & tar-xf-)
Copiază un director de la maşina de la distanţă, prin executarea de la distanţă, şi una localăgudron
proces şi conducte-le împreună.
CVS_RSH LSH= cvs-d cvs.lysator.liu.se:/ CVSROOT/ LSH co LSH
Controale înLSH
codul sursă dinCVS
depozit.
LSH-G-B sara.lysator.liu.se
Deschide o conexiune ssh, creează un "soclu poarta", şi furculiţe în fundal.
lshg sara.lysator.liu.se
creează o nouă sesiune folosind un soclu gateway-ul existent, fără aeriene pentru un schimb cheie nouă şi fără a cere nici o parolă.
O caracteristică utilă deLSH
şi alte programe cum ar fi ssh-este abilitatea de a transmite conexiuni arbitrare în interiorul conexiune criptată. Există două variante: "local" şi "la distanţă" de expediere.
Un exemplu de expediere locale este
LSH-L 4000: kom.lysator.liu.se: 4894 sara.lysator.liu.se
Acest lucru faceLSH
asculta pe portul 4000 privindlocale
maşină. Când cineva se conectează,LSH
solicită server pentru a deschide o conexiune de ladistanta maşinii(de exempluSara
) la portul 4894 pe o altă maşină(de exemplu,Kom
). Cele doua conexiuni prin conducte sunt împreună, folosind un canal criptat.
Exista cateva lucruri pe care ar trebui să fie remarcat aici:
LSH
doar ascultă pe interfata loopback, clientii aşa numai pe aceeasi masina poate utiliza tunel. Pentru a asculta pe toate interfeţele, utilizează-g
de pavilion.
LSH
ascultă pe.
Sara
, în acest exemplu.
sara
laKom
.
Numai partea de mijloc este protejat deLSH
: toate datele care curge prin tunel este trimis în prima parte şi ultima, în clar. Deci, de expediere nu oferă o protecţie mult excepţia cazului în care efectul tunel şi masina tinta final sunt aproape unele de altele. Acestea ar trebui să fie, de obicei, fie aceeaşi maşină, sau două maşini conectate printr-o reţea locală care este de încredere.
LSH
vă ajută să obţineţi prin intermediul firewall-ul intr-un mod securizat.
LSH
este de a face. În exemplul de mai sus, un tunel este configurat, darLSH
va începe, de asemenea, un shell interactiv pentru tine. La fel ca în cazul în care-L
opţiune nu a fost prezent. Dacă acest lucru nu este ceea ce doriţi,N-
sau
-B
opţiune este pentru tine(a se vedea Invocarea LSH)
Transmiterea la distanţă este similară, dar solicităde la distanţă maşina pentru a asculta pe un port. Un exemplu de expediere de la distanţă este
LSH-g-R 8080: localhost: 80 sara.lysator.liu.se
Aceasta solicită maşina de la distanţă pentru a asculta pe portul 8080(reţineţi că nu sunt, probabil, autorizate pentru a asculta pe portul 80). Ori de câte ori cineva se conectează, conexiunea este tuneluri la maşina dvs. locale, si a regizat la portul 80 pe aceeaşi maşină. Notă utilizarea de-g
, efectul este de a permite oricui în lume să utilizeze tunel pentru a vă conecta la serverul de web local.
Aceleaşi consideraţii care se aplică în porturile transmise locale se aplică, de asemenea, transmis în porturile de la distanţă.
În sfârşit, aveţi posibilitatea să utilizaţi orice număr de-L
şi-R
opţiuni în linia de comandă aceeaşi.
lshd
Noţiuni de bazăNu există fişiere de configurare la nivel mondial pentrulshd
, toate de configurare se face cu opţiuni de linie de comandă(a se vedea Invocarea lshd).
Pentru a rulalshd
, trebuie să creaţi mai întâi un hostkey, de obicei stocate în
/ etc/ lsh_host_key
. Pentru a face acest lucru, rulaţi
LSH-keygen- server | LSH-writekey- server
Acest lucru va crea, de asemenea, un fişier/ etc/ lsh_host_key.pub
, care conţin cheia publică corespunzătoare.
O linie de comandă tipic pentru pornirea lshd în modul daemon este pur şi simplu
lshd- daemonic
Puteţi găsi script de iniţializare pentrulshd
adaptate pentru Debian GNU şi RedHat lui/ Linux încontrib
directorul.
De asemenea, este posibilă de a lăsainit
începelshd
, adăugându-l în/ etc/ inittab
.
Publice-cheie de autentificare a utilizatorilor este o modalitate de autentificare pentru autentificare, fără a fi nevoie să tastaţi orice parole. Există două etape: Crearea unei perechi de chei, şi de autorizare cheia publică a sistemelor în cazul în care doriţi să vă conectaţi inch
Pentru a crea un keypair, rulaţi
LSH-keygen | LSH-writekey
Acest lucru poate dura ceva timp, dar în final se creează două fişiere
~/.lsh/ identitate
şi~/.lsh/ identity.pub
.
Dacă doriţi să utilizaţi cheia pentru autentificare la unele altă maşină, spune
Sara
, puteţi face acest lucru prin copierea prima cheie,
LSH sara.lysator.liu.se '> meu-key.pub' <~/.lsh/ identity.pub
apoi îl autorizează de către executant, peSara
,
LSH-autoriza-mi key.pub
În mod implicit,LSH-writekey
criptează cheia privată folosind o frază de acces. Acest lucru vă oferă o anumită protecţie în cazul în care o bandă de rezervă ajunge în mâini greşite, sau să utilizaţi NFS pentru a accesa fişierul cheie in directorul tau de casa. Dacă doriţi un necriptate cheie, treci de pavilionnici unul-c
laLSH-writekey
.
Din motive de securitate, trebuie să păstraţi cheia privată
~/.lsh/ identitate
secretă. Aceasta este, desigur, deosebit de important în cazul în care cheia este necriptat, în acest caz, oricine poate citi fişierul va fi capabil să te autentifici în numele tău orice maşină în cazul în care cheia publică corespunzătoare este înregistrată ca o cheie autorizat.
Fireşte, trebuie să vă, de asemenea, că nu, să autorizeze orice chei, dar dumneavoastră. De exemplu, este inadecvat să se utilizeze un mecanism nesigur, cum ar fi neautentificaţi e-mail,ftp
sauhttp
pentru a transfera cheia publică la maşinile în cazul în care doriţi să-l autorizeze.
Dacă aveţi conturi pe mai multe sisteme, se creează de obicei una keypair pe fiecare din sistemele, şi pe fiecare sistem va autoriza unele sau toate dintre chei publice, altele pentru autentificare.
Secure Password la distanţă este un protocol destul de nou, care oferă autentificare reciprocă bazată pe o parolă. Pentru al utiliza, trebuie să alegeţi mai întâi o parolă secretă. Apoi, creaţi unverificator parolă care este derivată din parola. Verificatorul este stocat pe masina tinta(de exemplu, aparatul pe care doriţi să vă conectaţi la).
Pentru a crea un verificator, aveţi oSRP-gen
de program şi tastaţi parola nouă. Trebuie să-l facă pe fiecare masina tinta, redirecţionând de ieşire pentru a ~/.lsh/ SRP-verificator, sau o puteţi genera pe unele maşini alte şi copiaţi-l la ţintă.
Avantajul principal alSRP este să utilizaţi parola nu numai pentru a obţine acces la maşina de la distanţă, dar se utilizează de asemenea, pentru a autentifica aparatul de la distanţă. Adică îl puteţi folosi pentru a conecta în siguranţă,fără a fi nevoie să ştie orice hostkeys sau amprentelor digitale în prealabil!
De exemplu, aţi putea conecta folosindSRP a descărca dactiloscopice hostkey pentru maşina de la distanţă, ca un fel de procesul de bootstrap procedurii, şi apoi folosesc metode tradiţionale de autentificare pentru conexiuni suplimentare.
Pentru ca aceasta să funcţioneze, verificatorultrebuie să fie păstratesecrete. În cazul în care inamicul devine verificatorul dvs., el poate monta unele atacuri:
Dacă utilizaţiSRP pentru a obţine hostkey sau amprente digitale pentru maşina de la distanţă, astfel cum sa subliniat mai sus, atac personificare distruge de securitate, ai putea la fel de bine conectaţi hostkey prezentate de către serverul de la distanţă, fără a se verifică dacă la toate.
Dacă utilizaţiSRP exclusiv, situaţia pare oarecum diferită. În ceea ce eu pot vedea, un atacator cunoaşterea verificator dvs. nu se poate monta un hotel tradiţional om-in-the-middle-atac: El poate juca un rol de pe server atunci când vorbesc cu tine, ci pentru a juca un rol atunci când vorbesc cu reale server, el trebuie să cunoască parola, de asemenea.
SRP sprijin este dezactivată în mod implicit, dar poate fi activată de către
- SRP-keyexchange
opţiunea de alshd
şiLSH
(fireşte, nu va fi utilizat cu excepţia cazului în activată pe ambele părţi). La momentul acestei scris,SRP este prea nou pentru a fi sigura de criptografi conservatoare(şi amintiţi-vă că conservatorism este o virtute atunci când vine vorba de securitate).
Şi chiar dacăSRP în sine este sigur, modulLSH
se integrează înssh
protocolul nu a avut mult de evaluare colegială. Linia de jos a acestei avertisment este căSRP sprijin în
LSH
ar trebui să fie considerate experimentale.
În ceea ce ştiu, folosindSRP ca un mecanism de autentificare gazdă nu este susţinută de nici un altssh
punere în aplicare. Protocolul de
LSH
foloseşte este descris îndoc/ SRP-spec.txt
. Implementari care utilizeazăSRP doar ca un mecanism de autentificare al utilizatorului nu sunt compatibile cuLSH
.
Taste şi obiecte de majoritatea celorlalteLSH
are nevoie pentru a stoca pe hard sunt reprezentate ca aşa-numitele S-expresii sausexps pentru scurt. S-expresiile îşi au rădăcinile în lumea Lisp, şi o variantă a acestora în utilizate în infrastructură simplă Public Key(SPKI). În prezent,LSH
de sprijin pentru eSPKI este destul de limitat, dar îl foloseşteSPKI "formate e pentru chei şi liste de control al accesului(ACL: e).
Există mai multe arome de sintaxă sexp:
Pentru a vedea ceea ce dvs.~/.lsh/ identity.pub
fişier conţine într-adevăr, încercaţi să
sexp-conv <~/.lsh/ identity.pub
Sexp-conv
program pot fi de asemenea utilizat pentru a calculeaza amprentelor digitale. Dactiloscopice de o cheie(sau orice sexp, pentru care contează) este pur şi simplu hash a reprezentării sale canonice. De exemplu,
sexp-conv- <hash/ etc/ lsh_host_key.pub
Această aromă a amprentelor digitale este diferită de convenţie ssh amprentelor digitale, care se bazează pe un hash de cheie exprimate în format sârmă ssh. Pentru a produce ssh amprentele digitale standard, utilizaţi
LSH-export-cheie- de amprente
.
SSH2
şi OpenSSHDacă utilizaţi dejaSSH2
sau OpenSSH, şi au creat una sau mai multe keypairs personale, ai nevoie pentru a converti cheile publice pentru a
LSH
format 's înainte de a le putea autoriza. Utilizaţi furnizat
ssh-conv
script,
ssh-conv <openssh-key.pub> nou-key.pub
Aveţi apoi posibilitatea să utilizaţi de obiceiLSH-autoriza
pe tastele convertite.ssh-conv
sustine atatDSA şiRSA
chei.
Conversia chei altă cale este, de asemenea, posibil, prin utilizarea
LSH-export-cheie de
program. Se citeşte o cheie publică în SPKI formatul utilizat deLSH
pe stdin, şi scrie-cheie în
SSH2
/ format OpenSSH pe stdout.
Dacă doriţi să utilizaţi dvs.LSH
-cheie pentru a vă conecta la un alt sistem de funcţionare şi serverul OpenSSH, puteţi face ca acest lucru:
LSH-export-cheie- openssh <.lsh/ identity.pub> sshkey
Iar pe de altă maşină, după ce a copiat cumva fişierul sshkey, trebuie doar să adăugaţi-l la sfârşitul dvs. deauthorized_keys
fişier:
cat sshkey>> ~/.ssh/ authorized_keys
LSH-export-cheie
pot fi, de asemenea, folosite pentru a verifica amprenta de chei(la fel cassh-keygen
).
LSH-export-cheie- amprente </ etc/ lsh_host_key.pub
arată celeMD5 şi a amprentelor digitale Bubble murmurul cheie server public.
Nu există în prezent instrumente de conversie a cheilor private.
LSH
Puteţi utilizaLSH
să vă conectaţi la un aparat corespondent. De utilizare de bază este
LSH [-p
numărul portului] sara.lysator.liu.se
care încearcă să se conecteze, autentificare, şi să înceapă un shell interactiv pe masina de la distanţă. Implicitnumărul de port este indiferent de sistemul dvs.
/ etc/ services
liste pentrussh
. De obicei, că este portul 22.
Există o multitudine de opţiuni pentru aLSH
, să vă configuraţi unde şi cum să se conecteze, cum să se autentifice, si ceea ce vrei sa faci o dată în mod corespunzător conectat la gazdă de la distanţă. Mai multe opţiuni au ambele forme lungi şi scurte. Acest manual nu lista toate variantele, pentru o listă completă a opţiunilor acceptate, utilizeazăLSH- ajutor
.
Reţineţi că pentru multe dintre opţiuni pentru aLSH
, prin care se dispune de opţiunile de pe linia de comandă este importantă.
Înainte ca un pachet este trimis, fiecare pachet poate fi comprimat, autentificată, şi criptat, în această ordine. În cazul în care pachetul este primit, este primul decriptat, următoarea este verificat că acesta este autentificat în mod corespunzător, şi în cele din urmă acesta este decomprimat. Algoritmii folositi pentru acest lucru sunt negociate cu egal la celălalt capăt al conexiunii, ca o parte din strângere de mână iniţială şi de schimb cheie.
Fiecare parte furnizează o listă de algoritmi sprijinit, şi algoritmul prima enumerate de către client, care este, de asemenea, găsite pe lista de server, este selectat. Reţineţi că acest lucru implică faptul că ordinea în care algoritmi sunt enumerate pe lista de server nu contează: dacă mai mulţi algoritmi sunt prezente pe atât de server şi listele de client, este obligarea clientului care determină care algoritmul este selectat.
Algoritmi de diferite tipuri, de exemplu, de compresie a datelor şi autentificarea mesajului, sunt negociate independent. În plus, algoritmi folosită pentru transmiterea de la client la server sunt independente de algoritmi folosită pentru transmiterea de la server la client. Nu există, prin urmare, nu mai puţin de şase liste diferite, care ar putea fi configurat la fiecare capăt.
Opţiunile de linie de comandă pentru LSH lshd şi nu vă permit să specificaţi listele de arbitrare. De exemplu, nu aveţi posibilitatea să specificaţi preferinţele diferite pentru trimiterea şi primirea.
Există un set de preferinţe algoritm prestabilit. Atunci când utilizaţi o opţiune de linie de comandă să spun că doriţi să utilizaţialgoritmul pentru una dintre algoritmi, lista implicită este înlocuită cu o listă care conţine singur elementalgoritmul. De exemplu, dacă utilizaţi-c arcfour
să spun că doriţi să utilizaţiarcfour
ca algoritmul de criptare, care să facă legătura se va termina, fie prin utilizareaarcfour
, sau negociere algoritm va da gres deoarece la egal la egal nu suportă
arcfour
.
Opţiune | Algoritmul de tip | Implicit |
|
-Z | De compresie a datelor | nici unul ,zlib
| Lista preferinţă implicită suporta compresie zlib, dar preferă să nu să-l folosească.
|
-C | Criptare | AES256-CBS ,3dec-CBC ,Blowfish-CBC ,arcfour
| Algoritmul de criptare implicită este AES256. Lista implicit, conţine doar algoritmi destul de vechi şi bine studiat. Există un algoritm special nume detoate pentru a permite tuturor algoritmi de criptare acceptate(cu excepţianici unul ).
|
-M | Mesaj de autentificare | HMAC-SHA1 ,HMAC-md5
| Ambele algoritmi de autentificare suportate de mesaj sunt
HMAC familiei.
|
Ca un caz special,-z
cu nici un argument modifică lista de algoritmul de compresie pentru azlib
,nici unul
, ceea ce înseamnă că doriţi să utilizaţizlib
dacă celălalt capăt le sprijină. Acest lucru este diferit de
-zzlib
care determină negociere pentru a eşua dacă celălalt capăt nu are suport pentruzlib
. O consecinţă oarecum unobvious de
-Z
au unopţional argument este că dacă oferi un argument, aceasta trebuie să urmeze imediat după scrisoarea de opţiune, fără spaţii permise.
Aşa cum sa descris mai devreme(a se vedea ameninţări), autentificarea corespunzătoare a gazdă de la distanţă este esenţială pentru a proteja conexiunea faţă de om-in-mijlocul-atacuri. În mod implicit,LSH
verifică cheia server-ului gazdă susţinut împotrivaListe de control al accesului în
~/.lsh/ gazdă-ACL-uri
. În cazul în care gazda de la distanţă nu poate fi autentificat, conexiunea este închisă.
Opţiuni care se modifica acest comportament sunt
- Host-db
- Desfundat-gazdă-autentificare
LSH
nu să renunţe la conexiunea dacă cheia server-ului nu poate fi autentificat. În schimb, afişează dactiloscopice de o cheie, şi întreabă dacă acesta este sigura. Cheia primit este, de asemenea, anexată la dosar
~/.lsh/ captured_keys
. Dacă rulaţi în modul silenţios,LSH-q- desfundat-gazdă-autentificare
,LSH
se conectează la orice gazdă, fără nici o întrebare.
- Strict-gazdă-autentificare
- Captare-a
~/.lsh/ captured_keys
. De exemplu,
LSH- desfundat-gazdă autentificare- captare de-a ~/.lsh/ gazdă-ACL-uri
faceLSH
se comporte mai mult cassh
programului.
- SRP-keyexchange
-L
LOGNAME
variabilă de mediu este utilizat.
-I
LSH
utilizează
~/.lsh/ identitate
, dacă acesta există. Ar trebui să fie posibil să se utilizeze mai multe-i
opţiuni de a utiliza mai mult de un fişier, dar că nu este în prezent pusă în aplicare.
- Nu-PublicKey
Sunt multe lucruriLSH
poate face odata ce sunteti autentificat inch Există două tipuri de opţiuni care controlează acest lucru:acţiuni şi
modificatori de acţiune. Pentru opţiuni scurt, acţiunile utilizati litere mari şi mici modificatori de utilizare.
Pentru fiecare Modificatorul- foo
există, de asemenea, o forma negata
- nu-foo
. Opţiuni poate fi negata, de asemenea, de către o precede cu opţiune specială-n
. Acest lucru este util mai ales pentru negarea opţiuni scurt. De exemplu, utilizaţi-nt
pentru a spuneLSH
nu de a solicita un terminal la distanţă pseudo. Fiecare modificator şi negaţia ei poate fi utilizat de mai multe ori pe linia de comandă. Pentru fiecare acţiune, cele mai recente modificator precedent din fiecare pereche se aplică.
În primul rând, acţiunile:
-L
LSH
pentru a asculta peasculta-port de pe maşina locală. Atunci când cineva conects la acel port,LSH
solicită serverul de la distanţă pentru a deschide o conexiune laţintă-port laţintă-gazdă, şi, dacă reuşeşte, două conexiuni sunt unite împreună printr-o
LSH
conexiune. Ambele numere de porturi ar trebui să se acorde în zecimal.
-R
-L
. Dar în acest cazLSH
solicită
de la distanţă server pentru a asculta peasculta-port. Când cineva se conectează la gazdele de la distanţă, serverul va informa locale
LSH
. LocaleLSH
apoi se conectează laportul-ţintă privind
ţintă-gazdă.
-D
-D1080
este corect,D-1080
nu este).
-E
-S
-G
-N
-B
-N
- Subsistemul
- nu-PTY
. Exemplu de utilizare:
- subsistemul= SFTP
Dacă există la final argumentele de după numele de sistemul de la distanta, acest lucru este echivalent cu unE-
opţiune, cu un şir de comandă construit de către catenating toate argumentele rămase, separate prin spatii. Acest lucru implică faptul că argumentele sunt, de obicei, extins mai întâi de shell locale, şi apoi şir de comandă rezultat este interpretat din nou de către sistemul de la distanta.
Dacă nu există argumente la final, după numele sistemului de la distanţă, şi-N
opţiune nu este dat, acţiunea implicită este de a începe un shell pe masina de la distanţă. Adică aceasta este echivalent cu
S-
opţiune.
Există un modificatori câteva acceptate:
-T
LSH
solicită sistem remote de a aloca un terminal pseudo. Dacă reuşeşte, terminalul local este setat la modul brut. Comportamentul implicit este de a solicita o PTY dacă şi numai dacă localeLSH
procesul are un terminal de control. Acest modificator se aplică la acţiuni care să creeze procese de la distanţă, adică-E
şi
S-
, precum şi acţiunile implicite.
În prezent, această opţiune este ignorată dacă nu există nici un terminal de nivel local.
-X
E-
şi
S-
şi acţiunile implicite.
- Stdin
LSH
stdin e pentru primul proces, şi
/ dev/ null
pentru restul. Această opţiune se aplică laE-
şiS-
opţiuni, precum şi la acţiunile implicite. Opţiune se aplică numai un singur proces, de îndată ce acesta este folosit este resetat la valorile implicite.
- Stdout
LSH
e stdout. Cum ar fi- stdin
, aceasta este resetat după ce este folosit.
- Stderr
- stdout
opţiunea.
- Desprinde
- Scrie-PID
-E
. Scrie PID procesului de fundal la iesirea standard.
-E
-G
-L
,R-
si-D
. În mod implicit, numai conexiuni la interfaţa loopback, IP 127.0.0.1, sunt transmise. Acest lucru implică faptul că procesele numai pe aceeasi masina poate utiliza în tunelul de transmis în mod direct. Dacă modificator g-este în vigoare, partidul de expediere va asculta petoate interfeţele de reţea.
Aceste opţiuni determină ce mesajeleLSH
scrie pe stderr sale.
-Q
-V
LSH
verbose un pic mai mult. Intenţia este de a oferi informaţii care sunt utile pentru fotografiere probleme obişnuite, şi face sens, de asemenea, pentru cei care nu sunt familiarizaţi cuLSH
interne.
- Urme
LSH
fluxul e de sub control.
- Debug.
SSH_MSG_USERAUTH_REQUEST
mesaje, dar trebuie să utilizaţi în continuare cu grijă.
- Log-file
Reţineţi că toate aceste opţiuni sunt ortogonale. Dacă utilizaţi- urmărirea
, de obicei doriţi să adăugaţi-v
, precum;- urme
nu se face acest lucru în mod automat.
lshg
Puteţi utilizalshg
să vă conectaţi la o maşină la distanţă la care aţi utilizat anteriorLSH
pentru a configura un gateway(a se vedea opţiuni de acţiune). Utilizarea sa este foarte asemănătoare cu cea aLSH
(a se vedea Invocarea LSH), cu excepţia faptului că unele opţiuni nu sunt disponibile.
De utilizare de bază este
lshg [-l
nume de utilizator]
gazdă
care încearcă să se conecteze la gateway-ul care ar fi trebuit în prealabil a fost stabilit prin rulareaLSH [-l
nume de utilizator] G-
gazdă)
Numele de utilizator şigazdă sunt utilizate pentru a localiza poarta de acces. Valoarea implicită pentrunumele de utilizator este determinat în acelaşi mod ca pentru
LSH
(a se vedea Invocarea LSH).
Calshg
foloseşte aproape aceleaşi opţiuni caLSH
(a se vedea Invocarea LSH), opţiuni numai că nu sunt disponibile sau au un sens diferit înlshg
sunt indicate aici.
Opţiunile de algoritm(a se vedea opţiunile Algoritmul), precum şi de cele mai multe userauth(a se vedea opţiunile Userauth) şi hostauth(a se vedea opţiuni Hostauth) nu sunt disponibile înlshg
în care acestea sunt folosite numai de instalare sesiune, care este deja tratată deLSH
.
Din motive tehnice,X11-expediere nu poate fi efectuată de către
lshg
, astfel- x11-forward
opţiune(a se vedea opţiuni de acţiune) nu este disponibil.
Pentru a rezuma, acestea sunt optiunile care sunt noi, nu este disponibil sau care au sensuri diferite:
-G
LSH
-G
solicită o poarta de acces care urmează să fie înfiinţate. Pentru
lshg
aceasta înseamnă că, dacă nu se găseşte mai uşor de utilizat gateway-ul
LSH
ar trebui să fie lansat cu aceleaşi argumente în schimb.
- Trimite-debug
LSH
. Trimite undepanare
mesaj la maşină de la distanţă.
- Trimite-ignora
LSH
. Trimite unignora
mesaj la maşină de la distanţă.
-X
- x11-forward
) Nu este disponibil înlshg
.
-C
- cripto
) Nu este disponibil înlshg
.
-Z
- de compresie
) Nu este disponibil înlshg
.
-M
- mac
) Nu este disponibil înlshg
.
- Hostkey-algoritm
lshg
.
- Captare-a
lshg
.
- Strict-gazdă-autentificare
lshg
.
- Desfundat-gazdă-autentificare
lshg
.
- Host-db
lshg
.
- PublicKey
lshg
.
- Nu-PublicKey
lshg
.
- DH-keyexchange
lshg
.
- Nu-DH-keyexchange
lshg
.
- SRP-keyexchange
lshg
.
- Nu-SRP-keyexchange
lshg
.
-I
- Identitatea
Nu este disponibil înlshg
.
lshd
lshd
este un server care acceptă conexiuni de la clientii care vorbesc protocolul Secure Shell. Acesta este, de obicei a început în mod automat în cazul în care sistemele de cizme, şi rulează cu privilegii de root. Cu toate acestea, este de asemenea posibil să înceapălshd
manual, şi cu privilegii de utilizator.
În prezent nu există fişiere de configurare. În schimb, opţiunile linia de comanda sunt folosite pentru a spunelshd
ce să facă. Mai multe opţiuni au- foo
şi- nu-foo
variante. Specificând opţiuni comportamentul implicit nu sunt enumerate aici.
Unele dintre opţiuni sunt partajate cuLSH
. În special, a se vedea
opţiunile algoritmului şi opţiuni de cantitatea de informatii afisate.
Opţiuni specifice pentrulshd
server sunt:
-P
Ar trebui să fie, de asemenea, posibil să se utilizeze mai multe opţiuni ca p-un mod convenabil de a face lshd asculte pe mai multe porturi pe fiecare specificate(sau implicit) interfaţă, dar că nu este încă pusă în aplicare.
Reţineţi că, dacă utilizaţi atât-p
şi- interfaţă
, materie ordine.
- Interfaţă
lshd
ascultă pe toate interfeţele. O interfaţă poate fi specificat ca un nume de DNS, un literal adresa IPv4, sau o adresă literală IPv6 între paranteze pătrate. Acesta poate fi opţional urmat de două puncte şi un număr de port sau numele serviciului. Dacă nici un număr de port sau serviciu este specificat, implicit sau valoarea de la un
precedent-P
este utilizat.
Câteva exemple:- interfata= localhost
,
- interfata= 1.2.3.4:443
,- interfata= [aaaa:: BBBB]: 4711
. Pentru a facelshd
asculta pe mai multe porturi şi interfeţele, în acelaşi timp, utilizarea doar câteva- interfaţă
opţiuni în linia de comandă.
-H
/ etc/ lsh_host_key
.
- Daemonic
lshd
furci în fundal, redirecţionări sale descriptorii stdio fişier la/ dev/ null
, schimbă directorul de lucru pentru a/
şi redirecţionează toate mesajele de diagnostic sau de depanare prin syslog.
lshd
ar trebui să poată să se ocupe cu mediul, el moşteneşte în cazul în care este început deinit
sauinetd
, dar acest lucru nu este cu adevărat testată.
- Pid-file
lshd
. Argumentul obligatoriu prevede numele fişierului. Această opţiune este activată în mod implicit atunci când funcţionează în modul daemonic, şi numele de fişier implicit este/ var/ run/ lshd.pid
.
- Nu-syslog
- daemonic
- Enable-core
lshd
dezactivează halde de bază, pentru a evita scurgerea de informaţii sensibile. Această opţiune modificările de comportament, şi permitelshd
la groapa de bază referitoare la erori fatale.
- Nu-parolă
- Nu-PublicKey
- Rădăcină-login
lshd
.
- Login-auth-mode
lshd
e autentificarea utilizatorului, şi permite utilizatorilor să ruleze lor login-shell fără nici o autentificare. De obicei, combinate cu- login-shell
, pentru a seta shell de login pentru un program care parola de autentificare performce.
- Kerberos-parole
LSH-krb-checkpw
program de ajutor. Reţineţi că acest lucru nu
nu utilizează infrastructura Kerberos in mod corect. Experimentale.
- Parola-helper
lshd
de a utiliza un program de ajutor pentru a verifica parolele. Aceasta este o generalizare a- Kerberos-parole
, şi ar putea fi folosite pentru a verifica parolele împotriva orice bază de date parola. A se vedea fişierele sursăLSH-krb-checkpw.c
şiunix_user.c
pentru detalii.
- Login-shell
- SRP-keyexchange
- Nu-PTY-suport
- Nu-tcp-forward
- Subsisteme
- subsisteme= sftp=/ usr/ sbin/ sftp-server, foosystem=/ usr/ bin/ foo
Acest capitole descrie toate fişierele şi toate variabilele de mediu care sunt utilizate de cătreLSH
,lshd
, şi programele conexe.
Există câteva variabile de mediu care modifică comportamentul deLSH
programelor. Şi acolo sunt, de asemenea, o mână de variabile care sunt setate de cătrelshd
atunci când au început procesele de utilizator.
DISPLAY
DISPLAY
specifică afişare locale. Folosit deLSH
.
HOME
~/. LSH
director. Atunci cândlshd
începe un program de utilizator, aceasta stabileşteACASA
din valoarea în/ etc/ passwd
fişier, cu excepţia cazului înlshd
se execută ca un proces utilizator obişnuit. În acest ultim caz, noul proces moşteneşteLSH
-i valoarea proprie de
ACASA
.
LOGNAME
lshd
la începerea unor noi procese.
LSH_YARROW_SEED_FILE
lshd
şi programele de client.
LSHFLAGS
LSHGFLAGS
POSIXLY_CORRECT
SEXP_CONV
sexp-Conv
program. Dacă nu sunt setate, implicit
$ prefix/ bin/ sexp-Convers
este utilizat.
SSH_CLIENT
SSH_TTY
SHELL
lshd
incepe un proces de utilizator, se stabileşte
SHELL
la valoarea din/ etc/ passwd
, cu excepţia cazului în suprascris de- conectare-shell
opţiune în linia de comandă.
TERMEN
TERM
este transferată de la client la server.
TMPDIR
lshg
este situat în sistemul de fişiere.
TZ
lshd
moşteni valoarea acestei variabile din procesul server.
Fişierele folosite de catre client LSH, stocate în~/ LSH
director:
captured_keys
LSH- desfundat-gazdă autentificare
. Sau, mai precicely, fiecare cheie este stocată împreună cu un astfel cum SPKI(Intrastructure simplă cheia publica) ACL: s(liste de control al accesului).
identitate
LSH-keygen | LSH-writekey
. Citeşte deLSH
. Ar trebui să fie ţinute în secret.
identity.pub
gazdă-ACL-uri
captured_keys
.
coada soricelului-seminţe de-fişier
Fişierele utilizate delshd
, dintre care unele sunt citite de la directoarele ghidul de acasă:
/ Etc/ lsh_host_key
/ Etc/ lsh_host_key.pub
/ Var/ spool/ LSH/ coada soricelului-seminţe de-fişier
lshd
generator de hazard e.
~/.lsh/ Authorized_keys
LSH-autoriza
.
~/.lsh/ SRP-verificator