Secure Shell SSH rokasgrāmata

Apmācība par šo lielisko protokolu, kas sāka savus piedzīvojumus 1997. gadā, piedāvājot plašu rīku klāstu, kas izceļas ar drošību, un es esmu ļoti plašs, un es to sadalīšu vairākos ierakstos, cenšoties aptvert vissvarīgāko gan klienta, gan servera līmenī.

Kas ir drošā apvalka protokols?Secure Shell jeb SSH ir tīkla protokols, kas ļauj apmainīties ar datiem drošā kanālā starp diviem datoriem. SSH izmanto šifrēšanas paņēmienus, kas padara informāciju, kas pārvietojas pa saziņas līdzekli, neizlasāmu, un neviena trešā persona nevar atklāt savienojuma lietotājvārdu un paroli vai visu sesijas laikā rakstīto. SSH izmanto publiskās atslēgas kriptogrāfiju, lai autentificētu attālo datoru un vajadzības gadījumā ļautu tam autentificēt lietotāju.

SSH parasti tiek izmantots, lai sāktu sesiju attālā mašīnā, kur var izpildīt komandas, taču tas arī ļauj veikt tunelēšanu, patvaļīgu TCP portu pārsūtīšanu un X11 savienojumus; Failu pārsūtīšanu var veikt arī, izmantojot saistītos SFTP vai SCP protokolus.

Mēs redzam, ka tā lielā pievilcība ir tā īpašība, kas ir vairāk nekā pietiekama, lai aizstātu veco TELNET protokolu, kuram trūkst informācijas šifrēšanas, kas apdraud datus, tostarp piekļuves akreditācijas datus.

SSH serveris, pēc noklusējuma piedāvā TCP portu 22. SSH klientu parasti izmanto, lai izveidotu savienojumus ar sshd serveri, kas pieņem attālos savienojumus. Abas parasti ir atrodamas lielākajā daļā mūsdienu operētājsistēmu, ieskaitot Mac, Linux, Solaris un OpenVMS.

Paredzams, ka Windows atbalsts tās servera versijai tiks oficiāli izlaists šogad, savukārt klientu līmenī tas piedāvā dažādas iespējas, izceļot PuTTY salīdzinājumā ar citām.

Iemācieties lietot Putty

OpenSSHOpenSSH (Open Secure Shell) ir lietojumprogrammu kopums, kas ļauj šifrētus sakarus tīklā, izmantojot SSH protokolu. Tas tika izveidots kā bezmaksas un atvērta alternatīva SSH protokolam, tas ir visplašāk izmantotais operētājsistēmā Linux, un to izmantosim visos ierakstos.

1. Instalējiet Secure Shell SSH


Gandrīz visos izplatījumos tā klienta versija ir iepriekš instalēta, savukārt servera versija ir pieejama krātuvē, tās instalēšanai jābūt ļoti vienkāršai.

Debian, Ubuntu, Linux Mint un atvasinājumi

 sudo apt-get install openssh-server

Centos, Rhel, Fedora

 sudo yum instalēt openssh-server

Arch-Linux

 pacman -Syu openssh

Mēs pārbaudām, vai tas darbojas ar:

 curl localhost: 22
Pareizas darbības gadījumā tai jāatgriežas:

[krāsa = # 696969] [/Krāsa]

Savienojuma izveide ar serveri
Izmantojot klientu, mēs varam izveidot savienojumu ar serveri, kas var būt attāls, pat ja mums ir abas versijas, lai izveidotu savienojumu iekšēji, izmantojot vietējo serveri.

Vienkāršākais savienojuma veids būtu:

 ssh user @ hostaddress
Iekšējā savienojuma gadījumā tas būtu:
 ssh lietotājs @ localhost
Savienojot, mums ir dažādas iespējas, es paskaidrošu dažas ļoti noderīgas iespējas, jūs varat uzskaitīt visas savas iespējas, izmantojot:
 cilvēks ssh
Šeit mēs viņiem parādām:

Man SSH iespējas
-CPieprasiet datu saspiešanu, lai ietaupītu joslas platumu vai datus, ja atrodaties mobilajā tīklā.

-lNorādiet lietotāju, ar kuru mēs izveidosim savienojumu.

-UNIzveidojiet žurnālfailu, kurā tiks novirzīta standarta kļūda.

-FMēs izvēlamies citu konfigurācijas failu, kas ir noderīgs serveriem ar neparastām iespējām.

-gNepieciešams ostas tunelēšanai.

-iMēs izvēlamies mapi, kuru izmantosim alternatīvai privātajai atslēgai.

-KIespējot, izmantojot GSSAPI akreditācijas datus.

-nIzmantojot to kopā ar X11, viss lietojumprogrammas ģenerētais žurnāls tiek novirzīts uz / dev / null.

-vaiNepieciešams, lai izmantotu uzlabotas opcijas, piemēram, ServerAliveInterval 30.

-lppLai izveidotu savienojumu ar resursdatoru, izvēlieties portu, kas nav 22.

-vTas parāda visas darbības, kas nepieciešamas, lai izveidotu savienojumu. Jūs varat iegūt vēl vairāk informācijas, izmantojot -vv -vvv.

-XNepieciešams, ja vēlamies izmantot X11 pāradresāciju.

-JIespējo drošu X11 pārsūtīšanu.

Mēs izveidosim savienojumu ar test.solvetic.com serveri ar jcarrillo lietotāju, izmantojot citu privāto atslēgu, kas atrodas mūsu mapē / home / jcarrillo / keys-aws, izmantojot mūsu instances AWS portu 8022.

 Piemērs → ssh -C -i “~ / keys -aws /” -p 8022 -l jcarrillo test.solvetic.com
Kā redzam, tas ir plašs, bet ļoti pilnīgs rīks, kas ir pelnījis vairāk ierakstu, lai varētu aptvert nepieciešamās funkcijas jebkuram vidēja vai profesionāla līmeņa sistēmas administratoram.

Tagad mēs pārietam pie tā konfigurācijas klienta-servera līmenī, ģenerējot publiskās un privātās atslēgas, portu pāradresācijas izmantošanu reālās situācijās, X servera novirzīšanu, izmantojot X11 pāradresāciju, cita starpā izmantojot scp, sftp, ssh-agent .

2. Nosargājiet SSH serveri


Mēs turpinām ar OpenSSH koncentrējoties uz mūsu SSH servera drošība, lai izvairītos no visa veida uzbrukumiem, kas varētu apdraudēt mūsu serveri. Visas šīs konfigurācijas tiks veiktas failā sshd_config, kas atrodas mapē / etc / ssh / un kuru mēs varam mainīt ar jebkuru teksta redaktoru manā gadījumā vim:
 sudo vim / etc / ssh / sshd_config
Tagad mēs redzam, kā to mainīt.

Mainīt sshd_config
Iekšpusē mēs redzēsim tipisku konfigurācijas failu, pamatojoties uz "Vērtības opcija" Ja kāda no opcijām netiek atrasta pēc noklusējuma, mums līnija ir jānovieto pilnībā, citos gadījumos būs tikai jāmaina no 0 uz 1 no Nē uz Jā vai jāatsakās no rindas.

Mainīt portu 22
Ir būtiski mainīt noklusējuma portu uz nejaušu portu daudzi skripti ir konfigurēti, lai uzbruktu šim portam, ieteicams to mainīt svārstās no 1000 līdz 23000 nodrošinot, ka ostu neizmanto cits pakalpojums.

Mums nevajadzētu izmantot arī tādas ostas kā 2222, 8022 vai 1022, tās ir tikpat izplatītas kā 22, un daudzi skripti ir konfigurēti tiem uzbrukt.

osta 2345

Ja mums ir SELINUX iespējots, mums ir jāizmanto papildu komanda, lai atļautu piekļuvi no ārpuses jaunajam portam.

Semanāžas ports -a -t ssh_port_t -p tcp 2345 #Mainīt portu 22 drošībai

Izmantojiet noklusējuma protokolu 2
Mums jāpārliecinās, ka visi mūsu savienojumi tiek veikti saskaņā ar 2. protokolu, jo 1 ir daudz ievainojamību.

2. protokols

Laiks ievadīt akreditācijas datus
Meklēšanas sadaļa "Autentifikācija". Jūsu pirmās divas iespējas ir arī svarīgas. Pirmais ir sekunžu skaits, kas attālajam lietotājam būs jāpiesakās jūsu mašīnā. Iestatiet šo vērtību uz dažām sekundēm, un nav nepieciešams ilgs laiks, lai pieteiktos, ja mēs zinām kontu un paroli.

Tādā veidā mēs izvairāmies no noteiktiem skriptiem, kas izmanto šī laika priekšrocības. Tipiskā vērtība drošības ziņā ir 30, lai gan tā var būt pat mazāka.

LoginGraceTime 30

Atspējot saknes piekļuvi
Šī Tā ir vissvarīgākā iespēja kļūt par uzbrukuma upuri, viņiem vajag 3 lietas:

  • Lietotājs
  • osta
  • Parole

Ja atspējojam root, viņiem jau ir viens, jo root ir parasts lietotājs visās sistēmās. Turklāt šis lietotājs var nodarīt postījumus visas atļaujas ir iespējotas.

PermitRootLogin nr

Iespējot kontrolētu piekļuvi
Mēs varam kontrolēt, kurš lietotājs var pieteikties, izmantojot SSH, un pat ievietot klauzulu, lai izveidotu savienojumu tikai no noteikta IP. Tas ir līdzīgi tam, ko AWS piedāvā, lai savienotu mūs ar jūsu gadījumiem.

AllowUsers [email protected]

Ir svarīgi atļaut piekļuvi tikai tiem lietotājiem, kuriem nepieciešama attālā piekļuve, un, ja iespējams, ierobežot tos ar zināmu IP.

Konfigurējiet neveiksmīgo mēģinājumu skaitu
Ja paroli ievietojam nepareizi, serveris mēģina to atkārtoti ievadīt, tas ir jāierobežo vai arī jūs varat kļūt par brutāla spēka skripta upuri, mēs varam to ievietot 2 vai 3 reizes.

MaxAuthTries 2

Vienlaicīgi atļauto savienojumu skaits
Tas var atšķirties atkarībā no servera izmantošanas veida, taču ideāli ir to kontrolēt, vienkārši pievienojiet kopējo SSH atļauto lietotāju skaitu.

MaxStartups X

Pēc visu izmaiņu veikšanas mūsu failā mums tas jādara restartējiet mūsu sshd pakalpojumu, Tas var atšķirties atkarībā no pakalpojumu pārvaldnieka.

SystemD

 systemctl restart sshd

Upstart / Sysinit

 pakalpojuma restartēšana sshd

Visas šīs izmaiņas pievieno a papildu drošības līmenis bet mums jāpatur prātā:

  • Izmantojiet burtciparu paroles.
  • Izmantot Autentifikācija ar publiskajām / privātajām atslēgām kad tas ir iespējams.
  • Papildiniet drošību ar SELINUX un ugunsmūriem.
  • Kontrolējiet piekļuvi, kurai lietotājiem ir jāpierakstās attālināti.

Autentificējiet SSH publiskās / privātās atslēgas


Pašlaik lieto SSH atslēgas Tā ir neaizstājama prasība, šo autentifikāciju plaši izmanto administratori, lai automatizētu uzdevumus starp dažādiem serveriem, un to pat izmanto izstrādātāji, lai piekļūtu tādiem SCM kā GIT, GITHUB, GITLAB.

Tas piedāvā lielu drošību un iespēju izveidot automatizētus uzdevumus uz skriptu balstīts kā Atpakaļ vai Atkārtojiet izmaiņas uz vairākiem mezgliem vienlaicīgi.

Lietojot atslēgu SSH (publisks un privāts), viņi var viegli izveidot savienojumu ar vienu serveri vai vairākiem serveriem, katru reizi neievadot paroli. Ir iespējams konfigurēt savas atslēgas bez ieejas frāzes, tomēr tas būtu neapdomīgi, ja kāds iegūtu jūsu atslēgu, viņš varētu to izmantot. Mēs runāsim par to, kā ģenerēt atslēgas, izplatīt tās un izmantot ssh-agent, lai iegūtu lielāku drošību.

Atslēgu ģenerēšana bez ieejas frāzes
Pirmkārt, pārliecinieties, vai esat instalējis OpenSSH, tas nav nepieciešams, serveris ir tikai klients.

Mēs sākam, ģenerējot DSA tipa atslēgu ar 1024 bitu drošību, kas ir vairāk nekā pietiekami, lai gan jūs varat iet tālāk un ģenerēt RSA tipa atslēgu ar ierobežojumu 4096.

 ssh -keygen -b 1024 -t dsa
Tas prasīs mums vietu, kur tas saglabās noklusējuma atslēgas ~ / .ssh
 Ievadiet failu, kurā saglabāt atslēgu (/home/test/.ssh/id_dsa)
Tad tā lūgs frāzi, kuru mēs tagad neizmantosim, un mēs to atstāsim tukšu, un tā mums pateiks, ka atslēga ir izveidota un atspoguļo mūs.

Attēls vienmēr būs atšķirīgs, tas tiks ģenerēts nejauši, tad, ja mēs ejam uz mapi .ssh, mums ir jābūt 2 failiem

id_dsa -----> Privātā atslēga (nekopīgojiet to nevienam, tas ir kā jūsu TDC).
id_dsa.pub ----> Tas ir tas, ko mēs kopīgojam, lai izveidotu savienojumu.

Kopīgojiet publisko atslēgu
Ja mēs vēlamies koplietot publisko atslēgu SCM vai šefpavārā, Puppet, Jenkins, mēs vizualizējam publiskās atslēgas failu, nokopējam to un ielīmējam vietā, kur tas atbilst.

 vairāk id_dsa.pub ssh-dss AAAAB3NzaC1kc3MAAACBAN6SEI4Qqzb23pJYRXIAtPmGJHln5hFdthFq43ef + ifR29v2IknXCFwefKK8jorSDiUEY / 1F / yp0xao mjhFQu1jNXOgF0PAZTfivRVFn6Q9FRsyXU9s + fx + + L22sV7GkCHPxAAAAFQCyF1Gdh3 xQiW3mf3y4IX654O82SLGl7Vhh5UsvG8r8d8pV6R Cap4xr / J44xDDn 0gFArHmFwAxfQAAAIEAmVYjPYAdQ9DCNWP + + + 03anWgyoZqSPPs23djyVQ756U4VitM0GiIQQ89HCdvTFFpSagnfdVpWh4 Hxo4Y5skKihnPMtB bFNbP / 2SmGdPz1AOmb7tvRrTkj5VLtXeDeB3ulowUKarwiBVVvAvxtxmozoZHOADWqrEPizxIAAACAU2DF1ZGTiJMP OhVB7mlsVhhkq53OxKKJbZqsl9hkOiSxaLUfQBNu6Ae441ekIObqolWNCBIvCO3uQYOozyzNGBhqHE7FVq 1oXguj + + + 2GAQ UGNkee96D2by S7daieIKNmFer2hO / SBxzepMrWAiIUnUsP5irmYspkjGlQxP + AxP = testa @ solvetic 
Ja vēlaties to kopīgot, lai piekļūtu serverim, es vienmēr iesaku izmantot ssh-copy-id, kas ir iekļauts OpenSSH, un to ir ļoti viegli lietot:
 ssh-copy-id user @ remote-server-ip -i norāda izmantojamās atslēgas atrašanās vietu.
Ir arī citi veidi, piemēram:
 ssh user @ remote-server-ip \ 'cat >> .ssh / Author_keys2' <.ssh / id_dsa.pub
 scp ~ / .ssh / id_dsa.pub lietotājs @ attālais serveris-ip
Turpmāk atslēgas ir savienotas, un jums ir jāievada tikai resursdators.
 ssh -l lietotāja attālais serveris-ip
Šoreiz tas neprasīs paroli, un mēs varam izmantot skriptus bez mijiedarbības.

Ģenerējiet ieejas frāzi un saistiet to ar ssh-agent
SSH atslēgu drošība Tas ir balstīts uz mūsu privāto atslēgu, kas darbojas kā piekļuves karte, bet, ja kāds nozog mūsu atslēgu, viņš varēs piekļūt visām vietām, kur mums ir piekļuve. Bet, ģenerējot ieejas frāzi, mums var būt papildu līmenis, ne tikai atslēga ir nepieciešama, bet mums nav jāievieš mūsu frāze.

Šoreiz mēs izveidosim rsa atslēgu ar lielāku drošību, konfigurējot frāzi.

 ssh -keygen -b 4096 -t rsa -C "Atslēga ar ieejas frāzi" # -C Pievienot komentāru. 
Kā frāze mēs varam izmantot atstarpes, punktus un īpašas rakstzīmes
 piemērs ---> Šī ir mana jaunā atslēga ar Fr @ S3.
Mēs dalāmies ar jauno atslēgu:
 scp ~ / .ssh / id_rsa.pub lietotājs @ attālais serveris-ip
Šoreiz mums ir nepieciešama atslēga un ieejas frāze, taču tās ievadīšana vairākas reizes ir garlaicīga, taču mēs varam to papildināt ar ssh-agent, mums tas ir jāsāk.
 ssh-aģents
Mēs pievienojam savu atslēgu
 ssh-add Ievadiet ieejas frāzi /home/user/.ssh/id_rsa: # Mēs ievadām mūsu konfigurēto frāzi. 
Tagad mēs varam izveidot savienojumu ar jebkuru serveri, kas izmanto mūsu atslēgu, bez nepieciešamības ievadīt mūsu ieejas frāze.

Es iesaku šo metodi, ja atrodaties ārpus iekštīkla, klienta un servera dažādos interneta punktos, un mēs neizmantosim automatizētus uzdevumus, bet drīzāk izveidosim savienojumu ar serveri attālās administrēšanas nolūkos, vislabāk ir norādīt paroli vai ļoti garu ieejas frāze (15 vai vairāk rakstzīmes, lielie, mazie, cipari un simboli) publiskajai atslēgai.

Šādā veidā uzlauzt būs praktiski neiespējami izmantojot šo metodi, jo hakerim ne tikai būs jāzina parole, bet viņam būs jābūt derīgam publiskam sertifikātam serverī, lai viņu varētu autentificēt. (Protams, pieņemot, ka serveris nekad nav ticis apdraudēts un ir pilnībā atjaunināts un ar vislabāko iespējamo drošību).

Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave