Povežite se z virtualnim strežnikom prek SSH in SFTP. Povezovanje s strežnikom prek SSH in SFTP Povezovanje prek ssh prek putty

Kaj je SSH in zakaj ga potrebujete?

Varna lupina (SSH) je omrežni protokol, ki zagotavlja funkcije lupine na oddaljenem računalniku prek varnega kanala. SSH ima različne varnostne izboljšave, vključno s preverjanjem pristnosti uporabnika/gostitelja, šifriranjem podatkov in celovitostjo podatkov, zaradi česar so priljubljeni napadi, kot so prisluškovanje, ponarejanje DNS/IP, ponarejanje podatkov in ugrabitev povezave, nemogoči. Uporabniki Ftp, telnet ali rlogin, ki uporabljajo protokol, ki prenaša podatke v obliki čistega besedila, je zelo priporočljivo preklopiti na SSH.

OpenSSH je odprtokodna izvedba izvorna koda SSH protokol, ki omogoča šifriranje povezave v omrežju s pomočjo nabora programov. Če želite imeti SSH v Linuxu, lahko namestite OpenSSH, ki je sestavljen iz strežnika OpenSSH in odjemalskih paketov.

Paketi strežnika/odjemalca OpenSSH so opremljeni z naslednjimi pripomočki:

  • Strežnik OpenSSH: sshd (demon SSH)
  • Odjemalec OpenSSH: scp (varna oddaljena kopija), sftp (varen prenos datotek), slogin/ssh (varna oddaljena prijava), ssh-add (dokončanje zasebnega ključa), ssh-agent (agent za preverjanje pristnosti), ssh-keygen (upravljanje ključev za preverjanje pristnosti ).
Namestitev strežnika in odjemalca OpenSSH v sistemu Linux

Če želite namestiti strežnik/odjemalca OpenSSH in konfigurirati strežnik OpenSSH za samodejni zagon, sledite naslednjim navodilom, ki se razlikujejo glede na distribucijo.

Debian, Ubuntu ali Linux Mint

$ sudo apt-get namestite openssh-strežnik openssh-odjemalec

V sistemih, ki temeljijo na Debianu, se bo OpenSSH po namestitvi samodejno zagnal ob zagonu. Če se strežnik OpenSSH iz nekega razloga ne zažene samodejno ob zagonu sistema, lahko zaženete naslednji ukaz, da izrecno dodate ssh v zagon ob zagonu sistema.

$ sudo update-rc.d privzete nastavitve ssh

Fedora ali CentOS/RHEL 7

$ sudo yum -y namestite openssh-strežnik openssh-odjemalci $ sudo systemctl zaženi storitev sshd $ sudo systemctl omogoči sshd.service

CentOS/RHEL 6

$ sudo yum -y namestite openssh-strežnik openssh-odjemalci $ sudo storitev sshd start $ sudo chkconfig sshd na

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl zaženi storitev sshd $ sudo systemctl omogoči sshd.service

Nastavitev strežnika OpenSSH

Če želite konfigurirati strežnik OpenSSH, lahko uredite sistemsko konfiguracijsko datoteko, ki se nahaja v /etc/ssh/sshd_config.

Obstaja nekaj možnosti OpenSSH, ki bi lahko bile zanimive:
Privzeto sshd posluša na vratih 22 in posluša dohodne povezave ssh. Če spremenite privzeta vrata za ssh, lahko preprečite različne avtomatske hekerske napade.
Če ima vaša naprava več kot en fizični omrežni vmesnik, boste morda želeli preveriti, kateri je povezan s sshd, za to lahko uporabite možnost ListenAddress. Ta možnost pomaga izboljšati varnost z omejevanjem dohodnega SSH samo na določen vmesnik.

HostKey /etc/ssh/ssh_host_key

Možnost HostKey določa, kje se nahaja osebni gostiteljski ključ.

DovoljenjeRootLogin št

Možnost PermitRootLogin – ali se root lahko prijavi v sistem prek ssh.

AllowUsers alice bob

Z možnostjo AllowUsers lahko selektivno onemogočite storitev ssh za določene uporabnike Linuxa. Določite lahko več uporabnikov, ločenih s presledki.

Ko spremenite /etc/ssh/sshd_config, ponovno zaženite storitev ssh.

Za ponovni zagon OpenSSH v Debianu, Ubuntu ali Linux Mint:

$ sudo /etc/init.d/ssh znova zaženite

Če želite znova zagnati OpenSSH v sistemu Fedora, CentOS/RHEL 7 ali Arch Linux:

$ sudo systemctl znova zaženite sshd.service

Če želite znova zagnati OpenSSH na CentOS/RHEL 6:

$ sudo storitev sshd ponovni zagon

Kako se povezati s SSH

Povezovanje s SSH iz Linuxa

Uporabnikom Linuxa ni treba nameščati dodatnih programov.

Povezovanje s SSH iz sistema Windows

Skrit pred gosti

.

Cygwin je več kot le odjemalec SSH. Je zmogljiv kombiniralnik, ki podpira številne ukaze Linuxa. Cygwin na primer omogoča zelo enostavno ustvarjanje SSL certifikatov (tako kot Linux). Če želite v sistemu Windows ustvariti samopodpisana potrdila, morate plesati s tamburinom. Cygwin je zelo priročen za uporabo cURL (ničesar ni treba namestiti posebej) itd. Tisti, ki ga nimajo v sistemu Windows ukazna vrstica in programi za Linux bodo našli izhod v Cygwinu.

Namestitev Cygwina je enostavna. Pojdimo na

Skrit pred gosti

In prenesite

Skrit pred gosti

Skrit pred gosti

Prenesla se bo majhna datoteka - to je namestitveni program. Grafični namestitveni program. Čeprav vsebuje veliko število možnosti, so vse precej preproste in mnoge poznamo iz drugih grafičnih namestitvenih programov. Če nekaj ni jasno, preprosto kliknite »Naprej«. Morda lahko samo naslednje okno povzroči zmedo:

Tukaj so predstavljeni vsi elementi, ki so na voljo za namestitev. Trenutno nam jih ni treba razumeti. Ker so najbolj priljubljeni že označeni za namestitev. In če v prihodnosti kaj manjka, lahko preprosto namestite, kar potrebujete.

SSH povezava (skupna za Linux in Windows)

Uporabniki Linuxa odprejo konzolo, uporabniki Windows vnesejo Cygwin.

SSH za povezavo potrebuje naslednje podatke:

  • IP ali ime gostitelja
  • številka vrat
  • Uporabniško ime
  • uporabniško geslo
Dva od teh parametrov lahko SSH ugane: uporabniško ime in številko vrat. Če vrata niso določena, se predpostavlja privzeta vrata. Če uporabnik ni naveden, se uporabi isto ime kot v sistemu, iz katerega je vzpostavljena povezava. Naslov gostitelja za povezavo je na primer 192.168.1.36. Če pokličem

Ssh 192.168.1.36

Vidim naslednje

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Pristnosti gostitelja "192.168.1.36 (192.168.1.36)" ni mogoče ugotoviti. Prstni odtis ključa ECDSA je SHA256:sIxZeSuiivoEQ00RXAQHxylxuEA8SC5r/YPhL8wfp8s. Ali ste prepričani, da želite nadaljevati povezavo ing ( da/ne)?

Ker se z gostiteljem povezujem prvič, gre za neznanega gostitelja. Vprašajo me, ali želim nadaljevati. Kličem ja:

Opozorilo: Trajno dodan "192.168.1.36" (ECDSA) na seznam znanih gostiteljev. [e-pošta zaščitena]"s geslo:

V redu, gostitelj 192.168.1.36 je bil dodan na seznam znanih gostiteljev. Zahtevajo me geslo za uporabnika Alex. Ker na serverju s SSH ni takega uporabnika pa kliknem Ctrl+C(prekiniti) in vnesite ukaz skupaj z uporabniškim imenom oddaljenega sistema. Uporabnik se vnese pred naslovom oddaljenega stroja in je od naslova ločen s simbolom @. Simbol @ se v angleščini bere kot at in se lahko prevede kot "in". Tisti. snemanje [e-pošta zaščitena] se lahko razlaga kot "mial uporabnik na računalniku 192.168.1.36".

Ssh [e-pošta zaščitena]

Vabilo Alex@MiAl-PC je zamenjalo vabilo mial@mint. To pomeni, da smo že na oddaljeni napravi, torej smo že vzpostavili povezavo. Če morate podati vrata (če se razlikujejo od standardnih), morajo biti vrata podana za stikalom -p. Na primer takole:

Ssh [e-pošta zaščitena]-p 10456

Po vzpostavitvi povezave nas pozdravi nekaj takega:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Programi, vključeni v sistem Debian GNU/Linux, so brezplačna programska oprema; natančni pogoji distribucije za vsak program so opisani v posameznih datotekah v /usr/share/doc/*/copyright. Debian GNU/Linux nima POPOLNOMA NOBENEGA JAMSTVA, v obsegu, ki ga dovoljuje veljavna zakonodaja. Zadnja prijava: torek, 16. junij 15:32:25 2015 z 192.168.1.35

Iz tega sledi, da je oddaljeni stroj Linux Mint z jedrom 3.16, 64-bitna različica. tudi pomembna informacija o času zadnje prijave in naslovu IP, s katerega je vzpostavljena povezava. Če vam čas in IP nista znana in ste edini uporabnik, je vaš sistem ogrožen in morate ustrezno ukrepati.

Vtipkajmo nekaj ukazov, da se prepričamo, kje smo in kdo smo: pwd, [B]uname -a itd.:

Za zaključek seje (odjava) pokličite

Ali kliknite Ctrl+D.

Prijavite se v SSH brez vnosa gesla

Prvič, preprosto je bolj priročno. Drugič, varneje je.

Najprej moramo ustvariti ključe RSA. Če ste uporabnik Linuxa, ste v redu. Če ste uporabnik operacijskega sistema Windows, vendar niste poslušali mojega nasveta in ste izbrali PuTTY, potem imate težavo in sami razmislite, kako jo rešiti. Če imate Cygwin, potem je tudi vse v redu.

Če ste se uspeli prijaviti v oddaljeni sistem, se odjavite. Po tem vnesite

Ssh-keygen -t rsa

Vprašani smo za ime datoteke, ni nam treba vnesti ničesar, uporabljeno bo privzeto ime. Zahteva tudi geslo. Gesla ne vnesem.

Zdaj moramo na oddaljenem računalniku ustvariti imenik .ssh. Spodaj bo obravnavano izvajanje ukaza na oddaljenem računalniku. Za zdaj samo kopirajte ukaz, ne pozabite pa spremeniti naslova IP in uporabniškega imena na svojega:

Ssh [e-pošta zaščitena] mkdir.ssh

Zdaj moramo kopirati vsebino datoteke id_rsa.pub na oddaljeno napravo. To je zelo enostavno narediti (ne pozabite spremeniti podatkov v svoje):

Cat .ssh/id_rsa.pub | ssh [e-pošta zaščitena]"cat >> .ssh/authorized_keys"

Zdaj se samo prijavimo in nas ne vprašajo več za geslo. In zdaj bo vedno tako.

Izvajanje ukazov na oddaljenem strežniku brez ustvarjanja lupinske seje

Poleg odpiranja lupinske seje v oddaljenem sistemu vam ssh omogoča tudi izvajanje posameznih ukazov v oddaljenem sistemu. Če želite na primer zagnati ukaz drevesa na oddaljenem gostitelju z imenom remote-sys in prikazati rezultate v lokalnem sistemu, naredite to:

Drevo oddaljenega sistema Ssh

Moj pravi primer:

Ssh [e-pošta zaščitena] drevo

S to tehniko lahko naredite zanimive stvari, na primer zaženete ukaz ls v oddaljenem sistemu in preusmerite izhod v datoteko v lokalnem sistemu:

Ssh remote-sys "ls *" > dirlist.txt

Pravi primer:

Ssh [e-pošta zaščitena]"ls *" > dirlist.txt cat dirlist.txt

Upoštevajte enojne narekovaje v zgornjem ukazu. To je narejeno zato, ker ne želimo, da se širitev poti izvaja naprej lokalni stroj; ker potrebujemo to izvedbo v oddaljenem sistemu. Tudi, če želimo preusmeriti standardni izhod v datoteko na oddaljenem računalniku, lahko stavek o preusmeritvi in ​​ime datoteke postavimo v enojne narekovaje:

Ssh remote-sys "ls * > dirlist.txt"

Prenos standardnega izhoda z lokalnega računalnika na oddaljeni stroj prek ssh

Enako zanimiva možnost za izvajanje ukazov je podana nekoliko višje:

Cat .ssh/id_rsa.pub | ssh [e-pošta zaščitena]"cat >> .ssh/authorized_keys"

  • Ukaz cat prebere in prikaže vsebino datoteke .ssh/id_rsa.pub, ki se nahaja na lokalnem računalniku, vrstico za vrstico.
  • | (cev) posreduje, kar bi se pojavilo na standardnem izhodu, drugemu ukazu.
  • Namesto ukaza, ki bi obdelal nize, ki so mu posredovani, se vzpostavi povezava z oddaljenim sistemom (ssh [e-pošta zaščitena]).
  • Vklopljeno daljinski sistem prispejo vrstice, za katere je na voljo ukaz cat >> .ssh/authorized_keys. Tisti. vsebina standardnega izhoda je zapisana vrstico za vrstico v datoteko .ssh/authorized_keys, ki se nahaja na oddaljenem računalniku.
Odpiranje grafičnega programa, ki se nahaja na oddaljenem računalniku

Naslednji trik zahteva dva računalnika Linux. Na žalost tudi Cygwin ne zmore tega trika. Poleg tega morata oba sistema Linux imeti grafični uporabniški vmesnik.

Tuneliranje s SSH

Med drugim, kar se zgodi, ko je vzpostavljena povezava z oddaljenim gostiteljem prek SSH, je ustvarjanje šifriranega tunela, ki se oblikuje med lokalnim in oddaljenim sistemom. Običajno se ta predor uporablja za zagotovitev, da so ukazi, vneseni na lokalnem stroju, varno preneseni na oddaljeni stroj, rezultat pa je tudi varno poslan nazaj.

Poleg te osnovne funkcionalnosti protokol SSH omogoča pošiljanje večine vrst prometa prek šifriranega tunela, kar ustvarja neke vrste VPN (navidezno zasebno omrežje) med lokalnim in oddaljenim sistemom.

Morda je najpogosteje uporabljena od teh funkcij možnost oddajanja prometa sistemov X Window. Na sistemu, v katerem teče strežnik X (to so stroji, ki imajo grafični uporabniški vmesnik), je mogoče na oddaljenem sistemu pognati odjemalski program X (grafično aplikacijo) in videti rezultate njegovega delovanja na lokalnem sistemu. To je preprosto narediti. Na primer, želim se povezati z oddaljenim gostiteljem remote-sys in na njem želim zagnati program xload. Istočasno bom lahko videl grafični izpis tega programa na lokalnem računalniku. To se naredi takole:

Ssh -X oddaljeni-sys xload

Pravi primer:

Ssh -X [e-pošta zaščitena] gedit

Tisti. SSH se začne s stikalom -X. In potem se program enostavno zažene. Poglejte posnetek zaslona.

Uporabljam Kali Linux. Uspešno sem se prijavil v oddaljeni računalnik prek SSH. Po tem sem zagnal program gedit. Ta program morda sploh ni na Kali Linuxu, vsekakor pa je na Linux Mintu, s katerim sem se povezal. Rezultat tega programa vidim na zaslonu, kot da bi se program izvajal lokalno. Še enkrat, želim, da to razumete, v lokalnem računalniku se ne izvaja program gedit. Če želim shraniti rezultat programa gedit (ali katerega koli drugega programa, odprtega na ta način), se izkaže, da deluje v okolju oddaljenega računalnika, vidi njegov datotečni sistem itd. To je priročno, ko želite konfigurirati oddaljeni računalnik z uporabo grafičnega vmesnika.

Kako prenesti sliko s celotnega namizja, se boste naučili kasneje v istem članku, v razdelku »Kako konfigurirati VNC prek SSH«.

V nekaterih sistemih ta trik zahteva uporabo možnosti -Y namesto možnosti -X.

Kopiranje iz/na oddaljeni računalnik (scp in sftp)

scp

Paket OpenSSH vključuje tudi dva programa, ki uporabljata šifriran tunel SSH za kopiranje datotek po omrežju. Prvi program - scp(»varna kopija«) - uporablja se pogosteje, kot podoben program cp za kopiranje datotek. Najbolj opazna razlika je, da je lahko vir datoteke oddaljeni gostitelj, ki mu sledita dvopičje in lokacija datoteke. Na primer, če bi želeli kopirati dokument z imenom document.txt iz našega domačega imenika v oddaljeni sistem v trenutnem delovnem imeniku v našem lokalnem sistemu, bi lahko naredili to:

Scp remote-sys:document.txt. document.txt 100% 177 0,2KB/s 00:00

Pravi primer:

# izbrišite datoteko na lokalnem računalniku, če obstaja rm dirlist.txt # ustvarite datoteko na oddaljenem računalniku ssh [e-pošta zaščitena]"ls * > dirlist.txt" # preveri njegovo prisotnost ssh [e-pošta zaščitena]"ls -l" # kopirajte na lokalni stroj scp [e-pošta zaščitena]:dirlist.txt. # preverite njegovo vsebino cat dirlist.txt

  • [e-pošta zaščitena]- uporabniško ime in oddaljeni gostitelj,
  • . (pika) pomeni, da je treba datoteko prekopirati v trenutni delovni imenik na oddaljenem strežniku, vendar bo ime datoteke ostalo isto, tj. nfile.txt
  • Opomba:

    Če želite kopirati datoteko iz B v A, ko ste prijavljeni v B:
    scp /path/to/file uporabniško ime@a:/path/to/destination
    Kopiranje datoteke iz B v A, ko ste prijavljeni v A:
    scp uporabniško ime@b:/pot/do/datoteke /pot/do/destinacije

    sftp

    Drugi program za kopiranje datotek prek SSH je sftp. Kot že ime pove, je varna zamenjava programa ftp. sftp deluje kot izvirni program ftp. Vendar pa namesto pošiljanja čistega besedila uporablja šifriran tunel SSH. Pomembna prednost sftp pred ftp je, da ne potrebuje delujočega strežnika FTP na oddaljenem gostitelju. Potrebuje le strežnik SSH. To pomeni, da se lahko vsak oddaljeni stroj, ki je povezan prek odjemalca SSH, uporablja tudi kot strežnik, podoben FTP. Tukaj je primer seje:

    Alex@MiAl-PC ~ $ sftp [e-pošta zaščitena] Povezan z 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videoposnetki Dokumenti Prenosi Slike Glasba Predloge javnega namizja sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> get TakeMeHome Fetching /home / mial/temp/TakeMeHome v TakeMeHome sftp> adijo

    Protokol SFTP podpirajo številni grafični upravitelji datotek, ki jih lahko najdete v distribucijah Linuxa. Z uporabo Nautilusa (GNOME) in Konquerorja (KDE) lahko vnesemo URI-je (povezave), ki se začnejo s sftp://, v vrstico za skok in delamo z datotekami, ki se nahajajo v oddaljenem sistemu, v katerem se izvaja strežnik SSH.

    Zdravo! Zanima me vprašanje: kako se povezati preko SSH z domačim računalnikom preko interneta. Doma imam nameščen strežnik FreeSSHd. Kolikor razumem, moram nekako odpreti vrata 22 na zunanjem IP-ju? Alex

    Da, pogosto se pojavi potreba. V tem članku sem govoril o marsičem, tukaj pa bomo govorili izključno o SSH, saj nam je Alex prijazno ponudil to priložnost. Poleg tega me sam zelo zanima za SSH, tukaj je tudi na Windowsih ... mmm.

    Kaj je SSH in zakaj je potreben?

    Bistvo je, da SSH je S varno SH ell. Protokol za varen dostop do nadzorne lupine. Zato omogoča dostop posebej do ukazne vrstice, ker je Shell preveden kot lupina in tukaj v pomenu lupina za nadzor besedila. Toda na splošno je ta protokol znan po dejstvu, da omogoča, da vsak drug promet poteka znotraj njega in v šifrirani obliki. Tako je protokol za varno povezavo do datotečni sistem imenovan SFTP in deluje na vrhu SSH. Lahko pa tunelira absolutno vse druge povezave - naj bo to HTTP ali celo RDP. V bistvu se izkaže za "VPN na kolenu".

    Tukaj je Alex že opravil polovico dela, namestil in zagnal domači računalnik FreeSSHd. To vam omogoča povezavo z operacijskim sistemom Windows prek SSH. V tem primeru je "omogoča" zelo močno povedano. Ker ta rešitev nekako deluje v sistemu Windows. Prvič, nima spodobnega besedilnega vmesnika - ukazne vrstice za nadzor.

    Vsaj običajni - cmd - vam omogoča malo dela z oddaljenim strojem. Obstaja tudi Powershell - to je sodobnejša in zmogljivejša rešitev. Freesshd vam omogoča, da spremenite konzolo v powershell, vendar se nisem mogel povezati z njim. Povezal sem se s CMD - vendar je popolnoma neuporaben:

    Drugič, v primeru FreeSSHd se nisem mogel povezati z računalnikom Windows niti prek lokalnega omrežja, da o povezovanju prek interneta niti ne govorimo. Oziroma se je mogoče povezati, vendar storitev zamrzne in se zruši; na ta način ne boste mogli upravljati gostitelja Windows.

    Zato predvidevam, da je Alex potreboval strežnik ssh v sistemu Windows, da se poveže z datotečnim sistemom ali ga uporabi kot VPN, posreduje nekaj prek SSH. Čeprav dvomim, da bo FreeSSHd to dovolil. Ker tretjič: niti ne shrani nastavitev, ko znova zaženete storitev, gre vse narobe. Na splošno upam, da nam bo Alex v komentarjih povedal, zakaj je to potreboval.

    Kako drugače lahko zaženete SSH v sistemu Windows?

    Obstaja bolj uporabna rešitev - Powershelserver. Čeprav ima tudi hrošče, se vsaj ne zruši. Zato priporočam, da ga uporabite za povezavo prek SSH s strežniki Windows.

    Prvič, deluje stabilno brez zrušitev. In prek njega lahko resnično nadzorujete okna prek powershell-a.

    Vse nastavitve se normalno shranijo. Na voljo so enake funkcije kot v FreeSSHd in še več - lahko uporabite SCP - to je kopiranje datotek preko SSH.

    Najbolj šik pa je konzola! Deluje, gospodje!

    Povezal sem se enostavno, brez kakršnih koli težav z dodajanjem uporabnikov (to je treba narediti v freesshd). In to najenostavnejši ukaz za ogled usmerjevalne tabele je delovalo brezhibno in dalo potrebne informacije. Frisssh mi je "padel" ravno, ko sem poskušal pogledati netstat -rn

    Tukaj res vidite, da ruski znaki niso prikazani. Tako je enostavno nastaviti pri nas, preprosto nastavim kodiranje, ki ga potrebujem, na powershellserverju, znova zaženem, ponovno vzpostavim povezavo ...

    Nastavitev kodiranja v Powershellserverju

    Zdaj imamo popoln SSH in lahko v celoti upravljamo Windows prek konzole.

    Microsoft bo ustvaril lastno rešitev SSH

    Mimogrede, Microsoft je že poleti napovedal, da se bo razvijal domačin Podpora SSH za Powershell v novih različicah sistema Windows. Napovedi novic so na Habréju in pcweeku (in še več). Zato se lahko le veselimo tega prelomnega dogodka, saj bo resnično preboj za delo heterogena omrežja.

    Nisem preveril drugih funkcij - sftp in scp, vendar sem iz nekega razloga prepričan, da bodo prav tako delovale odlično.

    Kako odpreti vrata SSH od zunaj?

    Tako smo prišli do skrivnosti, zaradi katere je bil ta članek sploh načet. Odgovoril bom na vprašanje bralca.

    Posredovanje vrat na usmerjevalniku ali modemu

    Za povezavo z računalnikom od zunaj morate resnično narediti NAT ali v določenem primeru . Kako to storiti, je odvisno od naprave, ki se uporablja kot prehod. To je lahko modem ADSL ali . V večini primerov lahko podrobna navodila za vašo napravo zlahka najdete s poizvedbami, kot je »posredovanje vrat model_naprave« ali »Posredovanje vrat model_naprave»

    Tako je videti na domačem usmerjevalniku Zyxel Keenetic Lite:

    In takole izgleda na ADSL modemu s funkcionalnostjo usmerjevalnika Linksys WAG200G:

    Poleg tega pri nekaterih ponudnikih to morda tehnično ni mogoče, ker ne zagotavljajo "belega" .

    Posredovanje vrat na oddaljeni strežnik z uporabo tunela SSH

    V tem primeru je morda možna povezava prek SSH edina pot— z lokalnega stroja Windows (istega, na katerega se želimo povezati prek SSH) na oddaljeni strežnik. V tem primeru morate imeti dostop SSH do nekega strežnika v internetu.

    Nastavitev "obratnega" tunela SSH

    Tako posredovanje je mogoče preprosto izvesti s preprostim odjemalcem SSH Putty (obstaja tudi). Nato se lahko povežete s tem zelo oddaljenim strežnikom prek posredovanih vrat.

    Tukaj gre v bistvu za zanko. Odpremo sejo SSH iz sistema Windows do oddaljenega strežnika in znotraj te povezave tuneliramo vrata SSH samega Windows Powershellserverja (ali FreeSSHd) do lokalnih vrat 3322 oddaljenega strežnika. In v isti seji se zdaj povezujemo nazaj v Windows na Powershell prek teh istih vrat 3322 ... Upam, da niste zmedeni. Ampak ... To je čarovnija, prijatelji! :) SSH tuneli so poseben svet, z njihovo pomočjo lahko narediš neverjetne stvari, odpreš takšna vrata, da bi vsi varnostniki bridko jokali, če bi nenadoma izvedeli za vse to... Ampak oh dobro.

    No, če morate vrata Windows SSH deliti s svetom, je dovolj, da določite ip_server:3322 kot cilj v nastavitvah povratnega tunela. Na Windows se boste lahko preko SSH povezali od koder koli, kjer je dostop do prav tega strežnika.

    Kako preveriti, ali so vrata pravilno posredovana?

    Zelo preprosto. Preverite, ali je odprt. V primeru SSH odprto pristanišče bo odgovoril s sporočilom o svoji različici. večina najenostavnejši način preverjanje vrat - pripomoček telnet.

    Samo vnesite v ukazno vrstico, ločeno s presledki:

    telnet domena_ali_IP vrata

    Če so vrata na voljo, boste videli nekaj takega:

    Odgovor SSH, če so vrata na voljo

    Če vrata iz nekega razloga niso na voljo, boste videli »povezava zavrnjena« ali »časovna omejitev povezave«. V prvem primeru bo takojšen in pomeni, da so vrata zaprta s požarnim zidom.

    V drugem primeru bo videti kot "visenje" in lahko traja do nekaj minut - odjemalec telnet bo poskušal vzpostaviti povezavo. To lahko pomeni tudi blokado s požarnim zidom, vendar druge vrste. Bodisi preprosto, da navedeni gostitelj ni na voljo ali pa so vrata na njem zaprta.

    Če ste se lahko povezali prek telneta, pritisnite kombinacijo tipk Ctrl+] in enter prenehati, nato Enter. V nasprotnem primeru ne boste mogli prekiniti seje in boste morali odpreti novo okno konzole, če ga še vedno potrebujete.

    Ta članek je označen kot nedokončan. Glej opombo na koncu članka.

    Ta članek je posvečen odjemalcu in strežniku varnega terminala (varna lupina) v Ubuntuju, njuni konfiguraciji in uporabi. SSH je poseben omrežni protokol, ki omogoča oddaljeni dostop do računalnika z visoko stopnjo varnosti povezave. Več o protokolu ssh si lahko preberete.

    Opis principov delovanja in uporabljenih aplikacij

    V bistvu je SSH implementiran v obliki dveh aplikacij - strežnika SSH in odjemalca SSH.Ubuntu uporablja brezplačno izvedbo odjemalca in strežnika SSH - OpenSSH. Pri povezovanju odjemalec opravi postopek avtorizacije s strežnikom in med njima se vzpostavi šifrirana povezava. Strežnik OpenSSH lahko deluje s protokoloma ssh1 in ssh2. Protokol ssh1 trenutno velja za nevarnega in njegovo uporabo zelo odsvetujemo. Namenoma izpuščam različne tehnične podrobnosti protokola, saj je glavni namen tega priročnika opis njegove konfiguracije in uporabe. Na internetu je veliko člankov o samem protokolu, načelih njegovega delovanja, algoritmih šifriranja itd., O njem lahko na primer podrobno preberete.

    Namestitev

    Namestite OpenSSH Uporabite lahko ukaz iz terminala:

    sudo apt-get namestite ssh

    Metapaket ssh vsebuje odjemalca in strežnik, vendar bo to najverjetneje namestilo samo strežnik, saj je odjemalec že privzeto vključen v Ubuntu.

    Nastavitev strežnika

    pri namestitev SSH- strežnik se samodejno registrira ob zagonu. Njegov zagon, zaustavitev ali ponovni zagon lahko nadzorujete z ukazi:

    sudo storitev ssh stop| začeti| ponovni zagon

    Glavna konfiguracijska datoteka za strežnik SSH je datoteka /etc/ssh/sshd_config, ki jo lahko bere ali ureja samo superuporabnik. Po vsaki spremembi te datoteke morate znova zagnati strežnik ssh, da uveljavite takšne spremembe.

    Primer privzete konfiguracije strežnika SSH v Ubuntuju:

    # Primer konfiguracije strežnika open-ssh z ruskimi # # komentarji..2010. # # # # # # Legenda : # # Z "privzeto" mislimo na vedenje sshd, ko # # direktiva ni izrecno podana. Omeniti velja, da v Ubuntuju # # datoteka sshd_config že vsebuje številne nastavitve, # # ki so privzete nastavitve posebej za Ubuntu. # # Takšne nastavitve so določene v tej datoteki. # # # ################################################# ############# ################# Nastavitve naslova/vrat itd. ########### ######################################### # ###################### # # ## Vrata ####################### ### ############################# # # # Uporabljena vrata. Določite jih lahko več, na primer: # # Vrata 22 # # Vrata 23 # # Vrata 24 # # Priporočljiva je uporaba nestandardnih vrat, ker # # standard pogosto skenirajo roboti za morebitne # # luknje. Lahko se izpusti, če je navedeno # # prek naslova. Glejte tudi parameter ListenAddress. # # # Port 22 # # ## ListenAddress ########################################## ### # # # Omrežni naslov, na katerem strežnik posluša. Naslov lahko # # zapišete takole: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Če vrata niso podana, bo sshd poslušal ta naslov in # # vrata, navedena v možnosti Port. Če boste # # uporabili ListenAddress, ne da bi navedli vrata, mora biti # # možnost Port pred možnostjo ListenAddress. Če ni določen # #, privzeto posluša vse lokalne # # naslove. Določite lahko več naslovov. # # # ## Naslov Družina ############################################## # # # Podaja, katero družino naslovov IP naj uporablja # # sshd. Možni možnosti: # # “any” - kateri koli # # “inet” (samo IPv4) # # “inet6” (samo IPv6) # # Privzeto - “any”. # Naslov Družina inet # # ## UporabiDNS ############################################ # ######## # # # Določa, ali naj sshd preveri ime gostitelja in # # uporabi to ime gostitelja za preverjanje naslova IP, ki ga pošlje odjemalec, glede na # # prejetega od DNS. # # Privzeta vrednost je "da". # # # ################################################# ############# ############# Nastavitve uporabniškega dostopa ############### ####### ##################################################### ### # # # Dovolitev/nedovoljenje uporabnika določajo direktive # # DenyUsers, AllowUsers, DenyGroups in AllowGroups. # # v tem primeru gre preverjanje od zgoraj navzdol po verigi: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Sprejeta so samo imena uporabnikov in skupin, številski # # identifikatorji (UserID) niso prepoznani. Pravilen # # zapis več uporabnikov/skupin po vrsti, ločenih s presledki # #. Če je zapisano v obliki uporabnik@gostitelj, sta # # uporabnik in gostitelj ločeno preverjena, kar # # omogoča omejitev dostopa na določene uporabnike iz # # določenih gostiteljev. Ne smemo pozabiti, da direktivi # # DenyUsers in AllowUsers vzameta # # ime uporabnika kot parameter, medtem ko DenyGroups in AllowGroups vzameta # # ime skupine. Glejte VZORCI v man ssh_config za več # # informacij o obrazcih za zapisovanje imen uporabnikov in skupin. # # # ## DenyUsers ############################################## ### # # # Seznam UPORABNIKOV, ki NE MOREJO uporabljati sshd. # # Privzeto - ni določeno = nihče ni prepovedan. Tisti. če je # # tukaj naveden uporabnik, mu bo zavrnjen dostop # # do ssh strežnika. # # # ## AllowUsers ############################################## ## # # # Seznam UPORABNIKOV, ki LAHKO uporabljajo sshd, # # Privzeto - ni določeno = dovoljeno vsem. Tisti. če je # # določen vsaj en uporabnik, je ssh dostop do strežnika # # na voljo samo temu uporabniku. # # # ## DenyGroups ############################################## ## # # # Seznam SKUPIN, ki jih sshd NE sme uporabljati. # # Privzeto - ni določeno = nobena skupina ni prepovedana. ## To je če je podana vsaj ena skupina, bo uporabnikom # #, vključenim v to skupino, zavrnjen dostop do ssh # # strežnika. # # # ## AllowGroups ############################################## # # # # Seznam SKUPIN, ki jih LAHKO uporablja sshd. # # Privzeto - ni določeno = dovoljeno vsem. Tisti. če # # je podana vsaj ena skupina, bodo samo tisti uporabniki # #, ki so v njej, imeli dovoljen dostop do strežnika ssh.# # # ##################### # #################################################### ### Možnosti, ki določajo stanje povezave ############## ############################## ####### ######################### # # ## TCPKeepAlive ############## ######### ######################### # # # Označuje, ali mora sistem pošiljati sporočila TCP odjemalcu # # za ohranitev povezave. Če pošljete te pakete, # # lahko ugotovite, ali je povezava prekinjena. Vendar to tudi # # pomeni, da se lahko povezava prekine v primeru # # trenutnega izpada usmerjanja in # # je to za nekatere zelo moteče. Po drugi strani pa, če # # taka sporočila niso poslana, lahko seje na strežniku # # trajajo neomejeno dolgo, ustvarjajo uporabnike »duhe« # # in požirajo vire strežnika. Privzeta vrednost je “da”,# # tj. pošiljati takšna sporočila. Če želite onemogočiti pošiljanje # # takih sporočil, nastavite vrednost na »ne«. Prej se je ta # # možnost imenovala KeepAlive. Omeniti velja, da # # obstajajo bolj varni načini za preverjanje statusa # # povezave (glejte spodaj). # # # TCPKeepAlive da # # ## ClientAliveCountMax ####################################### # # # Nastavi število sporočil odjemalcem, ki jih sshd # # pošlje zaporedoma, ne da bi prejel odgovor od # # odjemalca. Če je prag dosežen in # # se odjemalec ne odzove, bo sshd prekinil povezavo z odjemalcem in prekinil # # sejo ssh. Omeniti velja, da se uporaba takih # # sporočil popolnoma razlikuje od direktive TCPKeepAlive. # # Sporočila do/od odjemalcev so poslana po šifriranem # # kanalu in zato niso dovzetna za ponarejanje. Sporočila # # TCPKeepAlive so dovzetna za ponarejanje. Odjemalec živ # # mehanizem je še posebej dragocen v primerih, ko morata strežnik in odjemalec # # vedeti, kdaj je povezava postala neaktivna. Privzeta # # vrednost je 3. Če je ClientAliveInterval # # nastavljen na 15 in ClientAliveCountMax ostane na # # privzeti vrednosti, bodo neodzivni odjemalci prekinjeni po približno # # 45 sekundah. Ta direktiva deluje samo za # # protokol ssh2. # # # ## ClientAliveInterval ########################################## # # # Nabori časovni interval v sekundah. Če med # # tem intervalom ni komunikacije z odjemalcem, sshd # # pošlje sporočilo po šifriranem kanalu, ki zahteva # # odgovor od odjemalca. Privzeta vrednost je 0, tj. # # ne pošiljajte takih sporočil. Ta direktiva deluje # # samo za protokol ssh2. # # # ################################################# ############# ################# Splošne možnosti preverjanja pristnosti ################# ## ##################################################### ######## # # ## AuthorizedKeysFile ####################################### # # # # Določa datoteko, ki vsebuje javne ključe # #, ki se uporabljajo za avtentikacijo uporabnikov. Direktiva # # lahko vsebuje žetone v obliki %M, ki so vstavljeni med # # postopkom vzpostavljanja povezave. # # Definirani so naslednji žetoni: # # %% - zamenjano z dobesednim "%" # # %h - zamenjano z domačim imenikom # # overjenega uporabnika # # %u - zamenjano z imenom overjenega uporabnika # # Tako je ključna datoteka lahko določena kot # # na absoluten način (tj. ena datoteka v skupni rabi s ključi) in # # dinamično - odvisno od uporabnika (tj. ena # # datoteka za vsakega uporabnika). # # Privzeto je “.ssh/authorized_keys”. # # Primer za datoteko s ključi v uporabnikovi domači mapi: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Primer za datoteko v skupni rabi: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Glejte opis datoteke authorized_keys za več informacij. # # # ## ChallengeResponseAuthentication ############################## # # # Določa, ali naj se dovoli preverjanje pristnosti izziv-odziv # # ). Podprte so vse # # vrste avtentikacije iz login.conf. Privzeto je "da", # # tj. dovoli. # # Na Ubuntuju - onemogočeno iz varnostnih razlogov. # # # ChallengeResponseAuthentication ne # # ## HostbasedUsesNameFromPacketOnly ########################## # # # Določa, kako naj strežnik pridobi odjemalčevo ime gostitelja # # ko avtentikacijska shema, ki temelji na preverjanju gostitelja. # # Če je nastavljen na "yes", bo sshd # # uporabil ime gostitelja, ki ga je zagotovil odjemalec, ko bo preverjal ujemanje v datotekah # # ~/.shosts, ~/.rhosts ali /etc/hosts.equiv. # # (izvajanje povratne razrešitve DNS) Če je nastavljeno na "ne"# # - bo sshd razrešil ime iz same povezave TCP. # # Privzeto je "ne". # # # ## IgnoreRhosts ############################################## # # # Preprečuje uporabo datotek .rhosts in .shosts # # pri preverjanju pristnosti na osnovi gostitelja. # # (RhostsRSAAuthentication ali HostbasedAuthentication). # # Datoteki /etc/hosts.equiv in /etc/ssh/shosts.equiv sta še # # v uporabi. # # Privzeto je "da". # # # IgnoreRhosts da # # ## IgnoreUserKnownHosts ##################################### # # # Označuje, ali naj sshd prezre uporabniško # # datoteko "znani gostitelji" ~/.ssh/known_hosts med # # postopkom preverjanja pristnosti na osnovi gostitelja # # (RhostsRSAAuthentication ali HostbasedAuthentication). # # Privzeto je »ne«. # # # ## PermitBlacklistedKeys #################################### # # # Označuje, ali naj bo sshd sprejet ključi na črnem seznamu # # kot ogroženi (znano ogroženi # # ključi (glejte ssh-vulnkey)). Če je nastavljeno na “yes” - # # bodo poskusi avtentikacije s takimi ključi zabeleženi # # in sprejeti, če je nastavljeno na “ne” - # # bodo poskusi avtentikacije zavrnjeni. # # Privzeto je »ne«. # # # ## PermitEmptyPasswords ########################################## # # # In primeru dovoljene avtentikacije z z uporabo gesla , # # označuje, ali je možna prijava s praznim geslom. # # Privzeto je »ne«. # # # PermitEmptyPasswords ne # # ## PermitRootLogin ########################################## # # # # Označuje, ali je ssh prijava kot superuporabnik # # (root) možna. Lahko ima naslednje vrednosti: # # “da” - superuporabnik se lahko prijavi. Uporabljena je # # trenutna shema globalnega preverjanja pristnosti. # # # # “brez gesla” - superuporabnik se lahko prijavi. # # Preverjanje pristnosti gesla bo zanj onemogočeno. # # # # “forced-commands-only” - superuporabnik se bo lahko prijavil z # # avtentikacijo na podlagi javnega ključa in # # le, če posreduje ukaz, ki ga je treba izvesti. # # To je uporabno za izdelavo varnostnih kopij, # # tudi ko je običajna (tj. ne preko ssh) # # prijava superuporabnika onemogočena. Vse druge # # metode avtentikacije za superuporabnika bodo blokirane.# # # # “ne” - superuporabnik ne more uporabiti ssh za # # prijavo. # # # # Privzeta vrednost je "da". # # # PermitRootLogin da # # ## Protokol ########################################## ######## # # # Določa, kateri protokol naj uporablja sshd. # # Možni vrednosti '1' in '2' sta ssh1 oziroma ssh2 # #. Možno je sočasno pisanje, v tem primeru # # naj bodo vrednosti ločene z vejicami. # # Privzeto je “2.1”. # # Omeniti velja, da vrstni red protokolov v # # vnosih ne določa prioritete, ker odjemalec izbere, kateri # # izmed več protokolov, ki jih je predlagal strežnik, naj # # uporabi Vnos "2,1" je popolnoma enak # # vnosu "1,2". # # # Protokol 2 # # ## UsePAM ########################################## ########## # # # Omogoči vmesnik PAM (vmesnik Pluggable Authentication Module # #). Če je nastavljeno na "da", bodo vse vrste preverjanja pristnosti # # poleg obdelave modula seje in računa # # preverjanje pristnosti PAM uporablja se na podlagi # # odziva na izziv (ChallengeResponseAuthentication in # # PasswordAuthentication) Ker # # preverjanje pristnosti z odzivom na izziv v PAM ima na splošno isto vlogo # # kot preverjanje pristnosti z geslom, onemogočite # # ali PasswordAuthentication ali # # ChallengeResponseAuthentication. Omeniti velja, da # # če je direktiva UsePAM omogočena, ne boste mogli zagnati # # sshd kot uporabnik, ki ni root. # # Privzeta vrednost je “ne”. # # # UsePAM yes # # ## PasswordAuthentication ##################################### # # # Označuje, ali omogočeno ali preverjanje pristnosti z # # geslom. # # Privzeto je "da". # # # ## HostKey ############################################## ##### # # # Določa datoteko, ki vsebuje zasebni gostiteljski ključ # #, ki ga uporablja SSH. Privzeto je /etc/ssh/ssh_host_key # # za protokol ssh1 in /etc/ssh/ssh_host_rsa_key in # # /etc/ssh/ssh_host_dsa_key za protokol ssh2. Omeniti velja # #, da sshd ne bo uporabil datoteke # #, ki je dostopna komur koli razen uporabniku. Uporabite lahko # # več datotek s ključi, ključi so “rsa1” - # # za protokol ssh1 in “dsa”/“rsa” za protokol ssh2. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################### ### ############################# ########### Možnosti protokola SSH različice 1 (ssh1) ### ########## ####################################### ### #################### # MOČNO NI PRIPOROČLJIVO uporabljati protokol ssh1.# # Protokol ssh2 je veliko varnejši od ssh1 # ### ######## ############################################ ####### # # ## KeyRegenerationInterval ################################### # # # Za protokol ssh1 - enkrat ob določenem času # # se samodejno ustvari nov začasni strežniški ključ # # (če je bil uporabljen). To je storjeno, da # # prepreči dešifriranje prestreženih sej, da bi se # # kasneje prijavili v stroj s parametri teh sej in # # ukradli ključe. Takšen ključ ni nikjer shranjen (shranjen je v # # RAM). Ta direktiva določa # # življenjsko dobo ključa v sekundah, po kateri bo # # ponovno ustvarjen. Če je vrednost nastavljena na 0 - # #, ključ ne bo več ustvarjen. # # Privzeta vrednost je 3600 (sekund). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAuthentication ################################### # # # Označuje, ali je avtentikacija na podlagi # # datotek rhosts ali /etc/hosts.equiv v povezavi z uspešno # # avtentikacijo gostitelja prek RSA. # # Relevantno samo za protokol ssh1. # # Privzeto je »ne«. # # # RhostsRSAAavtentikacija ne # # ## RSAAavtentikacija ######################################### ## # # # Označuje, ali je dovoljena "čista" avtentikacija RSA. # # Relevantno samo za protokol ssh1. # # Privzeto je "da". # # # RSAAuthentication da # # ## ServerKeyBits ########################################## ### # # # Določa število bitov v začasnem ključu strežnika za # # protokol ssh1. Najmanjša vrednost je 512. # # Privzeta vrednost je 1024. # ServerKeyBits 768 # # ################################## # ######################################### Možnosti protokola SSH različice 2 (ssh2) ## ## ######## ########################################## ### #################### # # ## šifre ######################## ## ###################### # # # Označuje šifrirne algoritme, dovoljene za # # protokol ssh2. Več algoritmov mora biti # # ločenih z vejicami. Podprti algoritmi: # # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “ arcfour128", # # "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". # # Privzeto: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, # # aes192-ctr, aes256 -ctr # # # ## HostbasedAuthentication #################################### # # # Označuje, ali je preverjanje pristnosti omogočeno na podlagi # # preverjanja gostitelja. rhosts ali /etc/hosts.equiv je preverjen, # # in če je uspešen, skupaj z uspešnim preverjanjem # # javnega ključa, je dostop dovoljen. Ta direktiva # # je enaka direktivi RhostsRSAAuthentication in # # je primerna samo za protokol ssh2. # # Privzeto je "ne". # # # Hostbased Authentication ne # # ## MAC ######################################### ############ # # # Označuje veljaven algoritem MAC (koda za preverjanje pristnosti sporočila # #). Protokol ssh2 uporablja # # algoritem MAC za zaščito celovitosti podatkov. Več # # algoritmov mora biti ločenih z vejicami. # # Privzeto: # # hmac-md5,hmac-sha1, [e-pošta zaščitena],hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ########################### ########## # # # Označuje, ali je dovoljeno preverjanje pristnosti na podlagi # # javnega ključa. Relevantno samo za protokol ssh2. # # Privzeto je "da". # # # PubkeyAuthentication da ############################################### # ##################################### Možnosti GSSAPI ############ ## ################################################### ## ########################## # # ############# Velja samo za protokol ssh2 #### #### ### # # ## GSSAPIAavtentikacija ######################################## ## # # # Označuje, ali preverjanje pristnosti uporabnika # # temelji na GSSAPI ali ne. Privzeto je "ne", tj. prepovedano. # # # ## GSSAPIKeyExchange ########################################## # # # Označuje, ali je dovoljena izmenjava ključev na podlagi # # GSSAPI. Izmenjava ključev z uporabo GSSAPI ni odvisna od # # ssh ključi pri preverjanju identitete gostitelja. # # Privzeta vrednost je "ne" - tj. menjava je prepovedana. # # # ## GSSAPICleanupCredentials ################################## # # # Določa, ali naj se samodejno uniči # # uporabniški predpomnilnik poverilnic za preverjanje pristnosti, ko # # seja konča. # # Privzeta vrednost je "da" - tj. je treba uničiti. # # # ## GSSAPIStrictAcceptorCheck ################################## # # # Določa, kako strogo mora biti preverjanje identitete # # odjemalec pri preverjanju pristnosti prek GSSAPI. # # Vrednost "yes" povzroči, da se odjemalec overi pri # # sprejemni gostiteljski storitvi na trenutnem gostitelju. Vrednost "ne" # # omogoča odjemalcu avtentikacijo s katerim koli # # servisnim ključem. # # Privzeta vrednost je "da". # # Treba je omeniti, da nastavitev tega na "ne" morda # # deluje samo z redkimi knjižnicami Kerberos GSSAPI. # # # ################################################# ############# #################### Možnosti Kerberos ################# ########## ########################################## ### ################### # # ## KerberosAuthentication ######################## ### ######## # # # Označuje, ali geslo # #, ki ga uporabnik navede za preverjanje pristnosti # # (PasswordAuthentication), zahteva preverjanje v Kerberos KDC. # # Za uporabo te možnosti mora strežnik # # preveriti, ali je KDC resničen. (Strežnik potrebuje # # Kerberos servtab, ki omogoča preverjanje # # identitete KDC) # # Privzeta vrednost je "ne". # # # ## KerberosGetAFSToken ########################################## # # # Če je AFS aktiven in je uporabnik prejel Kerberos 5 TGT, # # ali naj poskusi pridobiti žeton AFS, preden lahko uporabnik # # dostopa do svoje domače mape. # # Privzeto je »ne«. # # # ## KerberosOrLocalPasswd #################################### # # # Označuje, kaj storiti v primeru če preverjanje pristnosti # # prek Kerberosa ne uspe. Če je # # vrednost = "da", bo geslo preverjeno z uporabo # # katerega koli dodatnega lokalnega avtorizacijskega mehanizma, # # na primer /etc/passwd. # # Privzeto je "da". # # # ## KerberosTicketCleanup #################################### # # # Označuje, ali naj se datoteka samodejno uniči z # # uporabniškim predpomnilnikom vstopnic na koncu seje. # # Privzeto je "da". # # # ################################################# ############# ################### Možnosti preusmeritve #################### # ## ################################################# ## ############# # # ## AllowAgentForwarding ############################### #### ### # # # Podaja, ali želite dovoliti ali onemogočiti preusmeritev na # # ssh-agent. Privzeto je »da«, tj. dovoli. # # Omeniti velja, da onemogočanje preusmeritve ne bo # # povečalo varnosti, razen če je uporabnikom tudi # # zavrnjen dostop do lupine, ker vedno bodo lahko namestili # # lastne agente. # # # ## AllowTcpForwarding ####################################### # # # Označuje, ali dovoli ali onemogoči preusmeritev TCP. # # Privzeto je »da«, tj. dovoli. Omeniti velja, # # da tako kot pri AllowAgentForwarding onemogočanje # # preusmeritve ne bo izboljšalo varnosti, dokler imajo # # uporabniki dostop do konzole, ker bodo lahko # # namestili svoje analoge. # # # # # ## GatewayPorts ############################################ ## # # # Podaja, ali želite oddaljenim gostiteljem dovoliti dostop do # # posredovanih vrat. Privzeto sshd posluša # # povezave do posredovanih vrat samo na lokalnem # # vmesniku povratne zanke. To preprečuje drugim oddaljenim # # gostiteljem, da bi se povezali s posredovanimi vrati. Lahko # # uporabite GatewayPorts, da omogočite sshd, da # # naredi to. Direktiva ima lahko 3 vrednosti: # # "ne" - samo povratna zanka. # # "da" - poljubni naslovi. # # "clientspecified" - naslovi, ki jih določi stranka. # # # ## Dovoljenje Odpri ############################################### ## # # # Označuje, kje je dovoljeno posredovanje vrat TCP. # # Določanje preusmeritve mora imeti eno od # # naslednjih oblik: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Določite lahko več vnosov tako, da jih ločite s presledki. # # Argument “any” lahko uporabite za odstranitev vseh # # omejitev pri posredovanju vrat. Privzeto je dovoljena katera koli # # preusmeritev. # # # ## PermitTunnel ############################################## # # # Označuje, ali je preusmeritev naprav tun dovoljena. # # Lahko sprejme vrednosti: # # "da" # # "od točke do točke" (3 omrežni sloj) # # “ethernet” (2. omrežna plast) # # “ne” # # Vrednost “yes” omogoča tako “point-to-point” # # kot “ethernet”. Privzeto je »ne«. # # # ################################################# ############# #################### Možnosti beleženja ################### ### ################################################# ## ############# # # ## SyslogFacility ############################### ## ########## # # # Nastavi objektno kodo dnevnika za pisanje sporočil v # # syslog iz sshd. Možne vrednosti: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Privzeta vrednost je AUTH. # # # SyslogFacility AUTH # # ## LogLevel ######################################### ######## # # # Nastavi stopnjo podrobnosti dnevnika sshd. # # Možne možnosti: # # SILENT # # QUIET # # FATAL # # ERROR # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Privzeto je INFO. # # DEBUG in DEBUG1 sta drug drugemu enakovredna. # # DEBUG2 in DEBUG3 nastavita najvišje ravni odpravljanja napak # #. Beleženje na ravni DEBUG ogroža # # zasebnost uporabnikov in ni priporočljivo. # # # LogLevel INFO # # ############################################# ##################################### Preusmeritev X11 ############# ######## ############################################ # #################### # # ## X11Posredovanje ########################## ### ################ # # # Označuje, ali je grafični podsistem X11 # # preusmeritev omogočena. Lahko sprejme vrednosti "da" ali "ne". # # Privzeto je »ne«. # # Pozor - omogočanje preproste preusmeritve X11 je # # veliko tveganje za strežnik in odjemalce, ker V # # takšni preusmeritvi sshd proxy display # # sprejme povezave s poljubnih naslovov. Uporabite # # direktivo X11UseLocalhost, da omejite dostop do preusmeritvenega strežnika # # X. Omeniti velja, da # # onemogočanje preusmeritve ne bo zagotovilo, da # # uporabniki ne bodo mogli preusmeriti X11, ker ki imajo # # dostop do konzole, vedno namestijo svoj lasten # # preusmerjevalnik. Preusmeritev X11 bo # # samodejno onemogočena, če je omogočena direktiva UseLogin # #. # # # X11Posredovanje da # # ## X11UseLocalhost ########################################## # # # # Označuje, ali naj sshd omeji obseg # # posredovanja X11 na naslov lokalne povratne zanke ali # # naj dovoli vse naslove. Privzeto - sshd # # "vsadi" strežnik za preusmeritev X11 lokalni naslov # # in nastavi del imena gostitelja spremenljivke okolja DISPLAY na # # “localhost”. Omeniti velja, da # # nekateri starejši odjemalci X11 morda ne bodo delovali s temi # # nastavitvami. Privzeto je "da", tj. preusmeritev # # je omejena z lokalnim gostiteljem, vrednost - "ne" - onemogoči # # omejitve. # # # ## XAuthLocation ############################################# # # # Podaja celotno pot do programa xauth. # # Privzeto je /usr/bin/X11/xauth. # # # ## X11DisplayOffset ########################################## # # # Označuje številko prvega prikaza, ki je na voljo sshd kot preusmeritev # # X11. To se naredi tako, # # da se preusmerjeni X-ji ne prekrivajo z # # pravimi. Privzeto je 10. # # # X11DisplayOffset 10 # # ######################################### ## ###################### ##################### Različne možnosti ##### ## ################################################## ##### ############################ # # ## LoginGraceTime ############# ####### ######################### # # # Čas, po katerem strežnik prekine povezavo # # uporabnika, če ni mogel prijavite se # # zadovoljivo. Vrednost 0 - omogoča uporabniku # # prijavo za nedoločen čas. Privzeto je 120 (sekund). # # # LoginGraceTime 120 # # ## MaxAuthTries ########################################## ### #### # # # Označuje največje dovoljeno število # # poskusov preverjanja pristnosti na povezavo. # # Ko število neuspelih poskusov preseže polovico # # podane vrednosti, bodo vsi naslednji poskusi # # zabeleženi. Privzeta vrednost je 6. # # # ## MaxSessions ######################################## ####### # # # Določa največje število sočasnih povezav # # za vsako omrežno povezavo. Privzeto je 10. # # # ## MaxStartups ########################################## ###### # # # Določa največje število sočasnih # # nepooblaščenih povezav s sshd. Če # # število povezav preseže omejitev, bodo vse dodatne # # povezave opuščene, dokler trenutne # # povezave niso dokončane z uspešno avtorizacijo # # ali pa se izteče časovno obdobje, navedeno v # # direktivi LoginGraceTime. Privzeta vrednost je 10. # # Po želji lahko nastavite povezave na zgodnjo ponastavitev tako, da # # določite tri vrednosti kot parameter, ločene # # z dvopičjem “start:rate:full” (na primer: "10:30 :60"). # # sshd bo zavrnil poskus povezave z verjetnostjo, ki je enaka # # “rate/100” (tj. 30 % v našem primeru), če že obstajajo # # “start” (10) nepooblaščene povezave. # # Verjetnost narašča linearno in vsak # # poskus povezave bo zavrnjen, če število nepooblaščenih # # povezav doseže "polno" (60). # # # ## Stiskanje ############################################### # # # # Označuje, ali je stiskanje podatkov omogočeno. Lahko # # "da" - stiskanje je omogočeno. # # "zakasnjeno" - stiskanje je zakasnjeno, dokler # # uporabnik ni uspešno overjen. # # "ne" - stiskanje je onemogočeno. # # Privzeto je "zakasnjeno". # # # ## UseLogin ############################################### #### # # # Označuje, ali naj se prijava uporabi za # # interaktivno sejo. Privzeta vrednost je »ne«. # # Omeniti velja, da prijava ni bila nikoli uporabljena za # # izvajanje ukazov na daljavo. Upoštevajte tudi, da bo # # uporaba prijave onemogočila uporabo # # direktive X11Forwarding, ker prijava ne ve, kaj # # narediti z xauth. Če je direktiva # # UsePrivilegeSeparation omogočena, bo po # # avtorizaciji onemogočena. # # # ## UsePrivilegeSeparation ####################################### # # # Določa, ali sshd morali bi ločiti privilegije. Če je odgovor da # #, bo najprej ustvarjen neprivilegiran podrejeni # # proces za dohodni omrežni promet. Po uspešni # # avtorizaciji bo ustvarjen drug proces s privilegiji # # prijavljenega uporabnika. Glavni namen # # ločevanja privilegijev je preprečiti zlorabo pravic dostopa. # # Privzeta vrednost je "da". # # # UsePrivilegeSeparation da # # ## StrictModes ######################################### ### ##### # # # Označuje, ali naj sshd preveri načine dostopa in # # lastništva uporabniških map in datotek, preden # # dovoli uporabniku prijavo. To je običajno zato, ker # # novinci pogosto omogočijo zapisovanje v datoteke # # vsem. Privzeto je "da". # # # StrictModes da # # ## AcceptEnv ########################################## ####### # # # Podaja, katere spremenljivke okolja, # # ki jih posreduje odjemalec, bodo sprejete. Oglejte si možnost SendEnv v odjemalcu. # # Omeniti velja, da je posredovanje spremenljivk možno le # # za protokol ssh2. Spremenljivke so podane z imenom, # # lahko uporabite maske ('*' in '?'). Določite lahko # # več spremenljivk, ločenih s presledki, ali AcceptEnv razdelite na # # več vrstic. Bodite previdni - nekatere # # spremenljivke okolja se lahko uporabijo za obhod # # prepovedanih uporabniških okolij. Previdno uporabljajte to # # direktivo. Privzeto ni sprejeta # # spremenljivka uporabniškega okolja. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################### # # # Podaja, ali naj sshd sprejme # # ~/.ssh/environment in možnost environment= v # # ~/.ssh/authorized_keys. Privzeto je »ne«. Omeniti velja # #, da omogočanje obdelave okolja lahko # # uporabnikom da možnost, da zaobidejo omejitve v nekaterih # # konfiguracijah, ki uporabljajo mehanizme, kot je # # LD_PRELOAD. # # # # # ## PidFile ############################################ # ####### # # # Podaja datoteko, ki vsebuje ID procesa # # (ID procesa, PID) demona SSH. # # Privzeto - /var/run/sshd.pid # # # # # ## PrintLastLog ############################# # ############## # # # Določa, ali naj sshd prikaže datum in čas # # zadnje seje, ko se uporabnik interaktivno prijavi. # # Privzeto je "da". # # # PrintLastLog da # # ## PrintMotd ########################################## ####### # # # Določa, ali naj sshd prikaže /etc/motd # #, ko se uporabnik interaktivno prijavi. V nekaterih # # sistemih (na primer Ubuntu) te informacije # # prikaže tudi lupina. # # Privzeta vrednost je "da". # # # PrintMotd no # # ## Pasica ########################################## ########## # # # Označuje, katera datoteka vsebuje besedilno pasico, # # ki bo prikazana uporabniku PRED # # postopkom avtentikacije. Možnost je na voljo samo za protokol ssh2.# # Privzeto - ne prikaže ničesar. # # V Ubuntuju datoteka issue.net vsebuje besedno zvezo Ubuntu (različica), # # na primer za karmic je "Ubuntu 9.10". Lahko se # # uporabi za dezorientacijo morebitnih napadalcev, # # tako da tam napišete na primer "Moj D-Link Internet Router" =) # # # Pasica /etc/issue.net # # ## ChrootDirectory ###### ##### ################################ # # # Če je navedeno, ponuja pot do # # chroot po avtentikaciji. Pot in vsa njena # # vsebina morata ustrezati mapam # # v lasti superuporabnika in v # # ne smejo zapisovati drugi uporabniki. # # Pot lahko vsebuje oznake, ki so zamenjane med # # postopkom avtentikacije: # # %% - zamenjano z dobesednim "%" # # %h - zamenjano z domačim imenikom # # overjenega uporabnika # # %u - zamenjati z imenom overjenega uporabnika # # chroot -mapa mora vsebovati vse potrebne datoteke in # # mape za uporabniško sejo. Interaktivna # # seja zahteva najmanj: # # lupino, običajno sh # # osnovne naprave v /dev, kot so: # # null, zero, stdin, stdout, stderr, arandom in tty # # za sejo prenosa podatkov z uporabo brez sftp # # dodatne nastavitve ni potreben, če se # # uporablja notranji proces strežnika sftp. Glejte Podsistem za # # več informacij. Privzeto se chroot ne izvaja. # # # ## ForceCommand ############################################## # # # Povzroči, da se podani ukaz izvede. Ignorira # # vse ukaze, ki jih pošlje odjemalec ali zapiše v # # ~/.ssh/rc. Ukaz se kliče iz uporabniške lupine # # z možnostjo -c. Primerno za zagon lupine, # # ukaza ali podsistema. Najbolj uporabno znotraj bloka # # Match. Ukaz, ki ga je prvotno izdal odjemalec, je shranjen # # v spremenljivki okolja SSH_ORIGINAL_COMMAND. Če # # določite ukaz "internal-sftp", se # # zažene notranji strežnik sftp, ki ne potrebuje dodatnih # # datotek in map, opisanih v direktivi ChrootDirectory. # # # ## Podsistem ############################################### ### # # # Definira in konfigurira zunanji podsistem (na primer # # demon za prenos datotek). # # Argumenti so ime in ukaz (z možnimi # # argumenti), ki bosta izvedena ob zahtevi # # podsistemov. Ukaz sftp-server zažene podsistem za prenos datotek “sftp” - # #. Poleg tega lahko določite # # “internal-sftp” kot podsistem - ki bo zagnal # # notranji strežnik sftp. To lahko zelo poenostavi # # konfiguracijo pri uporabi # # ChrootDirectory direktive.Privzeto # # niso klicani podsistemi. Relevantno samo za protokol ssh2. # # # Podsistem sftp /usr/lib/openssh/sftp-server # # ################################## ############################# ####################### Ujemanje Blokiraj #################################################### ## ##################################### # # # Posebej sem ga premaknil na konec datoteko, da bo bolj priročno # # napišite pravila ujemanja. # # MadKox. # # # # Direktiva Match predstavlja začetek pogojnega # # bloka. Če so izpolnjeni vsi kriteriji, navedeni v vrstici # # Match, se direktive v naslednjih vrsticah bloka izvedejo, # # kar omogoča, da se vrednosti globalnih direktiv v # # datoteki sshd_config obidejo za primer, ki je merila za # # Match direktivo. Za blok se štejejo vse vrstice, ki pridejo za vrstico # # s kriterijem (Match - lines) do naslednje vrstice za ujemanje # # ali do konca datoteke. Argument direktive Match je en ali # # več parov vnosov kriterijev. Možne vrste vnosov: # # Uporabnik # # Skupina # # Gostitelj # # Naslov # # Vnosi lahko vsebujejo bodisi posamezne vrednosti # # (na primer Uporabnik=uporabnik) ali več vrednosti # # ločenih z vejicami (Uporabnik=uporabnik1 ,uporabnik2). Uporabite lahko tudi regularne izraze, opisane v # # razdelku PATTERNS datoteke ssh_config. Vnosi v # # kriterijih naslova lahko vsebujejo naslove v zapisu CIDR # # (dolžina naslova/maske, npr. »192.0.2.0/24« ali # # »3ffe:ffff::/32«). Treba je omeniti, da se mora podana # # dolžina maske ujemati z naslovom in # # predolga/kratka za naslov ne bo delovala. # # Match lahko uporablja samo # # določen niz direktiv kot direktive: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KerberosAuthentication # # MaxAuthTries # # MaxSessions # # PasswordAuthentication # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

    Zgornje besedilo lahko kopirate v svoj lasten sshd_config in ga pozneje uporabite za konfiguracijo.

    Nepravilno nastavljen SSH strežnik je že sam po sebi velika ranljivost v varnosti sistema, saj ima morebitni napadalec možnost pridobiti skoraj neomejen dostop do sistema. Poleg tega ima sshd veliko dodatnih uporabnih možnosti, ki jih je priporočljivo omogočiti za izboljšanje uporabnosti in varnosti.

    Port, ListenAddress in AddressFamily

    Ti trije parametri določajo, na katerih vratih in naslovih bo vaš strežnik poslušal dohodne povezave. Prvič, smiselno je, če je mogoče, družino naslovov, ki se obdelujejo, omejiti na tiste, ki se dejansko uporabljajo, tj. če uporabljate samo IPv4, onemogočite IPv6 in obratno. To lahko storite na primer s parametrom AddressFamily (da omogočite IPv4 in zavrnete IPv6):

    Naslov Družina inet

    Drugič, priporočljivo je spremeniti standardna vrata (22), na katerih posluša sshd. To je posledica dejstva, da številne mrežni skenerji Nenehno se poskušajo povezati z vrati 22 in pridobiti vsaj dostop z brutalnim vsiljevanjem prijav/gesel iz svoje baze podatkov. Tudi če imate onemogočeno preverjanje pristnosti z geslom, ti poskusi močno zamašijo dnevnike in (v velikih količinah) lahko negativno vplivajo na hitrost ssh strežnika. Če iz nekega razloga ne želite spremeniti standardnih vrat, lahko uporabite različne zunanje pripomočke za boj proti brutalnim silam, na primer fail2ban, in vgrajene, kot je MaxStartups.
    Vrata lahko nastavite kot absolutno vrednost za vse vmesnike z uporabo direktive Port ali kot specifično vrednost za vsak vmesnik z uporabo direktive ListenAddress. Na primer:

    Pristanišče 2002

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    Zavrni oddaljeni dostop za superuporabnika

    Privzeto je root dostop prepovedan z geslom (s ključem je možen) – možnost PermitRootLogin je nastavljena na without-password. Toda pod pogojem, da ima v Ubuntuju uporabnik, dodan med namestitvijo sistema, privzeto možnost reševanja vseh skrbniških nalog prek sudo, ustvarite možnost korenski dostop v sistem prek ssh - izgleda nerazumno (tudi z avtentikacijo ključa). Priporočljivo je, da ga popolnoma izklopite. to možnost ali pa jo uporabite samo v načinu samo z vsiljenimi ukazi. Korenski dostop lahko onemogočite takole:

    DovoljenjeRootLogin št

    Preverjanje pristnosti gesla

    Preverjanje pristnosti z geslom, ki je privzeto dovoljeno, je praktično najbolj primitiven način avtorizacije v sshd. Po eni strani to poenostavi konfiguracijo in povezovanje novih uporabnikov (uporabnik mora poznati le svojo sistemsko prijavo/geslo), po drugi strani pa je geslo vedno mogoče uganiti, uporabniki pa pogosto zanemarijo ustvarjanje kompleksnih in dolgih gesel. . Posebni roboti nenehno skenirajo ssh strežnike, dostopne iz interneta, in se poskušajo prijaviti vanje tako, da iz njihove podatkovne baze izsiljujejo prijave/gesla. Zelo priporočljivo je, da ne uporabljate preverjanja pristnosti z geslom. Onemogočite ga lahko tako:

    PasswordAuthentication št

    Če iz nekega razloga še vedno želite uporabljati preverjanje pristnosti z geslom, se prepričajte, da se nihče ne more prijaviti s praznim geslom. Če želite to narediti, nastavite direktivo PermitEmptyPasswords:

    PermitEmptyPasswords št

    Protokola SSH1 in SSH2

    Kot že omenjeno, lahko sshd deluje s protokoloma SSH1 in SSH2. Vendar uporabo nevarnega SSH1 zelo odsvetujemo. Sshd lahko prisilite, da deluje samo s protokolom SSH2, takole:

    Avtentikacija na podlagi ključev SSH2 RSA

    Najbolj zaželena metoda avtorizacije je avtentikacija na podlagi ključev SSH2 RSA. S to metodo uporabnik na svoji strani ustvari par ključev, od katerih je en ključ skrivni, drugi pa javen. Javni ključ se prekopira na strežnik in se uporablja za preverjanje identitete uporabnika. Za več informacij o ustvarjanju para ključev in o tem, kako jih postaviti na strežnik, glejte opis odjemalca SSH. Preverjanje pristnosti javnega ključa lahko omogočite takole:

    PubkeyAuthentication da

    Strežnik mora vedeti, kje naj išče uporabnikov javni ključ. Za to se uporablja posebna datoteka authorized_keys. Njegova sintaksa je lahko naslednja:

    # Komentarji so zapisani le v novi vrstici # splošen videz vnosov v datoteki authorized_keys # [možnosti] tip_ključa (ssh-rsa ali ssh-dss) zelo_dolg_niz_nerazumljiv navadnemu človeku [login@host] ssh-rsa AAAAB3Nza...LiPk == [e-pošta zaščitena] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [e-pošta zaščitena] command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [e-pošta zaščitena]

    Določite lahko eno datoteko v skupni rabi s ključi ali eno datoteko za vsakega uporabnika. Slednja metoda je bolj priročna in varna, saj lahko, prvič, določite različne kombinacije tipk za vsakega uporabnika, in drugič, omejite dostop do javnega ključa uporabnika. Datoteko s ključi lahko določite z uporabo direktive AuthorizedKeysFile:

    AuthorizedKeysFile %h/.ssh/my_keys

    za datoteko uporabnika sheme
    oz

    AuthorizedKeysFile /etc/ssh/authorized_keys

    za shemo z datoteko v skupni rabi. Odjemalec SSH privzeto išče ključe v datoteki ~/.ssh/authorized_keys.

    Več o varnosti

    Dodatne nastavitve

    Uporabniki in skupine.

    Če imate veliko uporabnikov, ki "živijo" na vašem strežniku, in želite dovoliti dostop prek ssh samo nekaterim od njih, lahko uporabite direktive DenyUsers, AllowUsers, DenyGroups in AllowGroups. Za več informacij o teh direktivah si oglejte komentarje v primeru sshd_config.

    Možnosti stanja povezave

    Privzeto je med metodami za določanje stanja povezave omogočena samo metoda preverjanja povezave TCP - TCPKeepAlive, vendar lahko sshd določi stanja povezave na bolj priročne in varne načine. Za več podrobnosti si oglejte ustrezen razdelek v primeru sshd_config.

    Izvedba. MaxStartups

    Posredovanje vrat

    Preusmeritev X11

    Na strežniku v datoteki /etc/ssh/sshd_config nastavite parameter (privzeto omogočen):

    NaprejX11 da

    Na odjemalcu nastavite parametre v datoteki /etc/ssh/ssh_config (privzeto onemogočeno):

    ForwardAgent da ForwardX11 da

    Na odjemalcu ga lahko zaženete takole: ssh yurauname@serverip firefox. Ali pa najprej pojdite na ssh yurauname@serverip in nato zaženite na primer sudo synaptic.

    SFTP

    sshd ima privzeto vgrajen strežnik SFTP. SFTP protokol (SSH Prenos datoteke Protocol) - SSH protokol za prenos datotek. Zasnovan je za kopiranje in izvajanje drugih operacij datotek prek zanesljive in varne povezave. Kot osnovni protokol za povezavo se praviloma uporablja protokol SSH2. Če želite omogočiti podporo SFTP, dodajte vrstico v sshd_config

    Podsistem sftp /usr/lib/openssh/sftp-server

    Podpora za SFTP je privzeto omogočena.

    Uporaba meril. Direktiva o ujemanju

    Nastavitev odjemalca SSH

    Prijava s ključem velja za najbolj varno in v večini primerov je ta funkcija omogočena na strani strežnika, zato za njeno uporabo niso potrebne pravice superuporabnika. Na odjemalskem računalniku ustvarimo ključ:

    ssh-keygen -t rsa

    Pozvani smo, da vnesemo geslo za zaščito datoteke ključev (izkaže se za uporabno, če datoteka pade v napačne roke). Če bomo skripte izvajali preko SSH, potem pustimo prazno. Javni ključ prenesemo na strežnik z ukazom

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub uporabnik@ strežnik

    To je to, lahko vstopiš.

    Ko se ssh izvaja na nestandardnih vratih:

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p vrata uporabnik@strežnik"

    Če pride do napake: Napačna vrata "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    poskusite dati parametre v narekovaje:

    Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p vrata uporabnik@strežnik""

    Ko se povezujete z oddaljenim sistemom, je priročno uporabljati pripomoček za zaslon.

    Nastavitev oddaljenega imenika ssh v Nautilusu

    Namestitev oddaljenega imenika z uporabo sshfs

    Namestitev oddaljenega imenika v lokalni imenik

    sshfs uporabnik@ hostingserver.ru:/ domači/ uporabniški imenik ~/ sshfsdir

    Odpenjanje

    Fusermount -u ~/ sshsfdir

    SSH vzdevki

    Pri uporabi več strežnikov z različnimi parametri dostopa (nestandardna vrata, dolgo ime gostitelja, prijava, ki ni lokalna itd.), je včasih dolgočasno vsakič znova vnesti vse nastavitve povezave. Da bi to olajšali, lahko uporabite vzdevke.

    Nastavitve so shranjene v ~/.ssh/config za enega uporabnika in v /etc/ssh/ssh_config globalno za vse uporabnike.

    Primer konfiguracije Opisanih je lahko več strežnikov. Več podrobnosti v man ssh_config(ne smemo zamenjevati z sshd_config)

    Host AliasName # Poljubno ime gostitelja HostName 1.2.3.4 # Določite lahko IP in ime gostitelja (če se DNS izvaja) User YourUserName # Če se uporabnik ne ujema z lokalnim uporabnikom Port YourSSHPort # Če so nestandardna vrata

    Po tem se lahko povežete s strežnikom z ukazom

    ssh AliasName

    ssh-agent

    Diagnosticiranje težav s povezavo

      Analiza dnevnika povezav:

    ssh -vvv uporabnik@ gostitelj

      Analiza konfiguracijskih datotek odjemalca in strežnika.

    Lokacija konfiguracijskih datotek je na voljo v

    Človek sš človek sšd

    Uporaba pametnih kartic

    1. Ustvarjanje potrdila in izvoz javnega ključa ter odjemalskega dela na Windows + Putty SC je opisano na spletni strani: http://habrahabr.ru/post/88540/ Tam opisani dodatek Key Manager je na voljo samo v starejših različicah Firefoxa. Preizkušeno na različici 3.5 za Windows. Neposredna povezava do dodatka: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. Priprava strežnika. Prepričati se morate, da vaša konfiguracija sshd omogoča preverjanje pristnosti z javnimi ključi. Če želite to narediti, morate v datoteki »sshd_config« določiti vrednost parametra »PubkeyAuthentication« na »yes«. Nato dodamo naš prej pridobljeni javni ključ (v eni vrstici) v datoteko “~/.ssh/authorized_keys”. Upoštevajte, da se datoteka ».ssh/authorized_keys« nahaja v domačem imeniku uporabnika, ki se bo nato prijavil z javnim ključem.

    3. Odjemalski del v sistemu Linux. Paket OpenSSH boste morali znova zgraditi brez parametrov. Priporočljivo je le, da podate predpone imenika, na primer –prefix=/usr. Upoštevati morate tudi, da bodo konfiguracijske datoteke v /usr/etc. Preden začnete, potrebujete naslednje pakete: opensc-lite-devel, zlib-devel, openssl-devel. Namestite gonilnik pametne kartice. Zaradi udobja v konfiguraciji ssh_config (ne zamenjujte s sshd_config) podajte pot do knjižnice pkcs: PKCS11Provider=<путь к библиотеке>

    4. Na odjemalcu zaženite ssh user@host Če je pametna kartica (žeton) povezana, boste pozvani k vnosu gesla in prijavljeni v sejo SSH.

    Možne težave uporabo

    Običajna kombinacija tipk Ctrl + S, ki se uporablja v številnih urejevalnikih za shranjevanje popravkov, bo pri delu v terminalu s strežnikom ssh povzročila izvedbo ukaza XOFF, ki na videz spominja na zamrznitev seje. Vendar pa ni. Strežnik še naprej sprejema vnosne znake in ukaze, vendar jih ne prikaže na zaslonu. Da se rešite iz te zagate, preprosto uporabite kombinacijo Ctrl + Q in s tem ponovno vklopite način XON.

    Povezave

    To pomeni, da je uporabnik1 lahko registriran tako zase - v datoteki /home/user1/.ssh/keys) kot za drugega uporabnika, kar mu bo omogočilo prijavo iz svojega računalnika tako "pod samim seboj" kot pod "drugim"

    SSH (Secure Shell) je omrežni protokol, namenjen oddaljenemu upravljanju strežnika in prenosu podatkov prek šifriranih povezav TCP. Večina storitev gostovanja, tudi virtualnih, danes omogoča dostop prek FTP in SSH. Po mojem mnenju je to super, SSH je veliko bolj priročen in varnejši za uporabo.

    Nastavitev SSH

    Namestitev bo potekala za namenski strežnik, VDS, VPS na Debian, Ubuntu. Konfiguracijska datoteka se nahaja tukaj: /etc/ssh/sshd_config.
    Če imate običajno gostovanje, mora biti vse konfigurirano, kot je treba, pojdite na razdelek.

    Privzeto demon SSHD (ki ga spreminjamo) ne potrebuje nobenih nastavitev in deluje dobro. Naredili bomo le nekaj manjših sprememb, da bi omejili dostop nezaželenih oseb do strežnika.

    Če konfiguracijsko datoteko naredite nepravilno, lahko izgubite dostop do strežnika prek ssh, zato poskrbite, da imate alternativne možnosti za dostop do njega, na primer z nadzorno ploščo ISPManager.

    Kako omejiti dostop SSH

    Vse spremembe so narejene v /etc/ssh/sshd_config
    Da bi spremembe začele veljati, morate

    Spremeni vrata

    Vrata 9724

    Zdaj morate pri avtorizaciji določiti 9724 namesto standardnih 22 vrat.
    Metoda je zelo preprosta in učinkovita proti večini preprostih hekerskih botov, ki trkajo na standardna vrata. Glavna stvar pri tem je, da ne ustvarite konflikta z drugimi storitvami in izberete številko, ki je očitno neuporabljena.

    Onemogočite komunikacijo s starim protokolom

    Tu definiramo, da je komunikacija možna le z uporabo protokola v2

    Če niste prijavljeni korenina, pred vsemi ukazi konzole morate dodati sudo - okrajšava za Nadomestni uporabnik in DO- zamenjati uporabnika in narediti (pod njim). Omogoča vam na primer izvajanje ukazov kot superuporabnik korenina.

    Zmanjšajte število poskusov avtorizacije

    MaxAuthTries 2

    Število poskusov gesla. Privzeto je 6. Če iskanje ne uspe, se komunikacijska seja prekine.

    Zmanjšajte čakalni čas avtorizacije

    Login GraceTime 30s

    Privzeto lahko avtorizacijska seja traja 120 sekund. Po tem času se konča. 2 minuti za avtorizacijo sta pretirano, ves ta čas ima strežnik povezavo odprto, kar je zelo neracionalno. Pol minute je dovolj.

    Zapri dostop IP

    Preden nastavite omejitve IP-ja, se prepričajte, da boste v primeru napake v nastavitvah in posledične prepovedi lastnega IP-ja imeli alternativni način za ponovni dostop do strežnika

    Če dostop potrebujete samo vi, je najenostavnejši in najbolj zanesljiv način, da blokirate dostop od vsepovsod, razen iz vašega IP-ja ali, če je dinamičen, potem iz obsega IP-jev.

    1. Odprite /etc/hosts.allow in dodajte SSHD tja: 192.168.1.1

      kjer je 192.168.1.1 vaš IP. Če imate dinamični IP, definirajte IP z masko podomrežja in namesto IP-ja zapišite svoje podomrežje, na primer:

      SSHD: 192.168.0.0/16

    2. Odprite /etc/hosts.deny in tja dodajte: SSHD: VSE

    Drug način za omejitev dostopa prek IP-ja

    Uporabite lahko naslednjo direktivo:

    AllowUsers = *@1.2.3.4

    Tukaj dovoljujemo samo dostop za IP 1.2.3.4

    SSH avtorizacija po ključih

    Veliko varneje, bolj priročno in pravilno bo nastavitev avtorizacije ssh brez gesla. V ta namen bo uporabljena ključna avtorizacija.

    Tukaj so torej navodila.

    Kupili ste svoj prvi VPS ali morda celo strežnik takoj. Zagotovo imate spletno ploščo za upravljanje. Toda trdi skrbniki gredo vedno skozi konzolo 😉 Zato se moramo naučiti, kako to storiti. V lekciji bomo namestili program PuTTY, se povezali s strežnikom preko SSH protokola ter se naučili določati zaseden in prosti prostor na strežniku.

    Putty program za povezavo s strežnikom preko SSH protokola

    Prenesite Putty s spletnega mesta putty.org Zase prenesem različico " Za Windows na Intel x86 - PuTTY: putty.exe"

    Razpakirajte arhiv in zaženite program.

    Tako izgleda okno programa po zagonu. V polje »Ime gostitelja (ali naslov IP)« sem že vnesel naslov IP svojega strežnika:

    Vnesite domeno ali naslov IP vašega strežnika in kliknite gumb »Odpri«. Odpre se okno ukaznega poziva. Od nas zahteva uporabniško ime in geslo. Najprej vnesite svojo prijavo in nato geslo. Pozor, pri vnosu gesla se znaki ne izpisujejo na ekranu, niti zvezdice *** se ne izpisujejo. Zato geslo vnesemo kot na slepo. Enter in pritisnite Enter. Če ste geslo vnesli pravilno, boste prijavljeni v konzolo za upravljanje strežnika. Prikaže se vrstica s časom zadnje prijave in podatki o operacijskem sistemu.

    Ukazi v konzoli

    pwd

    df

    Ukaz df prikazuje količino prostega in uporabljenega prostora na strežniku v vseh nameščenih datotečnih sistemih

    du

    Ukaz du prikazuje, koliko prostora zavzame mapa ali datoteka.
    Primer ukaza:

    Du -h /domov/

    Ta ukaz bo pokazal, koliko prostora zaseda imenik /home/.

    To je vse. Prvo spoznavanje povezovanja s strežnikom prek SSH in programa putty je končano. S pomočjo teh informacij se lahko odpravite na strežnik in vidite, koliko prostora zavzamejo podatki na njem.



    
    Vrh