Izveidojiet savienojumu ar virtuālo serveri, izmantojot SSH un SFTP. Savienojuma izveide ar serveri, izmantojot SSH un SFTP Savienojuma izveide caur ssh caur špakteli

Kas ir SSH un kāpēc tas ir vajadzīgs?

Secure Shell (SSH) ir tīkla protokols, kas nodrošina čaulas funkcijas attālai mašīnai, izmantojot drošu kanālu. SSH ir aprīkots ar dažādiem drošības uzlabojumiem, tostarp lietotāja/resursdatora autentifikāciju, datu šifrēšanu un datu integritāti, padarot neiespējamus tādus populārus uzbrukumus kā noklausīšanās, DNS/IP krāpšanās, datu viltošana un savienojumu nolaupīšana utt. Ftp, telnet vai rlogin lietotāji, kuri izmanto protokolu, kas pārsūta datus skaidrā tekstā, ļoti ieteicams pārslēgties uz SSH.

OpenSSH ir atvērtā koda SSH protokola ieviešana, kas ļauj šifrēt tīkla savienojumu, izmantojot programmu kopu. Ja vēlaties izmantot SSH operētājsistēmā Linux, varat instalēt OpenSSH, kas sastāv no OpenSSH servera un klienta pakotnēm.

OpenSSH servera/klienta pakotnēm ir šādas utilītas:

  • OpenSSH serveris: sshd (SSH dēmons)
  • OpenSSH klients: scp (droša attālā kopija), sftp (droša failu pārsūtīšana), slogin/ssh (droša attālā pieteikšanās), ssh-add (privātās atslēgas pabeigšana), ssh-agent (autentifikācijas aģents), ssh-keygen (autentifikācijas atslēgu pārvaldība ).
OpenSSH servera un klienta instalēšana operētājsistēmā Linux

Ja vēlaties instalēt OpenSSH serveri/klientu un konfigurēt OpenSSH serveri automātiskai startēšanai, izpildiet tālāk sniegtos norādījumus, kas atšķiras atkarībā no izplatīšanas.

Debian, Ubuntu vai Linux Mint

$ sudo apt-get install openssh-server openssh-client

Sistēmās, kuru pamatā ir Debian, pēc instalēšanas OpenSSH sāknēšanas laikā tiks palaists automātiski. Ja kāda iemesla dēļ OpenSSH serveris netiek startēts automātiski sistēmas startēšanas laikā, varat palaist šo komandu, lai sistēmas palaišanas laikā tieši pievienotu ssh sāknēšanai.

$ sudo update-rc.d ssh noklusējuma iestatījumi

Fedora vai CentOS/RHEL 7

$ sudo yum -y instalēt openssh-serveri openssh-klientus $ sudo systemctl sākt sshd pakalpojumu $ sudo systemctl iespējot sshd.service

CentOS/RHEL 6

$ sudo yum -y instalēt openssh-server openssh-klientus $ sudo pakalpojums sshd sākums $ sudo chkconfig sshd ieslēgts

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl sākt sshd pakalpojumu $ sudo systemctl iespējot sshd.service

OpenSSH servera iestatīšana

Ja vēlaties konfigurēt OpenSSH serveri, varat rediģēt visas sistēmas konfigurācijas failu, kas atrodas mapē /etc/ssh/sshd_config.

Ir dažas OpenSSH opcijas, kas varētu interesēt:
Pēc noklusējuma sshd klausās 22. portā un klausās ienākošos ssh savienojumus. Mainot ssh noklusējuma portu, varat novērst dažādus automatizētus hakeru uzbrukumus.
Ja jūsu iekārtai ir vairāk nekā viens fiziskais tīkla interfeiss, iespējams, vēlēsities pārbaudīt, kurš no tiem ir saistīts ar sshd, šim nolūkam varat izmantot opciju ListenAddress. Šī opcija palīdz uzlabot drošību, ierobežojot ienākošo SSH tikai noteiktā saskarnē.

HostKey /etc/ssh/ssh_host_key

Opcija HostKey nosaka, kur atrodas personīgā resursdatora atslēga.

PermitRootLogin Nr

Opcija PermitRootLogin — vai root var pieteikties sistēmā, izmantojot ssh.

AllowUsers Alise Bob

Izmantojot opciju AllowUsers, noteiktiem Linux lietotājiem varat selektīvi atspējot ssh pakalpojumu. Varat norādīt vairākus lietotājus, atdalot tos ar atstarpēm.

Kad /etc/ssh/sshd_config ir mainīts, noteikti restartējiet ssh pakalpojumu.

Lai restartētu OpenSSH uz Debian, Ubuntu vai Linux Mint:

$ sudo /etc/init.d/ssh restart

Lai restartētu OpenSSH operētājsistēmā Fedora, CentOS/RHEL 7 vai Arch Linux:

$ sudo systemctl restartējiet sshd.service

Lai restartētu OpenSSH operētājsistēmā CentOS/RHEL 6:

$ sudo pakalpojuma sshd restartēšana

Kā izveidot savienojumu ar SSH

Savienojuma izveide ar SSH no Linux

Linux lietotājiem nav jāinstalē papildu programmas.

Savienojuma izveide ar SSH no Windows

Slēpts no viesiem

.

Cygwin ir vairāk nekā tikai SSH klients. Tas ir spēcīgs kombinētājs, kas atbalsta daudzas Linux komandas. Piemēram, Cygwin ļauj ļoti viegli izveidot SSL sertifikātus (tāpat kā Linux). Operētājsistēmā Windows, lai izveidotu pašparakstītus sertifikātus, jums jādejo ar tamburīnu. Cygwin ir ļoti ērti lietojams cURL (nav nepieciešams neko atsevišķi instalēt) utt. Tie, kam trūkst komandrindas un Linux programmu operētājsistēmā Windows, atradīs Cygwin kontaktligzdu.

Cygwin instalēšana ir vienkārša. Ejam uz

Slēpts no viesiem

Un lejupielādēt

Slēpts no viesiem

Slēpts no viesiem

Tiks lejupielādēts neliels fails — šī ir instalēšanas programma. Grafiskais uzstādītājs. Lai gan tajā ir daudz iespēju, tās visas ir diezgan vienkāršas un daudzas ir pazīstamas no citiem grafiskajiem instalētājiem. Ja kaut kas nav skaidrs, vienkārši noklikšķiniet uz "Tālāk". Varbūt tikai šāds logs var radīt neskaidrības:

Šeit ir parādīti visi uzstādīšanai pieejamie elementi. Mums tie šobrīd nav jāsaprot. Jo populārākie jau ir atzīmēti uzstādīšanai. Un, ja nākotnē kaut kā trūkst, varat viegli instalēt to, kas jums nepieciešams.

SSH savienojums (kopīgs operētājsistēmām Linux un Windows)

Linux lietotāji atver konsoli, Windows lietotāji ieraksta Cygwin.

Lai izveidotu savienojumu, SSH ir nepieciešama šāda informācija:

  • IP vai resursdatora nosaukums
  • porta numurs
  • Lietotājvārds
  • lietotāja parole
SSH var uzminēt divus no šiem parametriem: lietotājvārdu un porta numuru. Ja ports nav norādīts, tiek pieņemts noklusējuma ports. Ja lietotājs nav norādīts, tiek izmantots tāds pats vārds kā sistēmā, no kuras tiek izveidots savienojums. Piemēram, savienojuma resursdatora adrese ir 192.168.1.36. Ja es sazvanīšu

Ssh 192.168.1.36

Es redzu sekojošo

Alex@Mial-PC ~ $ SSH 192.168.1.36. Saimnieka "192.168.1.36 (192.168.1.36) autentiskums" var "izveidot. ECDSA atslēgas pirkstu nospiedums ir sha256: Sixzesuiivoeq00rxaqhxylxuea8sc5r/yphl8wfp8s. Jā nē)?

Tā kā es veidoju savienojumu ar saimniekdatoru pirmo reizi, tas ir nepazīstams saimniekdators. Viņi man jautā, vai es gribu turpināt. Es zvanu :

Brīdinājums: “192.168.1.36” (ECDSA) ir pastāvīgi pievienots zināmo saimniekdatoru sarakstam. [aizsargāts ar e-pastu]"s parole:

Labi, resursdators 192.168.1.36 ir pievienots pazīstamo saimniekdatoru sarakstam. Man tiek prasīta lietotāja Aleksa parole. Tā kā serverī ar SSH tāda lietotāja nav, bet es noklikšķinu Ctrl+C(pārtraukt) un ievadiet komandu kopā ar attālās sistēmas lietotājvārdu. Lietotājs tiek ievadīts pirms attālās iekārtas adreses un ir atdalīts no adreses ar simbolu @. Simbols @ angļu valodā tiek lasīts kā at, un to var tulkot kā “in”. Tie. ieraksts [aizsargāts ar e-pastu] var interpretēt kā "mial lietotājs mašīnā 192.168.1.36".

Ssh [aizsargāts ar e-pastu]

Alex@MiAl-PC ielūgums tika aizstāts ar ielūgumu mial@mint. Tas nozīmē, ka mēs jau esam attālajā mašīnā, t.i., mēs jau esam izveidojuši savienojumu. Ja nepieciešams norādīt portu (ja tas atšķiras no standarta), tad ports jānorāda aiz slēdža -p. Piemēram, šādi:

Ssh [aizsargāts ar e-pastu]-p 10456

Pēc savienojuma izveides mūs sagaida ar kaut ko līdzīgu:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Debian GNU/Linux sistēmā iekļautās programmas ir bezmaksas programmatūra; precīzi katras programmas izplatīšanas noteikumi ir aprakstīti atsevišķos failos /usr/share/doc/*/copyright. Debian GNU/Linux tiek piegādāts NEKĀDAS GARANTIJAS, ciktāl to pieļauj piemērojamie tiesību akti. Pēdējā pieteikšanās: otrdien, 2015. gada 16. jūnijā, 15:32:25 no 192.168.1.35

No tā izriet, ka attālā mašīna ir Linux Mint ar kodola 3.16, 64 bitu versiju. Svarīga informācija ir arī pēdējās pieteikšanās laiks un IP adrese, no kuras tika izveidots savienojums. Ja laiks un IP jums nav zināmi un jūs esat vienīgais lietotājs, jūsu sistēma ir apdraudēta un jums ir jārīkojas atbilstoši.

Ievadīsim dažas komandas, lai pārliecinātos, kur mēs atrodamies un kas mēs esam: pwd, [B]uname -a utt.:

Lai beigtu sesiju (izrakstītos), sastādiet

Vai noklikšķiniet Ctrl+D.

Piesakieties SSH, neievadot paroli

Pirmkārt, tas ir ērtāk. Otrkārt, tas ir drošāk.

Pirmkārt, mums ir jāizveido rsa atslēgas. Ja esat Linux lietotājs, jums viss ir kārtībā. Ja esat Windows lietotājs, bet neklausījāties manā padomā un izvēlējāties PuTTY, tad jums ir radusies problēma un domājiet paši, kā to atrisināt. Ja tev ir Cygwin, tad arī viss ir kārtībā.

Ja jums izdevās pieteikties attālajā sistēmā, izrakstieties. Pēc tam ierakstiet

Ssh-keygen -t rsa

Mums tiek prasīts faila nosaukums, mums nekas nav jāievada, tiks izmantots noklusējuma nosaukums. Tas arī pieprasa paroli. Es neievadu paroli.

Tagad attālajā mašīnā mums ir jāizveido .ssh direktorijs. Tālāk tiks apspriesta komandas izpilde attālā mašīnā. Pagaidām vienkārši nokopējiet komandu, neaizmirstot mainīt IP adresi un lietotājvārdu uz savu:

Ssh [aizsargāts ar e-pastu] mkdir.ssh

Tagad mums ir jākopē faila id_rsa.pub saturs uz attālo mašīnu. Tas ir ļoti vienkārši izdarāms (neaizmirstiet mainīt datus uz saviem):

Cat .ssh/id_rsa.pub | ssh [aizsargāts ar e-pastu]"kaķis >> .ssh/authorized_keys"

Tagad mēs vienkārši piesakāmies, un viņi mums vairs neprasa nekādu paroli. Un tagad tā būs vienmēr.

Komandu izpilde attālajā serverī, neveidojot čaulas sesiju

Papildus čaulas sesijas atvēršanai attālajā sistēmā ssh ļauj izpildīt arī atsevišķas komandas attālajā sistēmā. Piemēram, lai palaistu koka komandu attālajā resursdatorā ar nosaukumu remote-sys un parādītu rezultātus vietējā sistēmā, rīkojieties šādi:

Ssh remote-sys koks

Mans īstais piemērs:

Ssh [aizsargāts ar e-pastu] koks

Izmantojot šo paņēmienu, varat veikt interesantas darbības, piemēram, palaist komandu ls attālajā sistēmā un novirzīt izvadi uz failu vietējā sistēmā:

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

Reāls piemērs:

Ssh [aizsargāts ar e-pastu]"ls *" > dirlist.txt kaķis dirlist.txt

Ņemiet vērā atsevišķas pēdiņas iepriekš minētajā komandā. Tas ir tāpēc, ka mēs nevēlamies, lai ceļa paplašināšana tiktu veikta vietējā mašīnā; jo mums ir nepieciešama šī izpilde attālā sistēmā. Turklāt, ja mēs vēlamies novirzīt standarta izvadi uz attālās mašīnas failu, mēs varam ievietot novirzīšanas paziņojumu un faila nosaukumu atsevišķās pēdiņās:

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

Standarta izvades pārsūtīšana no vietējās mašīnas uz attālo mašīnu, izmantojot ssh

Tikpat interesanta komandu izpildes iespēja tiek dota nedaudz augstāka:

Cat .ssh/id_rsa.pub | ssh [aizsargāts ar e-pastu]"kaķis >> .ssh/authorized_keys"

  • Cat komanda nolasa un parāda .ssh/id_rsa.pub faila saturu, kas atrodas lokālajā datorā, rindu pa rindiņai.
  • | (pipe) nodod citai komandai to, kas parādās standarta izvadē.
  • Komandas, kas apstrādātu tai nodotās virknes, vietā tiek izveidots savienojums ar attālo sistēmu (ssh [aizsargāts ar e-pastu]).
  • Attālā sistēma saņem līnijas, kurām tiek nodrošināta komanda cat >> .ssh/authorized_keys. Tie. standarta izvades saturs tiek ierakstīts rindiņu pa rindiņai failā .ssh/authorized_keys, kas atrodas attālajā datorā.
Attālā datorā esošās grafikas programmas atvēršana

Nākamajam trikam nepieciešami divi Linux datori. Diemžēl pat Cygwin nevar tikt galā ar šo triku. Turklāt abām Linux sistēmām ir jābūt grafiskam lietotāja interfeisam.

Tunelēšana ar SSH

Cita starpā, kas notiek, kad tiek izveidots savienojums ar attālo resursdatoru, izmantojot SSH, tiek izveidots šifrēts tunelis, kas tiek veidots starp vietējo un attālo sistēmu. Parasti šo tuneli izmanto, lai nodrošinātu, ka vietējā datorā ievadītās komandas tiek droši pārsūtītas uz attālo iekārtu, kā arī rezultāts tiek droši nosūtīts atpakaļ.

Papildus šai pamata funkcionalitātei SSH protokols ļauj lielāko daļu trafika veidu nosūtīt pa šifrētu tuneli, izveidojot sava veida VPN (virtuālo privāto tīklu) starp lokālo un attālo sistēmu.

Iespējams, ka visbiežāk izmantotā no šīm funkcijām ir iespēja pārraidīt X Window sistēmas trafiku. Sistēmā, kurā darbojas X serveris (tās ir mašīnas, kurām ir grafiskais lietotāja interfeiss), attālā sistēmā ir iespējams palaist X klienta programmu (grafisko lietojumprogrammu) un redzēt tās darbības rezultātus lokālajā sistēmā. To ir viegli izdarīt. Piemēram, es vēlos izveidot savienojumu ar attālo saimniekdatoru remote-sys un tajā palaist programmu xload. Tajā pašā laikā es varēšu redzēt šīs programmas grafisko izvadi vietējā datorā. Tas tiek darīts šādi:

Ssh -X remote-sys xload

Reāls piemērs:

Ssh-X [aizsargāts ar e-pastu] gedit

Tie. SSH sākas ar slēdzi -X. Un tad programma vienkārši sāk darboties. Apskatiet ekrānuzņēmumu.

Es izmantoju Kali Linux. Es veiksmīgi pieteicos attālajā datorā, izmantojot SSH. Pēc tam es palaidu programmu gedit. Šī programma, iespējams, pat nav Kali Linux, bet tā noteikti ir Linux Mint, ar kuru es izveidoju savienojumu. Es redzu šīs programmas rezultātu ekrānā tā, it kā programma darbotos lokāli. Bet atkal es vēlos, lai jūs to saprastu, lokālajā datorā nedarbojas gedit programma. Ja es vēlos saglabāt gedit (vai jebkuras citas šādā veidā atvērtas programmas) rezultātu, izrādās, ka tā darbojas attālā datora vidē, redz tā failu sistēmu utt. Tas ir ērti, ja vēlaties konfigurēt attālais dators, izmantojot grafisko interfeisu.

Kā pārsūtīt attēlu no visas darbvirsmas, jūs uzzināsit vēlāk tajā pašā rakstā sadaļā “Kā konfigurēt VNC, izmantojot SSH”.

Dažās sistēmās šim trikam ir jāizmanto opcija -Y, nevis opcija -X.

Kopēšana no/uz attālo datoru (scp un sftp)

scp

OpenSSH pakotnē ir iekļautas arī divas programmas, kas izmanto šifrētu SSH tuneli, lai kopētu failus tīklā. Pirmā programma - scp(“drošā kopija”) - tiek izmantota biežāk, piemēram, līdzīga cp programma failu kopēšanai. Visievērojamākā atšķirība ir tā, ka faila avots var būt attālais resursdators, kam seko kols un faila atrašanās vieta. Piemēram, ja mēs vēlamies kopēt dokumentu ar nosaukumu document.txt no mūsu mājas direktorija uz remote-sys pašreizējā darba direktorijā mūsu vietējā sistēmā, mēs varētu rīkoties šādi:

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

Reāls piemērs:

# dzēst failu lokālajā datorā, ja tas pastāv rm dirlist.txt # izveidot failu attālajā mašīnā ssh [aizsargāts ar e-pastu]"ls * > dirlist.txt" # pārbaudiet tā klātbūtni ssh [aizsargāts ar e-pastu]"ls -l" # kopējiet to uz vietējo mašīnu scp [aizsargāts ar e-pastu]:dirlist.txt. # pārbaudiet tā saturu cat dirlist.txt

  • [aizsargāts ar e-pastu]- lietotājvārds un attālais resursdators,
  • . (punkts) nozīmē, ka fails ir jāpārkopē uz attālā servera pašreizējo darba direktoriju, bet faila nosaukums paliks nemainīgs, t.i., nfile.txt
  • Piezīme:

    Lai kopētu failu no B uz A, kad esat pieteicies B:
    scp /ceļš/uz/faila lietotājvārds@a:/ceļš/uz/galamērķis
    Faila kopēšana no B uz A, kad esat pieteicies A:
    scp lietotājvārds@b:/ceļš/uz/failu /ceļš/uz/galamērķis

    sftp

    Otrā programma failu kopēšanai, izmantojot SSH, ir sftp. Kā norāda nosaukums, tā ir droša ftp programmas nomaiņa. sftp darbojas tāpat kā sākotnējā ftp programma. Tomēr tā vietā, lai sūtītu skaidru tekstu, tas izmanto šifrētu SSH tuneli. Svarīga sftp priekšrocība salīdzinājumā ar ftp ir tā, ka tai nav nepieciešams darboties FTP serveris attālā resursdatorā. Tam nepieciešams tikai SSH serveris. Tas nozīmē, ka jebkuru attālo mašīnu, kas ir savienota, izmantojot SSH klientu, var izmantot arī kā FTP līdzīgu serveri. Šeit ir sesijas piemērs:

    Alex@MiAl-PC ~ $ sftp [aizsargāts ar e-pastu] Savienots ar 192.168.1.36. sftp> ls dirlist.txt jauns fails.txt nfile.txt temp Videoklipi Dokumenti Lejupielādes Attēli Mūzika Publiskās darbvirsmas Veidnes sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/TakeMeHome sftp> cd temp/TakeMeHomep> get/s mial/temp/TakeMeHome uz TakeMeHome sftp> bye

    SFTP protokolu atbalsta daudzi grafiskie failu pārvaldnieki, kurus var atrast Linux izplatījumos. Izmantojot gan Nautilus (GNOME), gan Konqueror (KDE), mēs varam ievadīt URI (saites), kas sākas ar sftp:// pārejas joslā, un strādāt ar failiem, kas atrodas attālā sistēmā, kurā darbojas SSH serveris.

    Sveiki! Mani interesē jautājums: kā caur SSH izveidot savienojumu ar mājas datoru, izmantojot internetu. Man mājās ir uzstādīts FreeSSHd serveris. Kā es saprotu, man kaut kā jāatver ārējā IP ports 22? Alex

    Jā, bieži rodas vajadzība. Šajā rakstā es runāju par daudzām lietām, bet šeit mēs runāsim tikai par SSH, jo Alekss mums laipni nodrošināja šo iespēju. Turklāt es pats esmu neticami ieinteresēts SSH, un šeit tas ir arī uz Windows... mmm.

    Kas ir SSH un kāpēc tas ir vajadzīgs?

    Lieta tāda, ka SSH ir S drošs SH ell. Protokols drošai piekļuvei vadības apvalkam. Tāpēc tas nodrošina piekļuvi tieši komandrindai, jo Shell tiek tulkots kā apvalks un šeit nozīmē teksta vadības apvalks. Bet kopumā šis protokols ir ievērojams ar to, ka tas ļauj tajā iziet jebkuru citu trafiku un šifrētā veidā. Tādējādi drošās failu sistēmas savienojuma protokols tiek saukts par SFTP un darbojas virs SSH. Bet tas var tunelēt absolūti jebkurus citus savienojumus - vai tas būtu HTTP vai pat RDP. Būtībā tas izrādās “VPN uz ceļa”.

    Šeit Alekss jau ir paveicis pusi darba; viņš instalēja un palaida FreeSSHd savā mājas datorā. Tas ļauj izveidot savienojumu ar Windows, izmantojot SSH. Šajā gadījumā “atļauj” tiek pateikts ļoti stingri. Jo šis risinājums kaut kā darbojas operētājsistēmā Windows. Pirmkārt, tam nav pienācīgas teksta saskarnes - komandrindas kontrolei.

    Vismaz parastais - cmd - ļauj maz ko darīt ar attālo mašīnu. Ir arī Powershell - tas ir modernāks un jaudīgāks risinājums. Freesshd ļauj mainīt konsoli uz Powershell, bet es nevarēju ar to izveidot savienojumu. Es izveidoju savienojumu ar CMD, bet tas ir pilnīgi neizmantojams:

    Otrkārt, FreeSSHd gadījumā es nevarēju izveidot savienojumu ar Windows datoru pat caur lokālo tīklu, nemaz nerunājot par savienojumu ar internetu. Pareizāk sakot, ir iespējams izveidot savienojumu, taču pakalpojums sasalst un avarē; šādā veidā jūs nevarēsit pārvaldīt Windows resursdatoru.

    Tāpēc es pieņemu, ka Aleksam bija nepieciešams ssh serveris operētājsistēmā Windows, lai izveidotu savienojumu ar failu sistēmu vai izmantotu to kā VPN, izmantojot starpniekserveri, izmantojot SSH. Lai gan es šaubos, vai FreeSSHd to atļaus. Jo treškārt: tas pat nesaglabā iestatījumus; restartējot pakalpojumu, viss noiet greizi. Kopumā es ļoti ceru, ka Alekss mums komentāros pastāstīs, kāpēc viņam tas bija vajadzīgs.

    Kā vēl jūs varat palaist SSH operētājsistēmā Windows?

    Ir efektīvāks risinājums - Powershelserver. Lai gan tajā ir arī kļūdas, tas vismaz neavārē. Tāpēc es ieteiktu to izmantot, lai caur SSH izveidotu savienojumu ar Windows serveriem.

    Pirmkārt, tas darbojas stabili, bez avārijām. Un caur to jūs patiešām varat kontrolēt Windows, izmantojot Powershell.

    Visi iestatījumi tiek saglabāti kā parasti. Ir pieejamas tādas pašas funkcijas kā FreeSSHd un pat vairāk - jūs varat izmantot SCP - tā ir failu kopēšana, izmantojot SSH.

    Bet pats šiks ir konsole! Tas darbojas, kungi!

    Savienojos viegli, bez liekām pūlēm ar lietotāju pievienošanu (tas jādara freesshd). Un šī vienkāršā komanda maršrutēšanas tabulas skatīšanai darbojās lieliski un sniedza nepieciešamo informāciju. Frisssh man “iekrita” tieši tad, kad mēģināju apskatīt netstat -rn

    Šeit tiešām var redzēt, ka krievu rakstzīmes netiek rādītas. Tāpēc ar mums to ir viegli iestatīt, es vienkārši iestatīju nepieciešamo kodējumu Powershellserver, restartējiet, izveidoju savienojumu...

    Kodēšanas iestatīšana programmā Powershellserver

    Tagad mums ir pilns SSH, un mēs varam pilnībā pārvaldīt Windows, izmantojot konsoli.

    Microsoft radīs savu SSH risinājumu

    Starp citu, Microsoft jau vasarā paziņoja, ka gatavojas izstrādāt dzimtā Powershell SSH atbalsts jaunajās Windows versijās. Ir ziņu paziņojumi vietnē Habré un pcweek (un vairāk). Tāpēc mēs varam tikai cerēt uz šo nozīmīgo notikumu, jo tas patiešām būs izrāviens darbā neviendabīgi tīkli.

    Pārējās funkcijas - sftp un scp nepārbaudīju, bet nez kāpēc esmu pārliecināts, ka arī tās darbosies lieliski.

    Kā atvērt SSH portu no ārpuses?

    Tātad, mēs esam nonākuši pie slepenās lietas, kuras dēļ šis raksts tika sākts. Es atbildēšu uz lasītāja jautājumu.

    Portu pāradresācija maršrutētājā vai modemā

    Lai izveidotu savienojumu ar datoru no ārpuses, jums patiešām ir jāveic NAT vai, konkrētā gadījumā, . Kā to izdarīt, ir atkarīgs no ierīces, kas tiek izmantota kā vārteja. Tas varētu būt ADSL modems vai . Vairumā gadījumu detalizētus norādījumus savai ierīcei var viegli atrast, izmantojot tādus vaicājumus kā “portu pāradresācija ierīces_modelis" vai "portu pāradresācija ierīces_modelis»

    Lūk, kā tas izskatās manā mājas maršrutētājā Zyxel Keenetic Lite:

    Un šādi tas izskatās ADSL modemā ar Linksys WAG200G maršrutētāja funkcionalitāti:

    Turklāt daži pakalpojumu sniedzēji tas var nebūt tehniski iespējams, jo tie nenodrošina "balto" .

    Porta pārsūtīšana uz attālo serveri, izmantojot SSH tuneli

    Šajā gadījumā vienīgais veids, kā izveidot savienojumu, izmantojot SSH, ir no vietējās Windows mašīnas (tā pati, ar kuru mēs vēlamies izveidot savienojumu, izmantojot SSH) ar attālo serveri. Šajā gadījumā jums ir jābūt SSH piekļuvei kādam serverim internetā.

    "Reversā" SSH tuneļa iestatīšana

    Šādu pārsūtīšanu var viegli veikt, izmantojot vienkāršu SSH klientu Putty (ir arī) Tad jūs varat izveidot savienojumu ar šo ļoti attālo serveri, izmantojot pārsūtīto portu.

    Šeit būtībā tā ir cilpa. Mēs atveram SSH sesiju no Windows uz attālo serveri, un šajā savienojumā mēs tunelējam paša Windows Powershellserver (vai FreeSSHd) SSH portu uz attālā servera vietējo portu 3322. Un tajā pašā sesijā mēs savienojam atpakaļ ar Windows Powershell, izmantojot šo pašu portu 3322... Ceru, ka jūs neesat apmulsis. Bet... Tā ir maģija, draugi! :) SSH tuneļi ir īpaša pasaule, ar to palīdzību var izdarīt neticamas lietas, atvērt tādas durvis, ka visi apsargi rūgti raudātu, ja pēkšņi par šo visu uzzinātu... Bet nu, labi.

    Nu, ja jums ir nepieciešams koplietot Windows SSH portu ar pasauli, pietiek norādīt ip_server:3322 kā galamērķi reversā tuneļa iestatījumos. Jūs varēsiet izveidot savienojumu ar Windows, izmantojot SSH, no jebkuras vietas, kur ir piekļuve šim serverim.

    Kā pārbaudīt, vai ports ir pareizi pārsūtīts?

    Ļoti vienkārši. Jums jāpārbauda, ​​vai tas ir atvērts. SSH gadījumā atvērtais ports atbildēs ar ziņojumu par tā versiju. Vienkāršākais veids, kā pārbaudīt portu, ir telnet utilīta.

    Vienkārši ierakstiet komandrindā, atdalot to ar atstarpēm:

    telnet domēna_vai_IP ports

    Ja ports ir pieejams, jūs redzēsit kaut ko līdzīgu:

    SSH atbilde, ja ir pieejams ports

    Ja ports kāda iemesla dēļ nav pieejams, redzēsit vai nu “savienojums atteikts” vai “savienojuma taimauts”. Pirmajā gadījumā tas būs tūlītējs un nozīmē, ka ports ir slēgts ar ugunsmūri.

    Otrajā gadījumā tas izskatīsies kā “uzkāršanās” un var ilgt līdz pat vairākām minūtēm - telnet klients mēģinās izveidot savienojumu. Tas var nozīmēt arī bloķēšanu ar ugunsmūri, bet cita veida. Vai nu vienkārši norādītais resursdators nav pieejams, vai arī tā ports ir aizvērts.

    Ja varējāt izveidot savienojumu, izmantojot Telnet, nospiediet taustiņu kombināciju Ctrl+] un ievadiet atmest, tad Enter. Pretējā gadījumā jūs nevarēsit pārtraukt sesiju un jums būs jāatver jauns konsoles logs, ja tas joprojām ir nepieciešams.

    Šis raksts ir atzīmēts kā nepabeigts. Skatiet piezīmi raksta beigās.

    Šis raksts ir veltīts Ubuntu drošā termināļa (drošā apvalka) klientam un serverim, to konfigurācijai un lietošanai. SSH ir īpašs tīkla protokols, kas ļauj iegūt attālinātu piekļuvi datoram ar augstu savienojuma drošības pakāpi. Jūs varat lasīt vairāk par ssh protokolu.

    Darbības principu un izmantoto lietojumu apraksts

    Pamatā SSH tiek realizēts divu aplikāciju veidā – SSH serveris un SSH klients.Ubuntu izmanto bezmaksas SSH klienta un servera implementāciju – OpenSSH. Pieslēdzoties klientam tiek veikta autorizācijas procedūra ar serveri un starp tiem tiek izveidots šifrēts savienojums. OpenSSH serveris var strādāt gan ar ssh1, gan ar ssh2 protokoliem. Ssh1 protokols pašlaik tiek uzskatīts par nedrošu, un tā lietošana ir ļoti nevēlama. Es apzināti izlaižu dažādas protokola tehniskās detaļas, jo šīs rokasgrāmatas galvenais mērķis ir aprakstīt tā konfigurāciju un lietošanu. Internetā ir daudz rakstu par pašu protokolu, tā darbības principiem, šifrēšanas algoritmiem utt., piemēram, par to var izlasīt sīkāk.

    Uzstādīšana

    Uzstādīt OpenSSH Varat izmantot komandu no termināļa:

    sudo apt-get install ssh

    Ssh metapakotnē ir gan klients, gan serveris, taču tas, visticamāk, instalēs tikai serveri, jo klients jau ir iekļauts Ubuntu pēc noklusējuma.

    Servera skaņošana

    Instalējot, SSH serveris tiek automātiski pievienots startēšanai. Varat kontrolēt tā sākšanu, apturēšanu vai restartēšanu, izmantojot komandas:

    sudo serviss ssh stop| sākums| restartēt

    Galvenais SSH servera konfigurācijas fails ir /etc/ssh/sshd_config fails, kuru var lasīt vai rediģēt tikai superlietotājs. Pēc katrām šī faila izmaiņām jums ir jārestartē ssh serveris, lai piemērotu šādas izmaiņas.

    Noklusējuma SSH servera konfigurācijas piemērs Ubuntu:

    # Open-ssh servera konfigurācijas piemērs ar krievu # # komentāriem..2010. # # # # # # Konvencijas: # # Ar "noklusējumu" mēs domājam sshd uzvedību, ja # # direktīva nav skaidri norādīta. Ir vērts atzīmēt, ka Ubuntu # # failā sshd_config jau ir vairāki iestatījumi, kas # # ir īpaši Ubuntu noklusējuma iestatījumi. # # Šādi iestatījumi ir norādīti šajā failā. # # # ############################################### ############# ################ Adreses/porta iestatījumi utt. ########### ####################################### # ##################### # # ## Port ####################### ### ##################################osta izmantots. Var norādīt vairākus, piemēram: # # Port 22 # # Port 23 # # Port 24 # # Ieteicams izmantot nestandarta portu, jo # # standartu bieži pārbauda robotprogrammatūra, lai atrastu iespējamos # # caurumus. Var izlaist, ja norādīts # #, izmantojot adresi. Skatiet arī parametru ListenAddress. # # # Port 22 # # ## KlausītiesAdrese ####################################### ### # # # Tīkla adrese, kurā serveris klausās. Adresi var # # rakstīt šādi: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Ja ports nav norādīts, sshd klausīsies šajā adresē un # # ports, kas norādīts opcijā Port. Ja # # izmantosit ListenAddress, nenorādot portu, opcijai # # Port ir jābūt pirms opcijas ListenAddress. Ja nav norādīts # #, tad pēc noklusējuma klausās visas vietējās # # adreses. Varat norādīt vairākas adreses. # # # ## AdreseĢimene ########################################### # # # Norāda, kura IP adrešu saime # # jāizmanto sshd. Iespējamās opcijas: # # “jebkurš” - jebkurš # # “inet” (tikai IPv4) # # “inet6” (tikai IPv6) # # Noklusējums - “jebkurš”. # Adrese Ģimene # ######## # # # Norāda, vai sshd ir jāpārbauda resursdatora nosaukums un # # jāizmanto šis resursdatora nosaukums, lai pārbaudītu klienta nosūtīto IP adresi pret # # saņemto no DNS. # # Noklusējuma vērtība ir “jā”. # # # ############################################### ############# ############# Lietotāja piekļuves iestatījumi ###################### ################################################# ### # # # Lietotāja atļaušanu/neļaušanu nosaka # # DenyUsers, AllowUsers, DenyGroups un AllowGroups direktīvas. # # šajā gadījumā pārbaude iet no augšas uz leju pa ķēdi: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Tiek pieņemti tikai lietotāju un grupu nosaukumi, ciparu # # identifikatori (UserID) netiek atpazīti. Pareizs # # vairāku lietotāju/grupu ieraksts pēc kārtas, atdalot ar # # atstarpēm. Ja rakstīts formā lietotājs@host, tad # # lietotājs un resursdators tiek pārbaudīti atsevišķi, tas ļauj # # ierobežot piekļuvi noteiktiem lietotājiem no # # noteiktiem saimniekiem. Ir vērts atcerēties, ka # # DenyUsers un AllowUsers direktīvas kā parametrs izmanto lietotāja # # nosaukumu, savukārt DenyGroups un AllowGroups izmanto # # grupas nosaukumu. Plašāku # # informāciju par lietotāju un grupu nosaukumu ierakstīšanas formām skatiet sadaļā Man ssh_config. # # # ## DenyUsers ########################################### ### # # # Lietotāju saraksts, kuri NEVAR izmantot sshd. # # Noklusējums - nav norādīts = neviens nav aizliegts. Tie. ja šeit ir norādīts # # lietotājs, tad viņam tiks liegta piekļuve # # ssh serverim. # # # ## AllowUsers ########################################### ## # # # LIETOTĀJU saraksts, kas VAR izmantot sshd, # # Pēc noklusējuma - nav norādīts = atļauts visiem. Tie. ja ir norādīts # # vismaz viens lietotājs, ssh piekļuve serverim # # ir pieejama tikai šim lietotājam. # # # ## DenyGroups ########################################### ## # # # GRUPU saraksts, kuras sshd NEDRĪKST izmantot. # # Noklusējums - nav norādīts = neviena grupa nav aizliegta. # # Tas ir ja ir norādīta vismaz viena grupa, tad šajā grupā iekļautajiem lietotājiem # # tiks liegta piekļuve ssh # # serverim. # # # ## AllowGroups ########################################### # # # # GRUPU saraksts, ko sshd VAR izmantot. # # Noklusējums - nav norādīts = atļauts visiem. Tie. ja ir norādīta # # vismaz viena grupa, tad ssh serverim būs atļauts piekļūt tikai tajā iekļautajiem lietotājiem.# # # #################### # ################################################ ### Iespējas, kas nosaka savienojuma statusu ########################################## ####### ######################### # # ## TCPKeepAlive ############## ######### ######################### # # # # Norāda, vai sistēmai ir jānosūta klientam TCP ziņojumi # # lai uzturētu savienojumu. Ja nosūtāt šīs paketes, # # varat noteikt, vai savienojums ir bojāts. Tomēr tas arī # # nozīmē, ka savienojums var pārtrūkt īslaicīga maršrutēšanas pārtraukuma gadījumā, un # # tas dažiem ir ļoti kaitinoši. No otras puses, ja # # šādi ziņojumi netiek nosūtīti, sesijas serverī var # # ilgt bezgalīgi, radot "spoku" lietotājus # # un aprijot servera resursus. Noklusējuma vērtība ir “yes”,# # t.i. sūtīt šādas ziņas. Lai atspējotu # # šādu ziņojumu sūtīšanu, iestatiet vērtību uz “nē”. Iepriekš šī # # opcija saucās KeepAlive. Ir vērts atzīmēt, ka # # ir drošāki veidi, kā pārbaudīt # # savienojuma statusu (skatiet tālāk). # # # TCPKeepAlive jā # # ## ClientAliveCountMax ##################################### # # # Iestata ziņojumu skaitu klientiem, kurus sshd # # nosūta pēc kārtas, nesaņemot atbildi no klienta. Ja tiek sasniegts slieksnis un # # klients nereaģē, sshd atvienos klientu, pārtraucot # # ssh sesiju. Ir vērts atzīmēt, ka šādu # # ziņojumu izmantošana pilnīgi atšķiras no TCPKeepAlive direktīvas. # # Ziņojumi klientiem/no klientiem tiek sūtīti pa šifrētu # # kanālu, un tāpēc tie nav pakļauti viltošanai. Ziņojumi # # TCPKeepAlive ir pakļauti viltošanai. Klienta dzīvs # # mehānisms ir īpaši vērtīgs gadījumos, kad serverim un klientam ir # # jāzina, kad savienojums ir kļuvis neaktīvs. Noklusējuma vērtība # # ir 3. Ja ClientAliveInterval # # ir iestatīts uz 15 un ClientAliveCountMax ir atstāts uz # # noklusējuma vērtību, nereaģējošie klienti tiks atvienoti pēc aptuveni # # 45 sekundēm. Šī direktīva darbojas tikai # # ssh2 protokolam. # # # ## ClientAliveInterval ####################################### # # # Komplekti laika intervāls sekundēs. Ja šajā intervālā # # nav saziņas ar klientu, sshd # # nosūta ziņojumu pa šifrētu kanālu, pieprasot # # klienta atbildi. Noklusējums ir 0, t.i. # # nesūtiet šādus ziņojumus. Šī direktīva # # darbojas tikai ssh2 protokolam. # # # ############################################### ############# ################ Vispārējās autentifikācijas iespējas ################### ################################################# ######## # # ## AuthorizedKeysFile ##################################### # # # # Norāda failu, kurā ir # # publiskās atslēgas, ko izmanto lietotāju autentificēšanai. # # direktīvā var būt %M formas marķieri, kas tiek ievietoti # # savienojuma izveides procesā. # # Ir definēti šādi marķieri: # # %% - aizstāts ar burtisku "%" # # %h - aizstāts ar autentificētā lietotāja mājas direktoriju # # # # %u - aizstāts ar autentificētā lietotāja vārdu # # Tādējādi atslēgas failu var norādīt kā # # absolūtā veidā (t.i., viens koplietots fails ar atslēgām), un # # dinamiski - atkarībā no lietotāja (t.i., viens # # fails katram lietotājam). # # Noklusējums ir “.ssh/authorized_keys”. # # Piemērs atslēgas failam lietotāja mājas mapē: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Piemērs koplietotam failam: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Skatiet Authorized_keys faila aprakstu vairāk informācijas. # # # ## ChallengeResponseAuthentication ############################ # # # # Norāda, vai atļaut izaicinājuma-atbildes autentifikāciju # # ). Tiek atbalstīti visi # # autentifikācijas veidi no login.conf. Noklusējums ir “yes”, # # t.i. Atļaut. # # Ubuntu — drošības apsvērumu dēļ atspējots. # # # ChallengeResponseAuthentication nē # # ## HostbasedUsesNameFromPacketOnly ########################## # # # # Norāda, kā serverim jāiegūst klienta resursdatora nosaukums # # kad autentifikācijas shēma, kuras pamatā ir resursdatora pārbaude. # # Ja iestatīts uz "yes", sshd # # izmantos klienta norādīto resursdatora nosaukumu, pārbaudot atbilstību failos # # ~/.shosts, ~/.rhosts vai /etc/hosts.equiv. # # (veic reverso DNS izšķirtspēju) Ja iestatīts uz "nē" # # - sshd atrisinās nosaukumu no paša TCP savienojuma. # # Noklusējums ir "nē". # # # ## IgnoreRhosts # # # Novērš .rhosts un .shosts failu # # izmantošanu resursdatora autentifikācijā. # # (RhostsRSAAuthentication vai HostbasedAuthentication). # # Faili /etc/hosts.equiv un /etc/ssh/shosts.equiv joprojām # # tiek izmantoti. # # Noklusējums ir “jā”. # # # IgnoreRhosts jā # # ## IgnoreUserKnownHosts ##################################### # # # Norāda, vai sshd ir jāignorē lietotāja # # fails "known hosts" ~/.ssh/known_hosts resursdatora autentifikācijas procesā # # (RhostsRSAAuthentication vai HostbasedAuthentication). # # Noklusējums ir “nē”. # # # ## AtļautBlacklistedKeys ################################### # # # # Norāda, vai sshd ir jāpieņem atslēgas ir iekļautas melnajā sarakstā # # kā apdraudētas (zināmas-kompromitētas # # atslēgas (skatiet ssh-vulnkey)). Ja iestatīts uz "jā" - # # autentifikācijas mēģinājumi ar šādām atslēgām tiks reģistrēti # # un pieņemti, ja iestatīts uz "nē" - # # autentifikācijas mēģinājumi tiks noraidīti. # # Noklusējums ir “nē”. # # # ## AtļautEmptyParoles ######################################## # # # In atļauta autentifikācija, izmantojot paroli, # # norāda, vai ir iespējama pieteikšanās ar tukšu paroli. # # Noklusējums ir “nē”. # # # AtļautEmptyPasswords nav # # ## AtļautRootLogin ####################################### # # # # Norāda, vai ir iespējama ssh pieteikšanās kā superlietotājs # # (sakne). Var izmantot šādas vērtības: # # “yes” — superlietotājs var pieteikties. Tiek lietota # # pašreizējā globālās autentifikācijas shēma. # # # # “bez paroles” — superlietotājs var pieteikties. # # Paroles autentifikācija tam tiks atspējota. # # # # “tikai piespiedu komandas” — superlietotājs varēs pieteikties, izmantojot # # autentifikāciju, pamatojoties uz publisko atslēgu, un # # tikai tad, ja viņš nodos izpildei nepieciešamo komandu. # # Tas ir noderīgi, lai izveidotu dublējumu, # # pat tad, ja parastais (t.i., ne caur ssh) # # superlietotāja pieteikšanās ir atspējota. Visas pārējās # # superlietotāja autentifikācijas metodes tiks bloķētas.# # # # “nē” — superlietotājs nevar izmantot ssh, lai pieteiktos. # # # # Noklusējuma vērtība ir “yes”. # # # AtļautRootLogin jā # # ## Protocol ###################################### ######## # # # Norāda, kurš protokols sshd jāizmanto. # # Iespējamās '1' un '2' vērtības ir attiecīgi ssh1 un ssh2 # #. Ir iespējama vienlaicīga rakstīšana, šajā gadījumā # # vērtības ir jāatdala ar komatiem. # # Noklusējums ir “2.1”. # # Ir vērts atzīmēt, ka protokolu secība # # ierakstos nenosaka prioritāti, jo klients izvēlas, kuru # # no vairākiem servera piedāvātajiem protokoliem # # izmantot. Ieraksts "2,1" ir pilnīgi identisks # # ierakstam "1,2". # # # 2. protokols # # ## UsePAM ####################################### ########## # # # Iespējo PAM saskarni (Pluggable Authentication Module # # interfeiss). Ja iestatīts uz "jā", visi autentifikācijas veidi # # izņemot sesijas un konta moduļu apstrādi # # PAM autentifikācija tiks veikta. izmanto, pamatojoties uz # # izaicinājumu-atbildi (ChallengeResponseAuthentication un # # PasswordAuthentication), jo # # izaicinājuma-atbildes autentifikācija PAM parasti pilda tādu pašu lomu # # kā paroles autentifikācija, jums ir jāatspējo # # PasswordAuthentication vai # # ChallengeResponseAuthentication. Ir vērts atzīmēt, ka # # ja UsePAM direktīva ir iespējota, jūs nevarēsit palaist # # sshd kā lietotājs, izņemot root. # # Noklusējuma vērtība ir “nē”. # # # Izmantojiet PAM jā # # ## Paroles autentifikācija ################################### # # # Norāda, vai iespējots, vai autentifikācija, izmantojot # # paroli. # # Noklusējums ir “jā”. # # # ## HostKey ########################################### ##### # # # Norāda failu, kas satur privāto resursdatora atslēgu # #, ko izmanto SSH. Noklusējums ir /etc/ssh/ssh_host_key # # ssh1 protokolam un /etc/ssh/ssh_host_rsa_key un # # /etc/ssh/ssh_host_dsa_key ssh2 protokolam. # # ir vērts atzīmēt, ka sshd neizmantos failu # #, kas ir pieejams ikvienam, izņemot lietotāju. Varat # # izmantot vairākus failus ar atslēgām, atslēgas ir “rsa1” - # # ssh1 protokolam un “dsa”/“rsa” ssh2 protokolam. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################### ### ############################ ########## SSH protokola versijas 1 (ssh1) opcijas ### ########## ##################################### ### ################### # STIPRI NAV IETEICAMS izmantot ssh1 protokolu.# # Ssh2 protokols ir daudz drošāks par ssh1 # ### ######## ######################################### ####### # # ## KeyRegenerationInterval ################################## # # # ssh1 protokols - vienu reizi noteiktā laikā # # tiek automātiski ģenerēta jauna pagaidu servera atslēga # # (ja tāda ir izmantota). Tas tiek darīts, lai # # novērstu pārtverto sesiju atšifrēšanu, lai # # vēlāk pieteiktos iekārtā ar šo sesiju parametriem un # # nozagtu atslēgas. Šāda atslēga nekur netiek saglabāta (tā tiek saglabāta # # RAM). Šī direktīva nosaka # # atslēgas kalpošanas laiku sekundēs, pēc kuras tā # # tiks ģenerēta vēlreiz. Ja vērtība ir iestatīta uz 0 - # #, atslēga netiks ģenerēta atkārtoti. # # Noklusējuma vērtība ir 3600 (sekundes). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAautentifikācija ################################## # # # Norāda, vai autentifikācija pamatojoties uz # # rhosts vai /etc/hosts.equiv failiem saistībā ar veiksmīgu # # saimniekdatora autentifikāciju, izmantojot RSA. # # Attiecas tikai uz ssh1 protokolu. # # Noklusējums ir “nē”. # # # RhostsRSAAautentifikācija nav # # ## RSAAautentifikācija ####################################### ## # # # Norāda, vai ir atļauta "tīrā" RSA autentifikācija. # # Attiecas tikai uz ssh1 protokolu. # # Noklusējums ir “jā”. # # # RSAAautentifikācija jā # # ## ServerKeyBits ####################################### ### # # # Definē bitu skaitu servera pagaidu atslēgā # # ssh1 protokolam. Minimālā vērtība ir 512. # # Noklusējuma vērtība ir 1024. # ServerKeyBits 768 # # ################################# # ####################################### SSH protokola versijas 2 (ssh2) opcijas ## ## ######## ######################################## ### ################### # # ## Šifrs ######################## ## ###################### # # # Norāda # # ssh2 protokolam atļautos šifrēšanas algoritmus. Vairāki algoritmi ir # # jāatdala ar komatiem. Atbalstītie algoritmi: # # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “ arcfour128”, # # “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”. # # Pēc noklusējuma: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #5-cbc,aes128-ctr, #5-tr -ctr # # # ## HostbasedAuthentication #################################### # # # Norāda, vai tiek veikta autentifikācija iespējots , pamatojoties uz # # saimniekdatora verifikāciju. rhosts vai /etc/hosts.equiv tiek pārbaudīts, # # un, ja tas izdodas, apvienojumā ar veiksmīgu # # publiskās atslēgas pārbaudi, piekļuve ir atļauta. Šī direktīva # # ir tāda pati kā RhostsRSAAautentifikācijas direktīva, un # # ir piemērota tikai ssh2 protokolam. # # Noklusējums ir "nē". # # # HostbasedAuthentication nav # # ## MAC ####################################### ############ # # # Norāda derīgu MAC algoritmu (ziņojums # # autentifikācijas kods). MAC algoritmu # # izmanto ssh2 protokols, lai aizsargātu datu integritāti. Vairāki # # algoritmi ir jāatdala ar komatiem. # # Noklusējums: # # hmac-md5,hmac-sha1, [aizsargāts ar e-pastu] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ########################### ########## # # # Norāda, vai ir atļauta autentifikācija, pamatojoties uz # # publisko atslēgu. Attiecas tikai uz ssh2 protokolu. # # Noklusējums ir “jā”. # # # PubkeyAuthentication jā ############################################ # ################ #################### GSSAPI opcijas ########### ## ################################################ ## ######################## # # # ############ Attiecas tikai uz ssh2 protokolu #### #### ### # # ## GSSAPIAautentifikācija ##################################### ## # # # Norāda, vai lietotāja autentifikācija # # ir balstīta uz GSSAPI. Noklusējums ir "nē", t.i. aizliegts. # # # ## GSSAPIKeyExchange ######################################## # # # Norāda, vai ir atļauta atslēgu apmaiņa, pamatojoties uz # # GSSAPI. Atslēgu apmaiņa, izmantojot GSSAPI, nepaļaujas uz # # ssh atslēgām, lai pārbaudītu saimniekdatora identitāti. # # Pēc noklusējuma ir "nē" - t.i. apmaiņa ir aizliegta. # # # ## GSSAPICleanupCredentials ################################ # # # Norāda, vai automātiski iznīcināt # # lietotāja kešatmiņu autentifikācijas akreditācijas datu, kad beidzas # # sesija. # # Pēc noklusējuma ir "jā" - t.i. nepieciešams iznīcināt. # # # ## GSSAPIStrictAcceptorCheck ################################ # # # # Norāda, cik stingrai jābūt identitātes pārbaudei # # klients, autentificējot, izmantojot GSSAPI. # # Vērtība "yes" liek klientam autentificēties # # saņemošajam resursdatora pakalpojumam pašreizējā resursdatorā. Vērtība "nē" # # ļauj klientam autentificēties, izmantojot jebkuru # # pakalpojuma atslēgu. # # Noklusējums ir "jā". # # Ir vērts atzīmēt, ka iestatot šo vērtību uz "nē", var # # darboties tikai ar retām Kerberos GSSAPI bibliotēkām. # # # ############################################### ############# ################### Kerberos opcijas ################# ########## ######################################## ### ################## # # ## KerberosAuthentication ######################## ### ######## # # # Norāda, vai parolei # #, ko lietotājs norādījis autentifikācijai # # (PasswordAuthentication), ir nepieciešama validācija Kerberos KDC. # # Lai izmantotu šo opciju, serverim # # ir jāpārbauda, ​​vai KDC ir patiess. (Serverim ir nepieciešama # # Kerberos servtable, kas ļauj pārbaudīt # # KDC identitāti) # # Noklusējums ir “nē”. # # # ## KerberosGetAFSToken ######################################## # # # Ja AFS ir aktīvs un lietotājs ir saņēmis Kerberos 5 TGT, # # vai mēģināt iegūt AFS pilnvaru, pirms lietotājs # # var piekļūt savai mājas mapei. # # Noklusējums ir “nē”. # # # ## KerberosOrLocalPasswd #################################### # # # Norāda, kā rīkoties gadījumā Ja autentifikācija # #, izmantojot Kerberos, neizdodas. Ja # # vērtība = "jā", parole tiks pārbaudīta, izmantojot # # jebkuru papildu lokālo autorizācijas mehānismu, # # piemēram /etc/passwd. # # Noklusējums ir “jā”. # # # ## KerberosTicketCleanup ################################### # # # # # # Norāda, vai fails tiks automātiski iznīcināts ar # # lietotāja biļešu kešatmiņu sesijas beigās. # # Noklusējums ir “jā”. # # # ############################################### ############# ################# Novirzīšanas iespējas ################### # ## ############################################### ## ############# # # ## AllowAgentForwarding ############################## #### ### # # # Norāda, vai atļaut vai atspējot novirzīšanu # # ssh-agent. Noklusējums ir “yes”, t.i. atļaut. # # Ir vērts atzīmēt, ka novirzīšanas atspējošana nepalielinās drošību, kamēr lietotāji arī # # čaulas piekļuve tiks liegta, jo viņi vienmēr var instalēt # # savus aģenta analogus. # # # ## AllowTcpForwarding ###################### # ############### # # # Norāda, vai iespējot vai atspējot TCP novirzīšanu. # # Noklusējums ir “jā”, t.i., atļaut. Ir vērts atzīmēt, ka # # abi AllowAgentForwarding gadījumā # # novirzīšanas atspējošana nepalielinās drošību, kamēr # # lietotājiem būs piekļuve konsolei, jo viņi var # # instalēt savus līdziniekus. # # # # # ## GatewayPorts ######### ## ################################ # # # Norāda, vai atļaut attālajiem saimniekiem piekļūt # # pāradresētajiem portiem. Pēc noklusējuma sshd klausās # # savienojumus ar pārsūtītajiem portiem tikai vietējā # # cilpas saskarnē. Tas neļauj citiem attāliem # # saimniekiem izveidot savienojumu ar pārsūtītajiem portiem. Varat # # izmantot GatewayPorts, lai ļautu sshd # # to darīt. Direktīvai var būt 3 vērtības: # # "nē" — tikai atgriezeniskā cilpa. # # "jā" - jebkuras adreses. # # "clientspecified" - klienta norādītās adreses. # # # ## AtļautAtvērt ########################################### ## # # # Norāda, kur ir atļauta TCP porta pāradresācija. # # Norādīšanai jānorāda viena no # # šādām formām: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Var norādīt vairākus ierakstus, atdalot tos ar atstarpēm. # # Argumentu “jebkurš” var izmantot, lai noņemtu visus # # ierobežojumus portu pāradresācijai. Pēc noklusējuma ir atļauta jebkura # # novirzīšana. # # # ## PermitTunnel ########################################### # # # Norāda, vai ir atļauta tun ierīču novirzīšana. # # Var izmantot vērtības: # # “yes” # # “point-to-point” (3. tīkla slānis) # # “ethernet” (2. tīkla slānis) # # “nē” # # Vērtība “yes” pieļauj abus “point” -to-point" # # un "ethernet" vienlaikus. Noklusējums ir “nē”. # # # ############################################### ############# ################## Mežizstrādes iespējas ################## ### ############################################## ## ############# # # ## SyslogFacility ############################## ## ########## # # # Iestata žurnāla objekta kodu ziņojumu rakstīšanai uz # # syslog no sshd. Iespējamās vērtības: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Noklusējums ir AUTH. # # # SyslogFacility AUTH # # ## LogLevel ###################################### ######## # # # Iestata sshd žurnāla detalizētības līmeni. # # Iespējamās iespējas: # # Klusums # # Kluss # # FATAL # # ERROR # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Noklusējums ir INFO. # # DEBUG un DEBUG1 ir līdzvērtīgi viens otram. # # DEBUG2 un DEBUG3 iestata visaugstāko # # atkļūdošanas izvades līmeni. Reģistrēšanās ATKLĀŠANAS līmenī apdraud # # lietotāja privātumu un nav ieteicama. # # # LogLevel INFO # # ########################################## ################# #################### X11 novirzīšana ############# ######## ######################################### # ################### # # ## X11Pārsūtīšana ######################### ### ################ # # # Norāda, vai ir iespējota X11 grafikas apakšsistēmas # # novirzīšana. Var pieņemt vērtības “jā” vai “nē”. # # Noklusējums ir “nē”. # # Uzmanību - vienkāršas X11 novirzīšanas iespējošana ir # # liels risks gan serverim, gan klientiem, jo Šādā novirzīšanā sshd starpniekservera displejs # # pieņem savienojumus no jebkuras adreses. Izmantojiet # # direktīvu X11UseLocalhost, lai ierobežotu piekļuvi # # X novirzīšanas serverim. Ir vērts atzīmēt, ka # # novirzīšanas atspējošana negarantēs, ka # # lietotāji nevarēs novirzīt X11, jo kam ir # # piekļuve konsolei, viņi vienmēr instalē savu # # novirzītāju. X11 novirzīšana tiks # # automātiski atspējota, ja ir iespējota direktīva UseLogin # #. # # # X11Pārsūtīšana jā # # ## X11UseLocalhost ######################################## # # # # Norāda, vai sshd ir jāierobežo # # X11 pārsūtīšanas loks uz vietējās cilpas adresi, vai # # ir jāatļauj jebkādas adreses. Pēc noklusējuma sshd # # iestata X11 novirzīšanas serveri uz vietējo adresi # # un iestata vides mainīgā # # resursdatora nosaukuma daļu uz “localhost”. Ir vērts atzīmēt, ka # # daži vecāki X11 klienti var nedarboties ar šiem # # iestatījumiem. Noklusējums ir "jā", t.i. novirzīšanu # # ierobežo vietējais resursdators, vērtība "nē" atspējo # # ierobežojumus. # # # ## XAuthLocation ########################################### # # # Norāda pilnu ceļu uz xauth programmu. # # Noklusējums ir /usr/bin/X11/xauth. # # # ## X11Displeja nobīde ######################################## # # # Norāda pirmā displeja numuru, kas pieejams sshd kā # # X11 novirzīšanai. Tas tiek darīts tā, lai # # novirzītie X nepārklātos ar # # īstajiem. Noklusējums ir 10. # # # X11DisplayOffset 10 # # ####################################### ## ######################################### Dažādas iespējas ##### ## ################################################ ##### ############################ # # ## LoginGraceTime ############# ####### ######################## # # # # Laiks, pēc kura serveris atvieno # # lietotāju, ja viņš nevarēja piesakieties # # apmierinoši. Vērtība 0 - ļauj lietotājam # # pieteikties bezgalīgi. Noklusējums ir 120 (sekundes). # # # LoginGraceTime 120 # # ## MaxAuthTries ####################################### ### #### # # # Norāda maksimālo autentifikācijas mēģinājumu skaitu # #, kas atļauts vienam savienojumam. # # Kad neveiksmīgo mēģinājumu skaits pārsniedz pusi no # # norādītās vērtības, visi nākamie mēģinājumi # # tiks reģistrēti. Noklusējuma vērtība ir 6. # # # ## MaxSessions ###################################### ####### # # # Norāda maksimālo vienlaicīgo savienojumu skaitu # # katram tīkla savienojumam. Noklusējums ir 10. # # # ## MaxStartups ####################################### ###### # # # Norāda maksimālo vienlaicīgo # # neautorizēto savienojumu skaitu ar sshd. Ja # # savienojumu skaits pārsniedz ierobežojumu, visi papildu # # savienojumi tiks pārtraukti, līdz pašreizējie # # savienojumi tiks pabeigti ar veiksmīgu autorizāciju # # vai # # LoginGraceTime direktīvā norādītais laika periods. Noklusējuma vērtība ir 10. # # Pēc izvēles varat iestatīt savienojumu agrīnu atiestatīšanu, # # kā parametru norādot trīs vērtības, kuras # # atdala ar kolu "start:rate:full" (piemēram: "10:30" :60"). # # sshd noraidīs savienojuma mēģinājumu ar varbūtību, kas vienāda ar # # “rate/100” (t.i., mūsu piemērā - 30%), ja jau ir # # “sākt” (10) nesankcionēti savienojumi. # # Varbūtība palielinās lineāri, un visi # # savienojuma mēģinājumi tiks noraidīti, ja # # # # nesankcionētu savienojumu skaits sasniegs “pilns” (60). # # # ## Kompresija ########################################### # # # # Norāda, vai ir iespējota datu saspiešana. Var būt # # "jā" - ir iespējota saspiešana. # # "aizkavēta" - saspiešana tiek aizkavēta līdz # # lietotājs ir veiksmīgi autentificēts. # # "nē" - saspiešana ir atspējota. # # Noklusējums ir "aizkavēts". # # # ## UseLogin ########################################## #### # # # Norāda, vai pieteikšanās ir jāizmanto # # interaktīvai sesijai. Noklusējuma vērtība ir “nē”. # # Ir vērts atzīmēt, ka pieteikšanās nekad nav izmantota, lai izpildītu attālās komandas. Ņemiet vērā arī to, ka # # izmantojot pieteikšanos, nebūs iespējams izmantot # # direktīvu X11Forwarding, jo pieteikšanās nezina, ko # # darīt ar xauth. Ja ir iespējota # # UsePrivilegeSeparation direktīva, tā tiks atspējota pēc # # autorizācijas. # # # ## UsePrivilegeSeparation ###################################### # # # Norāda, vai sshd jānodala privilēģijas. Ja jā # #, ienākošajai tīkla trafikai vispirms tiks izveidots nepievilcīgs bērnu process # #. Pēc veiksmīgas # # autorizācijas tiks izveidots cits process ar pieteikušās lietotāja privilēģijām # #. Galvenais # # privilēģiju nodalīšanas mērķis ir novērst piekļuves tiesību ļaunprātīgu izmantošanu. # # Noklusējuma vērtība ir “jā”. # # # UsePrivilegeSeparation jā # # ## StrictModes ####################################### ### ##### # # # Norāda, vai sshd ir jāpārbauda lietotāja mapju un failu piekļuves un # # īpašumtiesību režīmi, pirms # # ļauj lietotājam pieteikties. Parasti tas notiek tāpēc, ka # # iesācēji bieži padara savus failus rakstāmus # # ikvienam. Noklusējums ir “jā”. # # # StrictModes jā # # ## AcceptEnv ###################################### ####### # # # Norāda, kuri vides mainīgie # # tiks pieņemti. Skatiet klienta opciju SendEnv. # # Ir vērts atzīmēt, ka mainīgo lielumu nodošana ir iespējama tikai # # ssh2 protokolam. Mainīgie tiek norādīti pēc nosaukuma, var izmantot # # maskas ('*' un '?'). Varat norādīt # # vairākus mainīgos, atdalot tos ar atstarpēm, vai sadalīt AcceptEnv # # vairākās rindās. Esiet piesardzīgs — dažus # # vides mainīgos var izmantot, lai apietu # # aizliegtās lietotāju vides. Uzmanīgi izmantojiet šo # # direktīvu. Pēc noklusējuma netiek pieņemti # # lietotāja vides mainīgie. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ################################### # # # Norāda, vai sshd ir jāpieņem # # ~/.ssh/environment un Environment= opcija # # ~/.ssh/authorized_keys. Noklusējums ir “nē”. Ir vērts atzīmēt, ka, iespējojot vides apstrādi, lietotāji var apiet ierobežojumus dažās # # konfigurācijās, kurās tiek izmantoti tādi mehānismi kā # # LD_PRELOAD. # # # # # # # PidFile ######################################### # ####### # # # Norāda failu, kurā ir SSH dēmona procesa ID # # (procesa ID, PID). # # Noklusējums — /var/run/sshd.pid # # # # # ## PrintLastLog ############################# # ############## # # # Norāda, vai sshd ir jāparāda pēdējās sesijas datums un laiks, kad lietotājs interaktīvi piesakās. # # Noklusējums ir “jā”. # # # PrintLastLog jā # # ## PrintMotd ###################################### ####### # # # Norāda, vai sshd ir jāparāda /etc/motd # #, kad lietotājs interaktīvi piesakās. Dažās # # sistēmās (piemēram, Ubuntu) šo informāciju # # parāda arī apvalks. # # Noklusējuma vērtība ir “jā”. # # # PrintMotd no # # ## Reklāmkarogs ####################################### ########## # # # Norāda, kurā failā ir teksta reklāmkarogs, kas # # tiks parādīts lietotājam PIRMS # # autentifikācijas procedūras. Opcija ir pieejama tikai ssh2 protokolam.# # Pēc noklusējuma - neko nerāda. # # Ubuntu failā issue.net ir ietverta frāze Ubuntu (versija), # # piemēram, karmiskā gadījumā tas ir "Ubuntu 9.10". Vai # # var izmantot, lai dezorientētu iespējamos uzbrucējus, # # ierakstot tur, piemēram, "My D-Link Interet Router" =) # # # Reklāmkarogs /etc/issue.net # # ## ChrootDirectory ###### ##### ############################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Ja norādīts pēc autentifikācijas. Ceļam un visam tā # # saturam jāatbilst mapēm # #, kas pieder superlietotājam, un # # to nedrīkst rakstīt citi lietotāji. # # Ceļā var būt etiķetes, kas tiek aizstātas # # autentifikācijas procesa laikā: # # %% - aizstāts ar burtisku "%" # # %h - aizstāts ar autentificētā lietotāja mājas direktoriju # # # # %u - aizstāts ar autentificētā lietotāja vārdu # # chroot -mapē ir jābūt visiem nepieciešamajiem failiem un # # mapēm lietotāja sesijai. Interaktīvai # # sesijai ir nepieciešams vismaz: # # apvalks, parasti sh # # pamata ierīces mapē /dev, piemēram: # # null, zero, stdin, stdout, stderr, arandom un tty # # datu pārsūtīšanas sesijai, izmantojot sftp nē # # ir nepieciešami papildu iestatījumi, ja tiek izmantots iekšējais # # sftp servera process. Skatiet apakšsistēmu, lai iegūtu # # vairāk informācijas. Pēc noklusējuma chroot netiek veikta. # # # ## ForceCommand ########################################### # # # Izraisa norādītās komandas izpildi. Ignorē # # visas komandas, ko nosūtījis klients vai rakstītas uz # # ~/.ssh/rc. Komanda tiek izsaukta no lietotāja # # apvalka ar opciju -c. Piemērots čaulas, # # komandas vai apakšsistēmas palaišanai. Visnoderīgākais # # Match blokā. Klienta sākotnēji izdotā komanda tiek saglabāta # # vides mainīgajā SSH_ORIGINAL_COMMAND. Ja jūs # # norādāt komandu "internal-sftp", tiks palaists # # iekšējais sftp serveris, kuram nav nepieciešami # # papildu faili un mapes, kas aprakstītas ChrootDirectory direktīvā. # # # ## Apakšsistēma ########################################### ### # # # Definē un konfigurē ārējo apakšsistēmu (piemēram, # # failu pārsūtīšanas dēmonu). # # Argumenti ir nosaukums un komanda (ar iespējamiem # # argumentiem), kas tiks izpildīti, pieprasot # # apakšsistēmas. Komanda sftp-server sāk “sftp” - # # failu pārsūtīšanas apakšsistēmu. Turklāt kā apakšsistēmu varat norādīt # # “internal-sftp”, kas palaiž # # iekšējo sftp serveri. Tas var ievērojami vienkāršot # # konfigurāciju, izmantojot # # ChrootDirectory direktīvu. Pēc noklusējuma apakšsistēmas # # netiek izsauktas. Attiecas tikai uz ssh2 protokolu. # # # Apakšsistēma sftp /usr/lib/openssh/sftp-server # # ################################# ################################################# Match Bloķēt ############################ ##################### ## ##################################### # # # Es to īpaši pārvietoju uz beigām failu, lai to padarītu ērtāku # # uzrakstiet atbilstības noteikumus. # # MadKox. # # # # Atbilstības direktīva apzīmē nosacījuma # # bloka sākumu. Ja ir izpildīti visi kritēriji, kas norādīti rindā # # Atbilstība, tiek izpildītas direktīvas nākamajās bloka rindās, # # ļaujot # # failā sshd_config failā esošo globālo direktīvu vērtības apiet gadījumā, kas ir kritēriji # # Atbilstības direktīvai. Par bloku tiek uzskatītas visas rindas, kas nāk aiz rindas # # ar kritēriju (Match - lines) uz nākamo atbilstības rindiņu # # vai līdz faila beigām. Atbilstības direktīvas arguments ir viens vai # # vairāki kritēriju ierakstu pāri. Iespējamie ierakstu veidi: # # Lietotājs # # Grupa # # Host # # Adrese # # Ieraksti var saturēt vai nu atsevišķas # # vērtības (piemēram, User=user) vai vairākas vērtības;# # atdalītas ar komatiem (User=user1 ,lietotājs2). Regulārās izteiksmes, kas aprakstītas faila ssh_config sadaļā # # PATTERNS, var izmantot arī # #. Ieraksti # # Adreses kritērijos var ietvert adreses CIDR # # (Address/Mask Length, piemēram, “192.0.2.0/24” vai # # “3ffe:ffff::/32”) apzīmējumā. Ir vērts atzīmēt, ka norādītajam # # maskas garumam ir jāatbilst adresei, un pārāk # # garš/īss adrese nedarbosies. # # Match var izmantot tikai # # noteiktu direktīvu kopu kā direktīvas: # # AllowTcpForwarding # # Reklāmkarogs # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAutentifikācija # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KbdInteractiveAuthentication # # MaxuthS # KerberosAut # Maxuthes # KerberosAut # ParolesAuthentication # # AtļautAtvērt # # AtļautRootLogin # # RhostsRSAAautentifikācija # # RSAAautentifikācija # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

    Iepriekš minēto tekstu varat kopēt savā sshd_config un izmantot to vēlāk konfigurēšanai.

    Pats par sevi nepareizi konfigurēts SSH serveris ir milzīga sistēmas drošības ievainojamība, jo iespējamajam uzbrucējam ir iespēja iegūt gandrīz neierobežotu piekļuvi sistēmai. Turklāt sshd ir daudz papildu noderīgu opciju, kuras ieteicams iespējot, lai uzlabotu lietojamību un drošību.

    Port, ListenAddress un AddressFamily

    Šie trīs parametri nosaka, kuros portos un adresēs jūsu serveris klausīsies ienākošos savienojumus. Pirmkārt, ir lietderīgi, ja iespējams, ierobežot apstrādājamo adrešu saimi līdz faktiski izmantotajām adrešu saimēm, t.i., ja izmantojat tikai IPv4, atspējojiet IPv6 un otrādi. To var izdarīt, piemēram, izmantojot parametru AddressFamily (lai atļautu IPv4 un aizliegtu IPv6):

    AdreseĢimenes inet

    Otrkārt, ir ieteicams mainīt standarta portu (22), kurā sshd klausās. Tas ir saistīts ar faktu, ka daudzi tīkla skeneri nepārtraukti mēģina izveidot savienojumu ar 22. portu un vismaz iegūt piekļuvi, izmantojot brutālu pieslēgšanos/paroles no savas datu bāzes. Pat ja paroles autentifikācija ir atspējota, šie mēģinājumi stipri aizsprosto žurnālus un (lielos daudzumos) var negatīvi ietekmēt ssh servera ātrumu. Ja kāda iemesla dēļ nevēlaties mainīt standarta portu, varat izmantot dažādas ārējās utilītas, lai cīnītos pret brutāliem forsētājiem, piemēram, fail2ban, un iebūvētās, piemēram, MaxStartups.
    Portu var iestatīt kā absolūtu vērtību visām saskarnēm, izmantojot porta direktīvu, vai kā īpašu vērtību katrai saskarnei, izmantojot direktīvu ListenAddress. Piemēram:

    Osta 2002

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    Liegt attālo piekļuvi superlietotājam

    Pēc noklusējuma root piekļuve ir aizliegta ar paroli (ar atslēgu tas ir iespējams) - opcija PermitRootLogin ir iestatīta uz bez paroles . Bet, ņemot vērā to, ka pēc noklusējuma Ubuntu sistēmas instalēšanas laikā pievienotajam lietotājam ir iespēja atrisināt visus administratīvos uzdevumus, izmantojot sudo, izveidot iespēju root piekļūt sistēmai, izmantojot ssh, šķiet nesaprātīga (pat ar atslēgas autentifikāciju). Ieteicams to pilnībā izslēgt. šo opciju vai izmantojiet to tikai piespiedu komandu režīmā. Varat atspējot root piekļuvi šādi:

    PermitRootLogin Nr

    Paroles autentifikācija

    Paroles autentifikācija, kas ir atļauta pēc noklusējuma, ir praktiski primitīvākā sshd autorizācijas metode. No vienas puses, tas vienkāršo jaunu lietotāju konfigurēšanu un pieslēgšanu (lietotājam ir jāzina tikai savs sistēmas pieteikumvārds/parole), no otras puses, paroli vienmēr var uzminēt, un lietotāji bieži vien aizmirst izveidot sarežģītas un garas paroles. . Speciālie robotprogrammatūras pastāvīgi skenē no interneta pieejamos ssh serverus un mēģina tajos pieteikties, brutāli piespiežot pieteikšanās vārdus/paroles no savas datu bāzes. Ir ļoti ieteicams neizmantot paroles autentifikāciju. Varat to atspējot šādi:

    Parole Autentifikācijas Nr

    Ja kāda iemesla dēļ joprojām vēlaties izmantot paroles autentifikāciju, pārliecinieties, ka neviens nevar pieteikties ar tukšu paroli. Lai to izdarītu, iestatiet PermitEmptyPasswords direktīvu:

    AtļautEmptyPasswords Nr

    Protokoli SSH1 un SSH2

    Kā jau minēts, sshd var strādāt ar SSH1 un SSH2 protokoliem. Tomēr nav ieteicams izmantot nedrošu SSH1. Varat piespiest sshd strādāt tikai ar SSH2 protokolu, piemēram:

    Autentifikācija, pamatojoties uz SSH2 RSA atslēgām

    Vispiemērotākā autorizācijas metode ir autentifikācija, kuras pamatā ir SSH2 RSA atslēgas. Izmantojot šo metodi, lietotājs savā pusē ģenerē atslēgu pāri, no kuriem viena atslēga ir slepena, bet otra ir publiska. Publiskā atslēga tiek kopēta serverī un tiek izmantota, lai pārbaudītu lietotāja identitāti. Papildinformāciju par atslēgu pāra izveidi un to ievietošanu serverī skatiet SSH klienta aprakstā. Publiskās atslēgas autentifikāciju var iespējot šādi:

    PubkeyAuthentication jā

    Serverim ir jāzina, kur meklēt lietotāja publisko atslēgu. Šim nolūkam tiek izmantots īpašs fails authorised_keys. Tās sintakse varētu būt šāda:

    # Komentāri tiek rakstīti tikai jaunā rindiņā # vispārīgs ierakstu izskats failā authorised_keys # [options] key_type (ssh-rsa vai ssh-dss) ļoti_gara_string_nesaprotams parastajam cilvēkam [login@host] ssh-rsa AAAAB3Nza...LiPk == [aizsargāts ar e-pastu] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [aizsargāts ar e-pastu] 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...== [aizsargāts ar e-pastu]

    Varat norādīt vienu koplietotu failu ar atslēgām vai vienu failu katram lietotājam. Pēdējā metode ir ērtāka un drošāka, jo, pirmkārt, katram lietotājam var norādīt dažādas taustiņu kombinācijas un, otrkārt, ierobežot piekļuvi lietotāja publiskajai atslēgai. Varat norādīt failu ar atslēgām, izmantojot direktīvu AuthorizedKeysFile:

    AuthorizedKeysFile %h/.ssh/my_keys

    shēmas lietotājam - fails
    vai

    AuthorizedKeysFile /etc/ssh/authorized_keys

    shēmai ar koplietotu failu. Pēc noklusējuma SSH klients meklē atslēgas failā ~/.ssh/authorized_keys.

    Vairāk par drošību

    Papildu iestatījumi

    Lietotāji un grupas.

    Ja jūsu serverī “dzīvo” daudz lietotāju un vēlaties atļaut piekļuvi, izmantojot ssh, tikai dažiem no tiem, varat izmantot direktīvas DenyUsers, AllowUsers, DenyGroups un AllowGroups. Papildinformāciju par šīm direktīvām skatiet komentāros sshd_config piemērā.

    Savienojuma statusa opcijas

    Pēc noklusējuma starp savienojuma stāvokļa noteikšanas metodēm ir iespējota tikai TCP savienojuma pārbaudes metode - TCPKeepAlive, tomēr sshd savienojuma stāvokļus var noteikt ērtākos un drošākos veidos. Lai iegūtu sīkāku informāciju, skatiet atbilstošo sadaļu sshd_config piemērā.

    Performance. MaxStartups

    Portu pārsūtīšana

    X11 novirzīšana

    Serverī /etc/ssh/sshd_config failā iestatiet parametru (iespējots pēc noklusējuma):

    Uz priekšuX11 jā

    Klientā iestatiet parametrus failā /etc/ssh/ssh_config (pēc noklusējuma atspējots):

    ForwardAgent jā ForwardX11 jā

    Varat to palaist klientam šādi: ssh yurauname@serverip firefox . Vai arī vispirms dodieties uz ssh yurauname@serverip un pēc tam palaidiet, piemēram, sudo synaptic .

    SFTP

    sshd pēc noklusējuma ir iebūvēts SFTP serveris. SFTP (SSH File Transfer Protocol) - SSH protokols failu pārsūtīšanai. Tas ir paredzēts, lai kopētu un veiktu citas darbības ar failiem, izmantojot uzticamu un drošu savienojumu. Parasti SSH2 protokols tiek izmantots kā pamata protokols, kas nodrošina savienojumu. Lai iespējotu SFTP atbalstu, pievienojiet rindiņu sshd_config

    Apakšsistēma sftp /usr/lib/openssh/sftp-server

    Pēc noklusējuma SFTP atbalsts ir iespējots.

    Izmantojot kritērijus. Atbilstības direktīva

    SSH klienta iestatīšana

    Pieteikšanās, izmantojot atslēgu, tiek uzskatīta par visdrošāko, un vairumā gadījumu šī funkcija ir iespējota servera pusē, tāpēc tās lietošanai nav nepieciešamas superlietotāja tiesības. Klienta mašīnā mēs ģenerējam atslēgu:

    ssh-keygen -t rsa

    Mums tiek piedāvāts ievadīt paroli, lai aizsargātu atslēgas failu (tas izrādās noderīgi, ja fails nonāk nepareizās rokās). Ja mēs gatavojamies izpildīt skriptus, izmantojot SSH, tad atstājam to tukšu. Mēs nododam publisko atslēgu serverim ar komandu

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub user@ serveris

    Tas ir viss, jūs varat ienākt.

    Kad ssh darbojas nestandarta portā:

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p ports lietotājs@serveris"

    Ja rodas kļūda: Slikts ports "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    mēģiniet likt parametrus pēdiņās:

    Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p ports lietotājs@serveris""

    Ekrāna utilītu ir ērti izmantot, izveidojot savienojumu ar attālo sistēmu.

    Attālā ssh direktorija iestatīšana programmā Nautilus

    Attālā direktorija uzstādīšana, izmantojot sshfs

    Attālā direktorija uzstādīšana vietējā direktorijā

    sshfs user@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

    Nomontēšana

    Fusermount -u ~/ sshsfdir

    SSH aizstājvārdi

    Lietojot vairākus serverus ar dažādiem piekļuves parametriem (nestandarta ports, garš resursdatora nosaukums, pieteikšanās, kas nav lokālā u.c.), dažkārt ir apnicīgi katru reizi ievadīt visus savienojuma iestatījumus no jauna. Lai to atvieglotu, varat izmantot aizstājvārdus.

    Iestatījumi tiek saglabāti mapē ~/.ssh/config vienam lietotājam un mapē /etc/ssh/ssh_config globāli visiem lietotājiem.

    Konfigurācijas piemērs. Var aprakstīt vairākus serverus. Sīkāka informācija sadaļā cilvēks ssh_config(nejaukt ar sshd_config)

    Host AliasName # Patvaļīgs saimniekdatora nosaukums HostName 1.2.3.4 # Varat norādīt gan IP, gan resursdatora nosaukumu (ja darbojas DNS) User YourUserName # Ja lietotājs neatbilst vietējam lietotājam Ports YourSSHPort # Ja nestandarta ports

    Pēc tam jūs varat izveidot savienojumu ar serveri ar komandu

    ssh AliasName

    ssh-agent

    Savienojuma problēmu diagnostika

      Savienojumu žurnāla analīze:

    ssh -vvv user@ saimniekdators

      Klienta un servera konfigurācijas failu analīze.

    Konfigurācijas failu atrašanās vietu var atrast

    Vīrietis ssh cilvēks sshd

    Viedkaršu izmantošana

    1. Sertifikāta izveide un publiskās atslēgas, kā arī klienta daļas eksportēšana operētājsistēmā Windows + Putty SC ir aprakstīta vietnē: http://habrahabr.ru/post/88540/ Tur aprakstītais Key Manager papildinājums ir pieejams tikai vecākās Firefox versijās. Pārbaudīts operētājsistēmas Windows versijā 3.5. Tieša saite uz papildinājumu: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. Servera sagatavošana. Jums ir jāpārliecinās, vai jūsu sshd konfigurācija pieļauj autentifikāciju, izmantojot publiskās atslēgas. Lai to izdarītu, failā “sshd_config” ir jānorāda parametra “PubkeyAuthentication” vērtība uz “yes”. Pēc tam mēs pievienojam mūsu iepriekš iegūto publisko atslēgu (vienā rindā) failam “~/.ssh/authorized_keys”. Lūdzu, ņemiet vērā, ka fails “.ssh/authorized_keys” atrodas tā lietotāja mājas direktorijā, kurš pēc tam pieteiksies, izmantojot publisko atslēgu.

    3. Klienta daļa operētājsistēmā Linux. Jums būs jāpārveido OpenSSH pakotne bez parametriem. Ieteicams norādīt tikai direktoriju prefiksus, piemēram, –prefix=/usr. Jāņem vērā arī tas, ka konfigurācijas faili atradīsies mapē /usr/etc. Pirms sākat, jums ir nepieciešamas šādas pakotnes: opensc-lite-devel, zlib-devel, openssl-devel. Instalējiet viedkartes draiveri. Ērtības labad ssh_config config (nejaukt ar sshd_config) norādiet ceļu uz pkcs bibliotēku: PKCS11Provider=<путь к библиотеке>

    4. Klientā palaidiet ssh user@host Ja viedkarte (token) ir pievienota, jums tiks prasīts ievadīt paroli un jūs piesakāties SSH sesijā.

    Iespējamās problēmas lietošanas laikā

    Parastā taustiņu kombinācija Ctrl + S, ko izmanto daudzos redaktoros, lai saglabātu labojumus, strādājot terminālī ar ssh serveri, novedīs pie komandas XOFF izpildes, kas virspusēji atgādina sesijas iesaldēšanu. Tomēr tā nav. Serveris turpina pieņemt ievades rakstzīmes un komandas, bet nerāda tās ekrānā. Lai izkļūtu no šīs nepatīkamās situācijas, vienkārši izmantojiet kombināciju Ctrl + Q, tādējādi atkal ieslēdzot XON režīmu.

    Saites

    Tas ir, lietotājs1 var tikt reģistrēts gan sev - failā /home/user1/.ssh/keys), gan citam lietotājam, kas ļaus viņam pieteikties no sava datora gan "zem sevi", gan zem "cita"

    SSH (Secure Shell) ir tīkla protokols, kas paredzēts attālai servera pārvaldībai un datu pārsūtīšanai, izmantojot TCP šifrētus savienojumus. Lielākā daļa hostinga pakalpojumu, pat virtuālie, mūsdienās nodrošina piekļuvi gan caur FTP, gan SSH. Manuprāt, tas ir lieliski, SSH ir daudz ērtāk un drošāk lietojams.

    SSH iestatīšana

    Iestatīšana notiks speciālam serverim, VDS, VPS uz Debian, Ubuntu. Konfigurācijas fails atrodas šeit: /etc/ssh/sshd_config.
    Ja jums ir regulārs hostings, viss ir jākonfigurē tā, kā vajadzētu, dodieties uz sadaļu.

    Pēc noklusējuma SSHD dēmonam (tajā mēs veicam izmaiņas) nav nepieciešami nekādi iestatījumi un tas darbojas labi. Mēs veiksim tikai dažas nelielas izmaiņas, lai ierobežotu nevēlamu personu piekļuvi serverim.

    Ja konfigurācijas failā veicat nepareizas izmaiņas, jūs varat zaudēt piekļuvi serverim, izmantojot ssh, tāpēc pārliecinieties, vai jums ir alternatīvas iespējas tam piekļūt, piemēram, izmantojot ISPManager vadības paneli.

    Kā ierobežot SSH piekļuvi

    Visas izmaiņas tiek veiktas failā /etc/ssh/sshd_config
    Lai izmaiņas stātos spēkā, jums tas ir jādara

    Mainiet portu

    Ports 9724

    Tagad, veicot autorizāciju, standarta 22 porta vietā ir jānorāda 9724.
    Metode ir ļoti vienkārša un efektīva pret lielāko daļu vienkāršu hakeru robotu, kas klauvē pie standarta portiem. Šeit galvenais ir neradīt konfliktu ar citiem pakalpojumiem un izvēlēties numuru, kas ir acīmredzami neizmantots.

    Atspējot saziņu, izmantojot veco protokolu

    Šeit mēs definējam, ka saziņa ir iespējama, tikai izmantojot v2 protokolu

    Ja neesat pieteicies sakne, pirms visām konsoles komandām jums jāpievieno sudo - tas apzīmē Aizstājējs lietotājs un DO- aizstāt lietotāju un darīt (zem viņa). Piemēram, tas ļauj izpildīt komandas kā superlietotājam sakne.

    Samaziniet autorizācijas mēģinājumu skaitu

    MaxAuthTries 2

    Paroles mēģinājumu skaits. Noklusējuma vērtība ir 6. Ja meklēšana neizdodas, sakaru sesija tiek pārtraukta.

    Samaziniet autorizācijas gaidīšanas laiku

    PieteikšanāsGraceTime 30s

    Pēc noklusējuma autorizācijas sesija var ilgt 120 sekundes. Pēc šī laika tas beidzas. 2 minūtes autorizācijai ir pārmērīgas; visu šo laiku serveris uztur atvērtu savienojumu, kas ir ļoti neracionāli. Pietiek ar pusminūti.

    Aizveriet IP piekļuvi

    Pirms IP ierobežojumu iestatīšanas pārliecinieties, ka kļūdas iestatījumos un sekojošā jūsu IP aizlieguma gadījumā jums būs alternatīvs veids, kā atgūt piekļuvi serverim.

    Ja tikai jums ir nepieciešama piekļuve, vienkāršākais un uzticamākais veids ir bloķēt piekļuvi no jebkuras vietas, izņemot jūsu IP vai, ja tas ir dinamisks, tad IP diapazonu.

    1. Atveriet /etc/hosts.allow un pievienojiet tur SSHD: 192.168.1.1

      kur 192.168.1.1 ir jūsu IP. Ja jums ir dinamisks IP, definējiet IP ar apakštīkla masku un pierakstiet savu apakštīklu, nevis IP, piemēram:

      SSHD: 192.168.0.0/16

    2. Atveriet /etc/hosts.deny un pievienojiet tur: SSHD: ALL

    Vēl viens veids, kā ierobežot piekļuvi, izmantojot IP

    Varat izmantot šādu direktīvu:

    AllowUsers = *@1.2.3.4

    Šeit mēs atļaujam piekļuvi tikai IP 1.2.3.4

    SSH autorizācija ar atslēgām

    Daudz drošāk, ērtāk un pareizāk būs iestatīt ssh autorizāciju bez paroles. Šim nolūkam tiks izmantota atslēgas autorizācija.

    Tātad, šeit ir norādījumi.

    Jūs uzreiz iegādājāties savu pirmo VPS vai varbūt pat serveri. Jums noteikti ir tīmekļa panelis, lai to pārvaldītu. Bet stingrie administratori vienmēr iet caur konsoli 😉 Tāpēc mums ir jāiemācās, kā to izdarīt. Šajā nodarbībā mēs instalēsim PuTTY programmu, izveidosim savienojumu ar serveri caur SSH protokolu un uzzināsim, kā noteikt aizņemto un brīvo vietu serverī.

    Špakteles programma savienojuma izveidei ar serveri, izmantojot SSH protokolu

    Lejupielādējiet Putty no vietnes putty.org Es pats lejupielādēju versiju “Windows operētājsistēmai Intel x86 - PuTTY: putty.exe”

    Izpakojiet arhīvu un palaidiet programmu.

    Šādi izskatās programmas logs pēc palaišanas. Esmu jau ievadījis sava servera IP adresi laukā “Host Name (vai IP address)”:

    Ievadiet sava servera domēnu vai IP adresi un noklikšķiniet uz pogas "Atvērt". Tiek atvērts komandu uzvednes logs. Tas prasa mums lietotājvārdu un paroli. Vispirms ievadiet savu pieteikumvārdu, pēc tam paroli. Uzmanību, ievadot paroli, rakstzīmes netiek izdrukātas uz ekrāna, pat zvaigznītes *** netiek drukātas. Tāpēc paroli ievadām it kā akli. Ievadiet un nospiediet taustiņu Enter. Ja parole ir ievadīta pareizi, jūs tiksit pieteicies servera pārvaldības konsolē. Tiek parādīta rinda ar pēdējo pieteikšanās laiku un informāciju par operētājsistēmu.

    Komandas konsolē

    pwd

    df

    Komanda df parāda brīvās un izmantotās vietas daudzumu serverī visās pievienotajās failu sistēmās

    du

    Komanda du parāda, cik daudz vietas aizņem mape vai fails.
    Komandas piemērs:

    Du -h /mājas/

    Šī komanda parādīs, cik daudz vietas aizņem direktorijs /home/.

    Tas ir viss. Pirmā iepazīšanās ar savienojumu ar serveri caur SSH un špakteles programmu ir beigusies. Izmantojot šo informāciju, varat doties uz serveri un redzēt, cik daudz vietas tajā aizņem dati.



    
    Tops