Kako postaviti pametne telefone i računala. Informativni portal

Pristup Cisco opremi putem SSH protokola. Konfiguriranje i osiguranje SSH-a

Ako radite u IT-u, vjerojatno ste se tisuću puta susreli s potrebom da se daljinski prijavite na uređaj ili poslužitelj - takav zadatak se može izvesti na nekoliko načina, dva su glavna za upravljanje uređajem putem naredbenog retka - Telnet i Secure Shell (SSH).

Postoji jedna glavna razlika između njih - u protokolu Telnet svi podaci se prenose mrežom u nekriptiranom obliku, a u slučaju SSH sve naredbe su šifrirane posebnim ključem. SSH je razvijen kao zamjena za Telnet za sigurno upravljanje mrežnim uređajima preko nesigurne mreže kao što je Internet. Za svaki slučaj, zapamtite da Telnet koristi port 22 a SSH je 23 .

Prilagodba

Prvo, trebate Packet Tracer- program za emuliranje mreža tvrtke Cisco. Potpuno je besplatan i može se preuzeti s netacad.com nakon registracije. Pokrenite Packet Tracer i nastavite s konfiguracijom.

Izgradite topologiju kao na slici ispod - jedno računalo i jedan prekidač Layer 3. Morat ćete ih spojiti i početi postavljati.

Spreman? Sada ćemo osigurati mrežno povezivanje i konfigurirati sučelje vlan 1 na prekidaču, da biste to učinili, unesite sljedeće naredbe:

Ako se odmah nakon kreiranja u konzoli prekidača pojavi pitanje treba li pokrenuti dijaloški okvir za početnu konfiguraciju - odgovorite "Ne".
en conf t sučelje vlan 1 ip adresa 192.168.1.1 255.255.255.0 bez isključivanja

Sada pokušajmo pingirati prekidač i telnet u njega s našeg računala na prekidač - i vidjet ćete da će veza biti odbijena zbog činjenice da još nismo konfigurirali autentifikaciju na prekidaču.


Prijeđimo na postavljanje provjere autentičnosti. Sustav podržava 20 virtualnih tty / vty linije za Telnet, SSH i FTP usluge. Svaka sesija koja koristi gornji protokol zauzima jedan redak. Također možete poboljšati ukupnu sigurnost provjeravanjem zahtjeva za autorizaciju na uređaju. Vratite se na način opće konfiguracije ( konf t) na prekidaču pomoću naredbe izlaz i unesite sljedeće naredbe:

Red vty 0 15 lozinka cisco prijava kraj

Cisco lozinka korištena u ovom članku je izuzetno nesigurno i služi isključivo u demonstracijske svrhe. Ako takvu lozinku ostavite na stvarnom hardveru, šanse da budete hakirani su beskrajne. Bolje iskoristite naše :)

Sada pokušajte ponovno spojiti Telnet na prekidač - sve bi trebalo uspjeti! Međutim, kada pokušate prijeći na konfiguriranje i izvršavanje naredbe enable, vidjet ćete da je to nemoguće zbog činjenice da lozinka za globalni način rada nije postavljena. omogućiti.

Da biste to popravili, unesite sljedeće naredbe:

Conf t omogući lozinku cisco

Pokušajte ponovo - sada bi trebalo biti dobro!


Sada konfigurirajmo SSH na prekidaču - za to morate navesti ime hosta, naziv domene i generirati ključ za šifriranje.

Unesite sljedeće naredbe (iz načina glavne konfiguracije):

Ime hosta merionet_sw1 naziv ip domene merionet kripto ključ generira rsa

Odaberite duljinu ključa - prema zadanim postavkama, vrijednost je jednaka 512 bitova, za SSH verziju 2 minimalna duljina je 768 bita. Generiranje ključeva će potrajati neko vrijeme.

Nakon generiranja ključa, nastavit ćemo konfigurirati prekidač:

Ip ssh verzija 2 linija vty 0 15 transportni ulaz ssh

Sada se nećete moći prijaviti putem Telneta, jer smo ga zamijenili sa SSH. Pokušajte ssh pomoću zadanog administratora za prijavu. Promijenimo to u nešto pristojnije (opet iz conf t):

Korisničko ime admin secret cisco line vty 0 15 login local do wr

Sada se pokušajte prijaviti na prekidač sa svoje radne stanice i provjerite jesu li nove postavke stupile na snagu.

Je li vam ovaj članak bio od pomoći?

Molim te reci mi zašto?

Žao nam je što vam članak nije bio od koristi: (Molimo, ako ne otežava, navedite zašto? Bit ćemo vrlo zahvalni na detaljnom odgovoru. Hvala što ste nam pomogli da postanemo bolji!

Pitanje „kako uspostaviti vezu s Cisco po protokolu SSH?" pada na pamet svakome tko se susreće s ovom opremom. Odgovor je "Jednostavno!"
Uzmimo model usmjerivača kao primjer Cisco 881... Naredbe za konfiguriranje drugih usmjerivača (1841, 2800, 3825 ...) ili prekidača (2900, 3500, 4800 ...) bit će slične. Jedina razlika može biti u postavkama sučelja. (Konfiguriranje pristupa protokolu SSH na vatrozide Cisco ASA opisano u članku ""
Dakle, na raspolaganju nam je:

Zadatak: postavite sigurnu vezu s usmjerivačem Cisco po protokolu SSH i osigurati sigurno daljinsko upravljanje.

Korak 0. Konfiguriranje sučelja

Sučelje mora biti omogućeno na usmjerivaču da bi se koristilo za upravljanje. U našem slučaju bit će interijera (LAN) sučelje Fastethernet 0.

Za referencu:
Na ruteru Cisco 881 postoji jedno sučelje 3 razini Fastethernet 4(onaj na koji možete odmah postaviti IP adresa) i ugrađeni prekidač s četiri sučelja 2 razina ( Fastethernet 0 - Fastethernet 3). Za svako od ova 4 sučelja možete se vezati jedan (!) virtualno sučelje 3 razini. ( Vlan).
Za upravljačko sučelje usmjerivača odaberite prvu dostupnu adresu u uredskoj mreži - 192.168.0.1 ... Zatim idite na postavke virtualnog sučelja Vlan 1 i dodijeliti ovo ip adresa. Nakon toga ga vežemo za jedan od fizički sučelja usmjerivača ( Fastethernet 0) i uključite ga naredbom nema zatvaranja.

radi jasnoće:
ip adresa => sučelje Vlan X => sučelje Fastethernet Y
Postavili smo ip adresa sučelja Vlan 1
R-DELTACONFIG (konfiguracija) #
sučelje Vlan 1
IP adresa 192.168.0.1 255.255.255.0
nema zatvorenih

Vezati Vlan 1 na fizičko sučelje FastEthernet 0
R-DELTACONFIG (konfiguracija) #
sučelje Fa 0
switchport pristupni vlan 1
nema zatvorenih

Posljednji korak se izvodi kako bi se uvjerili da su postavke ispravne. Vlan 1 vezan prema zadanim postavkama za svako sučelje 2 razina i linija bit će prikazani u konfiguraciji samo ako je broj Vlan bit će drugačiji od 1.
Zatim morate provjeriti dostupnost stvorenog sučelja sa samog usmjerivača, a zatim s bilo koje radne stanice u uredu, na primjer, s radne stanice administratora. Dovoljna je jednostavna provjera naredbom. Ping... Naravno, sučelje usmjerivača Fastethernet 0 mora biti spojen na LAN prekidač (ili izravno na računalo administratora), a adresa računala s kojeg se provodi test nalazi se na istoj mreži kao i adresa sučelja usmjerivača (npr. 192.168.0.10 ).

Korak 1 Stvorite administratorski račun

Za daljinsko upravljanje morate stvoriti račun, ako već ne postoji.
R-DELTACONFIG (konfiguracija) #
korisničko ime admin tajna *****

Umjesto zvjezdica ******, postavite lozinku za administratorski račun.

Važno!
Prema pravilima dobre forme, lozinka se sastoji od velikih i malih slova, brojeva i posebnih. znakova, istovremeno ne kraćih od 8 znakova.

Korak 2 postavljanje lozinke za konfiguracijski način rada

Kada otvorite upravljačku konzolu rutera, korisnik ulazi u pojednostavljeni način rada iz kojeg je moguće vidjeti samo neke parametre uređaja i tehničke podatke o njemu. U ovom slučaju, pored naziva uređaja nalazi se znak strelice " > »
R-DELTACONFIG>
Za pregled konfiguracije usmjerivača i daljnju konfiguraciju unesite naredbu omogućiti
> omogući
#

U početku, ovaj način rada nije zaštićen lozinkom i svaki korisnik koji se spojio pomoću kabela konzole (o kabelu i načinu povezivanja opisano je u) moći će ući u konfiguracijski način... S druge strane, korisnik koji se spojio na daljinu ( ssh / telnet), za koje nije postavljena razina privilegija (samo naš slučaj), neće moći ući u konfiguracijski način.
Postavite lozinku za privilegirani način rada(haš znak # pored naziva rutera) ulaskom u konfiguracijski način ( konf t).
R-DELTACONFIG (konfiguracija) #
R-DELTACONFIG (config) # omogući tajnu ******

Ova lozinka bit će ista za sve korisnike.
Možete pročitati više o načinima konfiguracije.

Korak 3. Omogućavanje daljinskog upravljača

Za daljinsko upravljanje naredbom morate odrediti način provjere autentičnosti korisnika lokalna prijava
R-DELTACONFIG (konfiguracija) #
linija vty 0 4
lokalna prijava

Nakon dovršetka ovog koraka i pod uvjetom da je sučelje za upravljanje usmjerivačem dostupno korisniku, postaje moguće spojiti se na usmjerivač pomoću protokola telnet... Da biste to učinili, pokrenite naredbu iz naredbenog retka administratorske radne stanice
C: \ Dokumenti i postavke \ ***> telnet 192.168.0.1
Trebao bi postojati zahtjev za korisnika i lozinku koji su postavljeni korak 1... Nakon uspješne autorizacije, bit će dostupan pojednostavljeno način upravljanja usmjerivačem (sa strelicom " > "). Pristupiti privilegiran način rada ( # ) morate unijeti naredbu omogućiti, a nakon lozinke od korak 2.

Korak 4 Konfiguriranje SSH-a

Prilikom korištenja protokola Telnet(TCP port 23) sve naredbe i podaci o konfiguraciji uređaja prenose se u čistom tekstu, koji je potencijalno nesiguran. Protokol se koristi za osiguranje veze SSH(TCP port 22).
Za postavljanje protokolarne veze SSH trebate postaviti naziv domene (bilo koji), generirati kriptografski pristupni ključ i omogućiti sam protokol SSH verzija 2.
R-DELTACONFIG (konfiguracija) #
web-mjesto s nazivom ip domene
kripto ključ generira RSA
Odaberite veličinu modula ključa u rasponu od 360 do 2048 za svoju
Ključevi opće namjene. Odabir ključnog modula većeg od 512 može potrajati
nekoliko minuta.
// nakon zahtjeva morate navesti 1024
Koliko bitova u modulu: 1024
% Generiranje 1024-bitnih RSA ključeva, ključevi se neće moći izvesti...
ip ssh verzija 2

Nakon dovršetka ovog koraka postaje moguće povezati se putem SSH pomoću posebnog programa koji podržava ovu funkciju, na primjer kit... Možete preuzeti ovaj link.

Korak 5. Ograničavanje veze s usmjerivačem samo putem SSH-a

Kako bi se isključila mogućnost povezivanja na ruter putem protokola Telnet morate unijeti sljedeće naredbe:
R-DELTACONFIG (konfiguracija) #
linija vty 0 4
transportni ulaz ssh

Nakon toga daljinski pristup konzoli uređaja neće biti moguć osim putem SSH protokola.
Osim toga, možete ograničiti pristup upravljanju Cisco usmjerivačem ili prebaciti samo s određenih IP adresa. Opisano je kako to učiniti.

Važno!
Budite oprezni pri pristupu uređajima. Nemojte zanemariti zaštitu veze i ograničenje kruga osoba kojima je dopušten rad.

Važno!

Ne zaboravi uštedjeti konfiguraciju svih uređaja s naredbom pisati ili copy run start... U suprotnom, nakon ponovnog pokretanja, sve promjene će biti izgubljene.
pisati
Konfiguracija zgrade...

SSH protokol se često koristi za daljinsko upravljanje usmjerivačima i prekidačima. Konkretno, za upravljanje Cisco mrežnom opremom. Konfiguriranje ove opreme za povezivanje putem SSH-a bit će razmotreno u ovom članku.

Zašto SSH za Cisco

SSH je siguran protokol koji će obeshrabriti berače i provalnike koji žele preuzeti vašu Cisco mrežnu opremu.

Ali pravilna konfiguracija je neophodna ako želite da vaš usmjerivač bude siguran.

A za Cisco, konfiguriranje SSH protokola provodi se prema posebnim pravilima, a ne na isti način kao kreiranje upravljanja udaljenim poslužiteljem u Free BSD-u.

Kako postaviti SSH vezu za Cisco

Postavljanje počinje činjenicom da morate ući u privilegirani način rada. Da biste to učinili, koristite sljedeću naredbu: cisco> enable. Najbolje je koristiti javni ključ za spajanje na opremu, stoga se preporuča generirati RSA. A za to u Ciscu morate postaviti točan datum i vrijeme, inače ključ neće raditi: cisco # sat postavljen 17:10:00 28. kolovoza 2016. Nakon toga idite na način izravne promjene konfiguracije, koji ste morat će stvoriti vezu putem SSH protokola: cisco # configure terminal

Za generiranje javnog ključa morat ćete unijeti naziv domene pod kojom će se klijent spojiti na mrežnu opremu. Da biste to učinili, koristite naredbu: cisco (config) # ip naziv domene ime_domene.ru. Nakon toga možete generirati RSA ključ koristeći sljedeću kombinaciju: cisco (config) # kripto ključ generira rsa. Ako želite pojačati zaštitu svoje mrežne opreme, možete koristiti dodatne lozinke, samo prvo aktivirajte njihovu enkripciju pomoću naredbe: cisco (config) # service password-encryption.

Zatim morate stvoriti korisnika, stvoriti lozinku za njega i odrediti razinu pristupa: cisco (config) # korisničko ime korisničko ime privilegija 15 lozinka 7 lozinka. Tek nakon što ste kreirali barem jednog korisnika na sustavu, možete pokrenuti AAA protokol pomoću sljedeće naredbe: cisco (config) # aaa new-model. A da biste konačno pokrenuli terminalske linije putem SSH protokola, morate prijeći na njihovu konfiguraciju. Da biste to učinili, napišite: cisco (config) # red vty 0 4, gdje možete odrediti konfiguracijsku vrijednost od 0 do 4. Nakon toga možete aktivirati vezu putem SSH protokola - upišite cisco (config-line) # transportni ulaz ssh.

Iako ste već pokrenuli terminalske linije preko SSH-a, unesite ovu funkciju da biste spremili promjene: cisco (config-line) # sinkrono prijavljivanje, a također zapišite vrijednost za vremensko ograničenje SSH sesije: cisco (config-line) # exec-timeout 60 0. Nakon toga izađite iz config-line i config. Konačno, dodajte nove konfiguracije Ciscovom sustavu mrežne opreme: cisco # copy running-config startup-config. To je to - posao je gotov, vaša oprema će sada raditi preko sigurne SSH veze.

Povezivanje i konfiguriranje Cisco Catalyst 2960 ima svoje nijanse i donekle se razlikuje od opreme za povezivanje drugih proizvođača.

Povezivanje i konfiguriranje Cisco Catalyst 2960 ima svoje nijanse i donekle se razlikuje od opreme za povezivanje drugih proizvođača. Početno postavljanje zahtijevat će vlasnički ravni kabel RJ-45-RS-232 (u plavoj pletenici, isporučen s opremom) i COM port na matičnoj ploči računala preko kojeg će se izvoditi postupci postavljanja.


Na matičnim pločama modernih računala nema COM porta, pa je za konfiguraciju potreban poseban adapter. Cisco koristi Mini-USB konektore u svom hardveru konzole. Za konfiguraciju putem Mini-USB porta, preuzmite upravljački program cisco usb konzole.

Konfiguriranje Hyper Terminala

Ako se postupak postavljanja izvodi pomoću operacijskog sustava Windows 7/8, tada će doći do problema s odsutnošću HyperTerminala. Može se brzo riješiti kopiranjem potrebne mape s OS Windows XP u bilo koji direktorij sustava Windows 7/8. U sustavu Windows XP, mapa se nalazi u direktoriju Program Files. Za pokretanje programa koristi se datoteka hypertrm.exe koja se nalazi u istoj mapi. Drugi program, Putty, također se može koristiti. Osim povezivanja na Cisco opremu, koristi se za rad s usmjerivačima, poslužiteljima, kada je za njihovo povezivanje potrebna SSH konfiguracija.



Da biste dovršili postupak povezivanja, kabel mora biti priključen u RJ-45 konektor, koji je na prednjoj ploči označen kao "Konzola". Zatim morate uključiti napajanje prekidača i otići na HyperTerminal na vašem računalu. U programu morate odabrati sučelje konektora koje odgovara COM1 i njegovu brzinu jednaku 9600 B / s. Za sva naredna pitanja odaberite negativan odgovor "Ne". Ako odaberete VLAN postavku u sučelju utora, na njemu možete konfigurirati IP adresu uređaja.



Opći principi konfiguriranja Cisco opreme

Kako bi se osigurala visoka razina sigurnosti, Cisco prekidači podržavaju dva načina unosa naredbi:

  • custom - koristi se za provjeru stanja opreme;
  • privilegirano - koristi se za promjenu konfiguracije prekidača (analogno je administratorskom načinu za Windows ili root za UNIX).

Ako se u retku prije naredbe nalazi znak "#", tada je aktivan privilegirani način rada. Kao i kod UNIX sustava, lozinka se neće prikazati na ekranu kada je unesete. Naredba enable se koristi za ulazak u privilegirani način rada, a disable se koristi za izlazak.

Početna konfiguracija prekidača. Kada tijekom prvog pokretanja instalacijski čarobnjak prikaže poruku o konfiguraciji korak po korak, trebate je odbiti: Nastaviti s dijaloškim okvirom za konfiguraciju? : ne Ovo će učitati prilagođeni način rada: Switch>

Prekidač> omogući

Da biste konfigurirali postavke koje se odnose na cijeli prekidač, morate omogućiti način globalne konfiguracije. Za konfiguriranje pojedinačnih sučelja koristite odgovarajući način rada sučelja.

Osnovne postavke Cisco 2960

Promijenite naziv prekidača (prvobitno je Switch):

Prekidač # konfiguriraj terminal

Switch (config) # ime hosta Switch01 (novo ime je postavljeno - Switch01)

Switch01 (konfiguracija) #

Ako postoji mnogo prekidača, svaki mora imati jedinstveno ime. U budućnosti će to pomoći da se utvrdi da se konfiguracija implementira na točno onom uređaju koji je potreban. Ne preporučuje se korištenje dugih imena, bolje je odabrati kratke.

Postavljanje IP adrese za upravljački port prekidača

Switch01 (config) # sučelje fa0 / 0 (postavlja sučelje za konfiguraciju)

Switch01 (config-if) # nema isključivanja (sučelje je omogućeno)

Switch01 (config-if) # IP adresa 192.168.0.1 255.255.255.0 (postavite IP adresu i masku)

Switch01 (config-if) # izlaz (izlaz iz načina konfiguracije sučelja)

Switch01 (konfiguracija) #

Postavljanje lozinke za privilegirani način rada

Switch01 (config) # omogući tajni pass1234 (password pass1234)

Switch01 (config) # izlaz

S obzirom da se tijekom telnet konekcije informacije prenose u čistom tekstu, potrebno je koristiti SSH veze koje će omogućiti enkripciju prometa.

Switch01 # conf t Switch01 (config) # naziv ip domene geek-nose.com (domena je postavljena, ako nije napisana nijedna)

Switch01 (config) # kripto ključ generira rsa (generira RSA ključ pod ssh)

Switch01 (config) # ip ssh verzija 2 (verzija ssh protokola)

Switch01 (config) # ip ssh autentifikacijski pokušaji 3 (broj pokušaja ssh veze)

Switch01 (config) # šifriranje lozinkom usluge (spremi lozinke u šifriranom obliku)

Switch01 (config) # linija vty 0 2 (prijelaz u način conf-i terminalnih linija)

Switch01 (config-line) # transportni ulaz ssh (samo ssh veza)

Switch01 (config-line) # exec timeout 20 0 (aktivirajte automatsko isključivanje ssh sesije nakon 20 minuta)

Switch01 (config-line) # end (Izlaz iz načina konfiguracije)

Switch01 # kopiraj run-config startup-config

Ovo je bila osnovna SSH postavka. Naprednije izgleda:

Switch01 # conf t Switch01 (config) # aaa novi model (AAA protokol je omogućen)

Switch01 (config) # korisničko ime root privilege 15 secret pass1234 (kreira root korisnika s maksimalnom razinom privilegija od 15 i lozinkom pass1234)

Switch01 (config) # access-list 01 permit 192.168.0 0.0.0.255 (pravilo pristupa s imenom 01 putem ssh-a postavljeno je za sve hostove na mreži 192.168.0.0/24; može se postaviti određena IP adresa)

Switch01 (config) # linija vty 0 2 (zaviri u način rada conf-i terminalnih linija) Switch01 (config-line) # razina privilegija 15 (dopuštenje za ulazak u privilegirani način rada)

Switch01 (config-line) # access-class 23 in (vezivanje stvorenog ssh pravila pristupa na terminalnu liniju)

Switch01 (config-line) # sinkrono zapisivanje

Switch01 (config-line) # end (izlaz iz konfiguracijskog načina)

Switch01 # kopiraj run-config startup-config (spremi postavke).

Time je dovršena osnovna konfiguracija prekidača Cisco 2960. Ako je potrebno, uvijek se možete vratiti na tvorničke postavke i izvršiti postavke "od nule".

Instalirajte SSH

Za mrežnu opremu ovaj korak nije nužan - podrška za SSH gotovo je uvijek integrirana čak i u najminimalističniju verziju OS-a. Jedina iznimka je prilično stara Cisco IOS verzija W / O CRYPTO.

Ova verzija IOS-a - uz namjerno uklanjanje svih čak i beznačajnih tragova onoga što se odnosi na kriptografiju (sve do nepostojanja (config) #enable secret) bila je potrebna za izvoz u zemlje sa strogim zakonodavstvom u smislu uvoza kriptografije. Inače, to nije samo očita Kuba + Sjeverna Koreja + Sirija + Iran, već i, na primjer, Australija.

Ako imate sličan IOS - to može biti, na primjer, na Catalystu 2950, ​​koji je, iako star, ali se može naći u proizvodnji - ažurirajte ga. Bez ažuriranja, značajke potrebne za SSH, posebno:

  • Secure Shell SSH verzija 1 Integrirani klijent;
  • Podrška poslužitelja Secure Shell SSH verzije 1;
  • Podrška poslužitelja Secure Shell SSH verzije 2;

bit će fizički odsutan iz IOS-a.

Dodavanje SSH podrške na Windows Server

Počevši od Windows Server 2016 build 1709, podrška za SSH dodana je na Windows platformu.

Lako ga je uključiti.

Prvi korak je saznati koja se verzija OpenSSH klijenta i poslužitelja nalazi u spremištima koja su trenutno dostupna za instalaciju. To je potrebno kako kada se verzije povećaju (u vrijeme pisanja, verzija jedan, 1.0), onda ne bismo imali probleme poput “nešto što skripta koja postavlja određenu verziju ne radi”. Učinimo to sa sljedećim cmdletom:

Get-WindowsCapability-Online | ? Naziv poput "OpenSSH *"

Imam Windows Server 2019, pa izlaz izgleda ovako:

Vidimo da je SSH klijent već inicijalno instaliran, ali SSH poslužitelj nije. Windows Server 2016 imat će nešto drugačiji izlaz, tamo u početku ništa nije instalirano. U redu, instalirajmo SSH poslužitelj:

Add-WindowsCapability -Online -Name OpenSSH.Server ~~~~ 0.0.1.0

Klijent, kao što je jasno, ako je odsutan, postavlja se na isti način. Tild - četiri komada, nemojte pogriješiti.

Ako dobijete pogrešku 0x800f0950, nemojte očajavati - samo Feature-On-Demand ne može pronaći spremište. Probajte kroz stari dobri DISM:

dism / Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0 / LimitAccess / Online

Provjerimo je li sve instalirano:

Get-Service sshd

pa, ili jednostavno ponovo pitaj Get-WindowsCapability -Online | ? Naziv poput "OpenSSH *":

Ako je sve u redu, tada se pojavila usluga sshd - međutim, zaustavljena. Nemojte ga odmah uključiti - prvo morate napraviti minimalne postavke, koje će biti opisane u odgovarajućem odjeljku članka.

Popravak verzije SSHv2

Početni zoo SSH verzija je SSH 1.3, zatim SSH 1.5, zatim "posebna verzija od Cisco, koja pokazuje da poslužitelj može raditi i 2.0 i prethodnu", što je 1.99 sada potpuno irelevantno, jer sav softver je sposoban za SSHv2. Pronalaženje softvera koji podržava samo SSH 1.x pravi je izazov. Stoga, naravno, pazite da nemate takav softver i ažurirajte ga ako je potrebno – ali mi ćemo razmotriti funkcionalnost i sigurnost samo druge verzije SSH-a.

Omogućavanje SSH 2.x u Cisco IOS

To je jednostavno popravljeno - za Cisco IOS to će biti naredba:

atraining (config) #ip ssh verzija 2

Ako u ovom trenutku još niste stvorili niti jedan par ključeva prikladan za SSHv2, tada ćete dobiti nešto poput ove poruke:

Stvorite RSA ključeve kako biste omogućili SSH (i od najmanje 768 bita za SSH v2).

To nije velika stvar, osim ako primijetimo da SSHv2 ima "niže" zahtjeve za duljinu ključa u paru ključeva. Međutim, nećemo pokušati stvoriti ključeve koji ne potpadaju pod ovo ograničenje – prošli su dani kada su se, na primjer, aktivno koristili 512-bitni RSA ključevi.

Ako ključevi još nisu stvoreni, to se radi jednostavno:

atraining (config) #kripto ključ generiraj RSa modul 2048 oznaka SSH_KEYS

Parametri su jednostavni - rsa će postaviti algoritam (varijanta ec je dodana u novom IOS-u), modul - duljinu bita (možete je postaviti na 4096, to će sigurno biti sigurnije), oznaka - za stvaranje "named for a par ključeva posebne namjene.

U nekim verzijama Cisco IOS-a postoji ograničenje na pohranjene parove ključeva - do 10 po uređaju i do 2 po korisniku - pa se može prikazati upozorenje poput "pažnja, novi par ključeva će prepisati prethodni". Uđite u trag.

Recimo sada SSH-u da koristi upravo ovaj par:

atraining (config) #ip ssh rsa naziv para ključeva SSH_KEYS

Ako je sve u redu, dobit ćemo ovako nešto:

% SSH-5-ONEMOGUĆEN: SSH 2.0 je onemogućen
% SSH-5-ENABLED: SSH 2.0 je omogućen

To će značiti da je prijelaz s "bilo kojih ključeva" na "izričito naveden par" bio uspješan.

Ako također trebamo obavijestiti da ovaj uređaj treba biti povezan samo pomoću SSH-a, a ne, na primjer, telneta, onda se to radi na sljedeći način - prvo idemo u VTY način konfiguracije:

atraining (config) #line vty 0 5 (ili line vty 0 15 - ovisno o modelu)

i eksplicitno naznačiti da dolazne veze moraju biti isključivo putem SSH:

atraining (config-line) #transport input ssh

Omogućavanje SSH 2.x u Cisco NX-OS

S Cisco Nexusom to će biti jednostavno – podržavaju samo SSH 2.x, tako da nema potrebe za dodatnim koracima za ograničavanje povezivanja na starije verzije SSH-a.

Ne zaboravite eksplicitno omogućiti korištenje SSH-a:

Ako nema ključeva, možete ih eksplicitno kreirati, odmah željene duljine i sa željenim algoritmom. Da biste to učinili, isključite SSH, generirajte ključeve i uključite SSH - tada će odmah "pokupiti" nove:

atraining-nx (config) #bez značajke ssh

atraining-nx (config) #ssh ključ rsa 2048

atraining-nx (config) #feature ssh

Parametri za ssh ključ su trivijalni, osim što ću napomenuti da stari ključevi neće biti automatski prepisani, ako je potrebno, da bi se prebrisali - dodajte na kraju naredbe sila

Omogućavanje SSH 2.x u sshd

U postavkama sshd-a morat ćemo dodati (ili zamijeniti) redak:

Omogućavanje SSH 2.x na Windows Serveru

U % WINDIR% \ System32 \ OpenSSH \ direktoriju bit će standardna OpenSSH konfiguracijska datoteka, sshd_config_default - i u teoriji može postojati postavka o "samo druga verzija", ali zapravo se uvijek koristi samo SSHv2. Stoga ne postoji poseban korak za omogućavanje SSHv2 na Windows Serveru.

Sada ćemo ograničiti popis protokola koji se mogu koristiti za provjeru autentičnosti prilikom povezivanja klijenta.

Ograničavanje popisa protokola za provjeru autentičnosti poslužitelja

SSH podržava nekoliko opcija za provjeru identiteta čvora s kojim je veza uspostavljena - korištenjem DSA, ECDSA, RSA algoritama i popularne 25519 eliptičke krivulje.

DSA nam se ne sviđa odmah, jer on poznaje samo ključeve od 1024 bita i postoji mišljenje koje je iznio drug Snowden da NSA ne voli samo DSA.

Stoga ćemo odmah prekinuti slučaj upotrebe za DSA.

Popravljamo korištenje RSA za identifikaciju hosta u Cisco IOS

Za Cisco će biti jednostavno:

atraining (config) #ip ssh poslužiteljski algoritam hostkey ssh-rsa

Popravljanje algoritama identifikacije hosta za sshd

U postavkama sshd, morat ćemo otići u mapu / etc / sysconfig / sshd i tamo ispraviti liniju AUTOCREATE_SERVER_KEYS:

AUTOCREATE_SERVER_KEYS = "RSA ED25519"

Kao što je jasno, ovo je postavka "u varijantama kojih algoritama bi se ključevi glavnog računala trebali automatski generirati". Imajte na umu da ako je zadatak visoka pouzdanost, onda je 4096-bitni RSA pravi izbor, a ako je brzina, onda će EC 25519 biti poželjniji.

Nakon toga idite na direktorij postavki sshd - u našoj verziji to će biti / etc / ssh - i tamo izbrišite datoteke neiskorištenih algoritama s ključevima hosta. Odnosno, s popisa kao što je:

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub
  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

ostavit ćemo samo one potrebne.

Ako se bojite izbrisati nepotrebno - ne bojte se, prilikom pokretanja sshd servis će pročitati konfiguracijsku datoteku i stvoriti one koje nedostaju, ako je potrebno.

Nakon toga, u konfiguracijskoj datoteci morate pronaći direktive za korištenje ovih datoteka s ključevima - one (smjernice) obično izgledaju ovako:

  • HostKey / etc / ssh / ssh_host_rsa_key
  • HostKey / etc / ssh / ssh_host_dsa_key
  • HostKey / etc / ssh / ssh_host_ecdsa_key
  • HostKey / etc / ssh / ssh_host_ed25519_key

i ostavite samo one koje trebate, a ostale komentirajte dodavanjem znaka # (hash) ispred redaka.

Ako direktiva o korištenju datoteke nema ili je datoteka nedostupna, tada se odgovarajući algoritam neće moći koristiti za provjeru identiteta čvora, što može dovesti do problema s povezivanjem.

Na primjer, ako ostavite samo fensi Ed25519 i isključite RSA, tada bi široko korišteni PuTTY mogao reći nešto poput ovoga:

To se, inače, rješava ažuriranjem PuTTY-a na najnoviju verziju, koja ima podršku za nove algoritme. Zato to učinite prije vremena.

Ostavljajući samo potrebne tipove ključeva - obično ED25519 i RSA - morate ih ponovno kreirati ručno, t.j. nije dobra ideja prepustiti vanjskim partnerima "pustiti poslužitelja da to učini pri sljedećem ponovnom pokretanju usluge".

To se radi ovako:

Za Ed25519: ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ""

Za RSA: ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key -N ""

Ručnim izvođenjem ovog koraka možete biti sigurni da će RSA ključ biti ispravne, a ne zadane duljine.

Ograničavajući protokoli za SSH autentifikaciju u Windows Serveru

Shema je ista - idite na datoteku sshd_config_default i ostavite samo tamo:

  • HostKey ssh_host_rsa_key
  • HostKey ssh_host_ed25519_key

Ako trebate i Ed25519 i RSA, ili općenito samo Ed25519. Nakon - generiramo ključeve:

Za Ed25519:. \ Ssh-keygen -t ed25519 -f ssh_host_ed25519_key

Za RSA:. \ Ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key

. \ ssh-dodaj ssh_host_ed25519_key

U principu, sve, sshd servis se može pokrenuti.

Markirana štaka iz Microsofta

Plod mračnog uma Microsoftovih programera je štaka za registraciju prava na datoteke s ključevima. Preporuča se pokrenuti, ali ako ste psihički zdravi i pretpostavljate da bi servis trebao imati prava na ključne datoteke koje koristi, možete i bez njega. Međutim, ako išta, to se kaže ovako:

Install-Module -Force OpenSSHUtils

Popravak-SshdHostKeyPermission -FilePath

To će zahtijevati NuGet i općenito ... uvjerite se sami:

Procijenite razinu ciljane publike koja za ove radnje treba preuzeti paket modula i pokrenuti cmdlet – t.j. nemojte uključivati ​​mozak i distribuirati prava, ali možete sami zapamtiti naredbu. Siguran sam da će Microsoft izdati nekoliko MVP-ova za ovaj modul.

Sada o razmjeni ključnih informacija.

Postavljanje razmjene ključeva/izrada ključnog materijala

Postoji mnogo varijanti DH, ili Diffie-Hellman-Merkle algoritma. Bez upuštanja u materijal samog algoritma u ovom članku, pogledajmo kako možemo ojačati prednju stranu s ove strane.

Razmjena ključeva i kogeneracija ključnog materijala za određenu sesiju vrlo je ozbiljna sigurnosna tema. Naš zadatak je izbjeći opciju kada ćemo imati scenarij “autentifikacija je jaka, ali razmjena ključeva nije”.

Pogledajmo kako sada imamo konfiguriran DH u SSH-u na Cisco IOS:

atraining # sh ip ssh | inc Diffie

Minimalna očekivana veličina ključa Diffie Hellman: 1024 bita

Loše. Mora biti najmanje 2048 bita. Ovo postavljamo naredbom:

atraining (config) #ip ssh dh min veličina 2048

Stoga, odlučite se sami - SHA-512, sa svojom podrškom na svu korištenu opremu, bit će najbolji izbor.

Ali postoji jedna suptilnost - način korištenja hasha i enkripcije.

Prema zadanim postavkama, SSH koristi varijantu pod nazivom Encrypt-and-MAC - MAC koji je pročitan kao nešifriran dodaje se šifriranim podacima. U ovom slučaju, da biste provjerili MAC, prvo morate dešifrirati primljeni blok informacija da biste dobili otvoreni tekst, a zatim izračunati i usporediti hasheve. Ova opcija omogućuje napad na algoritme šifriranja i dobivanje "posrednih" podataka u slučaju kompromitacije ciljnog sustava.

Najbolja opcija sa sigurnosne točke gledišta je Encrypt-Then-MAC. Zašto? U slučaju kada se koristi shema "hash from already encrypted", prvi korak je provjera integriteta, a ako nešto nije u redu, podaci se odmah odbacuju; ne dolazi do probnog dešifriranja. Takve MAC varijante imat će sufiks -etm. Imajući na umu ove točke, naša će konfiguracija izgledati ovako:

MAC-ovi [e-mail zaštićen],[e-mail zaštićen]

U Cisco IOS, MAC tip će biti postavljen ovako:

atraining (config) #ip ssh poslužiteljski algoritam mac hmac-sha1

Cisco IOS ima ograničen izbor - hmac-sha1 i hmac-sha1-96. Druga opcija sa rezanjem SHA-1 izlaza sa 160 bita na 96 (kao u ipsec-u) neće raditi za nas, jer se smatra istom brzinom (još uvijek trebate računati uobičajeni SHA-1), i štedi promet - pa, hm, baš nikakve.

MAC za brojanje ključeva otiska prsta

U OpenSSH-u možemo odrediti i algoritam za izračunavanje „otiska prsta“ – otiska prsta ključa. Zadana postavka je MD5 - međutim, bilo bi bolje eksplicitno naznačiti da je SHA-2/256 bolji za prikaz i usporedbu hasheva ključeva:

Hash otiska prsta sha256

Sada prijeđimo s kriptografskog dijela na mrežni dio.

SSHv2 mrežne postavke

Bit će puno mrežnih postavki, ali većina njih je trivijalna - "što koristiti" i "kako filtrirati promet", tako da nema smisla stvarati odjeljak za svaku od njih.

Blok će izgledati otprilike ovako:

Luka 22
Adresa Obitelj inet
IgnoreRhosts da
Korišteni DNS br
Slušajte Adresa x.x.x.x
TCPKeepAlive da
#VerifyHostKeyDNS br
#UseRoaming br

Neke od postavki su jasne - na primjer, Port 22 veže SSH uslugu na navedeni broj porta, koji se po potrebi može promijeniti - barem da botovi-lozinke-botovi ne kucaju, a ListenAddress jasno pokazuje na kojoj L3 adresi prihvatiti zahtjeve za povezivanje (ograničenje je stvarno u slučaju nekoliko adresa i/ili mrežnih sučelja, ili u scenariju „host može imati nova mrežna sučelja u hodu, a to ne znači da morate čekati na SSH veze na njima"). Ostale postavke su manje očite.

AddressFamily inet kaže da ćemo čekati samo IPv4 veze. Ako koristite IPv6 i preko njega se možete povezati sa SSH poslužiteljem, dodajte AddressFamily inet, inet6.

TCPKeepAlive da će biti potreban za otkrivanje prekinutih korisnika na razini mreže i prekid njihovih sesija. Onemogućavanje ovog mehanizma, koji se ponekad preporučuje "za uštedu prometa" (suze, a ne ekonomičnost) dovest će do situacije u kojoj ssh u nekim slučajevima neće moći shvatiti da korisnik nije samo neaktivan, već nikada neće moći nastaviti radeći na ovoj sjednici. Stoga uključujemo.

IgnoreRhosts yes onemogućuje drevni mehanizam za kreiranje popisa hostova (obično u datoteci .rhosts) s kojih su moguće neovlaštene prijave.

Za onemogućavanje provjere PTR zapisa za pretplatnika koji se povezuje neće biti potreban UseDNS no - osim što je u internoj mreži, a pri povezivanju s vanjskih mreža, prisutnost PTR-a je također potpuno neobavezna, ova mjera samo usporava vezu , i ne podiže razinu sigurnosti - maksimum je to - upisuje u dnevnik upozorenje o tome da "korisnik koji se povezuje nije rekao svoje pravo FQDN ime". Iako je moguće da je ova provjera omogućena, a DNS na hostu ne radi (na primjer, ukazuje na pogrešnu IP adresu DNS poslužitelja), u ovom slučaju moguće je da se neće moći povezati domaćinu. Ali to uopće nije "zaštitna mjera", već još jedan razlog da se ova provjera onemogući, jer zbog toga se, ispostavilo se, povećava broj uključenih podsustava, a time i ukupna pouzdanost sustava opada.

Koristi se, onda ga ne morate onemogućiti. Ovo je, po svojoj logici, postavka klijenta, ali iz nekog razloga ponekad se pojavljuju misli "omogućite to na poslužitelju". Dodao sam je na ovaj popis i komentirao kako bih naglasio ovu točku - ne morate specificirati ovu opciju u postavkama poslužitelja.

UseRoaming ne isključuje podršku za roaming - eksperimentalno proširenje za OpenSSH, koje je trebalo rješavati scenarije poput "pokrenut administrator s jednog mjesta, zatim premješten na drugo i nastavio od tamo". Zapravo, pokazalo se da ova funkcionalnost nikome nije od koristi i nije dodala nikakve revolucionarne inovacije, ali je donijela sigurnosne probleme – sve do ranjivosti s PoC-om. Stoga ga izričito onemogućujemo. Kao i prethodni parametar, on je na strani klijenta, tj. je ovdje navedeno jer, opet, u brojnim vodičima piše “isključi svugdje, i na klijentu i na poslužitelju”. To nije slučaj, samo na klijentu.

SSH ograničenja u postupku povezivanja sesije

Proces povezivanja na sesiju također treba razraditi, budući da da je korištenje "neobičnih" metoda povezivanja, da se klijentu koji se povezuje s nepotrebnim informacijama, da je nepotrebno trošenje resursa poslužitelja na održavanje skupa "paralelnih" zahtjeva.

Blok naših postavki za sve to će izgledati ovako:

RhostsRSAA Autentifikacija br
PubkeyAuthentication br
HostbaseAuthentication br
ChallengeResponse Authentication br
Kerberos provjera autentičnosti br
Provjera autentičnosti lozinkom da

PrijavaGraceTime 15

ClientAliveInterval 1800
ClientAliveCountMax 0

MaxAuthTries 3
Max Sessions 1
DozvolaTunel br

Max Startups 10:50:20
ShowPatchLevel br

Hajde da shvatimo što i kako.

Blok iz RhostsRSAAuthentication no, PubkeyAuthentication no, HostbaseAuthentication no, ChallengeResponseAuthentication no, KerberosAuthentication no onemogućuje nekorištene metode provjere autentičnosti. Naravno, ako koristite, recimo, Kerberos za prijavu na SSH poslužitelj, tada ne morate onemogućiti Kerberos. Ali u tipičnom scenariju, kada se prijava provodi na uobičajene načine, višak mora biti izričito onemogućen.

Parametar LoginGraceTime govori koliko vremena korisnik može potrošiti na proceduru prijave. Zadana vrijednost je 2 minute. Ovo je puno. Vrlo spor korisnik mora biti tako da mu treba toliko vremena da se prijavi. Stoga je ovaj parametar postavljen na 15 - možete unijeti za 15 sekundi. Ako vam treba dulje, možete ga povećati, ali razumno. Što je još važnije, poslužitelj će brzo "resetirati" sesije koje su započele, ali još nisu dovršile autentifikaciju, i uštedjeti resurse.

Cisco IOS pandan LoginGraceTime je naredba atraining (config) #ip ssh time-out, koja postavlja maksimalno vrijeme za proceduru prijave. Zadana vrijednost je također 2 minute, što je također malo previše i trebalo bi ga smanjiti. U slučaju Cisco NX-OS-a, to bi bilo atraining-nx (config) #ssh login-gracetime.

Bit će potrebno nekoliko postavki ClientAliveCountMax i ClientAliveInterval kako bi se odredilo kada odspojiti neaktivnog klijenta. ClientAliveInterval je vrijeme neaktivnosti u sekundama nakon kojeg će se klijent prekinuti, a ClientAliveCountMax je broj pokušaja "probudjenja" klijenta. U našem slučaju, klijent će biti isključen nakon pola sata neaktivnosti.

Parametar MaxAuthTries govori nakon koliko pokušaja neuspješne provjere autentičnosti (na primjer, unos netočne lozinke) će poslužitelj prekinuti sesiju. Zadana vrijednost je 6, što je malo previše. Tri puta je dovoljno.

Analog MaxAuthTries u Cisco IOS-u je naredba atraining (config) #ip ssh authentication-retries, sa zadanim postavkama od 3 pokušaja.

Parametar MaxSessions pokazuje koliko sesija unutar jedne SSH veze može se inicijalizirati. Ovo nije ograničenje na "istodobne sesije s istog hosta"! To je točno "stavite SSH cijevi na poslužitelj i unutar nje multipleksirate mnoge sesije s prosljeđivanjem podataka". Ako vam takav scenarij ne treba - kada se spojite na X poslužitelj i preko njega prosljeđujete promet duboko u mrežu, tada će biti dovoljno samo nekoliko - a vi se samo trebate spojiti na određeni poslužitelj i administrirati ga, onda MaxSessions 1, da. Parametar PermitTunnel no dovršit će konfiguraciju načina "ssh samo za administraciju poslužitelja na koji se povezujemo".

MaxStartups 10:50:20 je mehanizam sličan WRED-u, o čijoj se obitelji raspravlja i logika njegove konfiguracije bit će sljedeća - prva i posljednja vrijednost su početni broj veza (govorimo samo o veze koje nisu prošle autentifikaciju), počevši od kojeg će mehanizam početi raditi maksimalni mogući broj veza općenito (u našem slučaju, mehanizam će se uključiti kada postoji 10 veza na poslužitelj, a 21e veza je tehnički nemoguća) , a prosječni parametar je vjerojatnost u postocima. Imamo ga 50, t.j. odbit ćemo u polovici slučajeva kada će broj sesija koje "vise u fazi autentifikacije" biti od 10 do 20.

Možete to olakšati – npr. MaxStartups 10, t.j. postaviti MaxStartups s jednim parametrom. To će jednostavno naznačiti maksimalni broj istodobno provjerenih sesija.

Cisco IOS pandan MaxStartups N s jednim parametrom je naredba atraining (config) #ip ssh maxstartups N, gdje je N isti maksimalni broj istodobno provjerenih sesija.

Koristeći naredbu ShowPatchLevel no, isključujemo objavu detaljnih informacija o SSH verziji klijentu za povezivanje.

Sada prijeđimo na blok postavki vezanih uz račune.

Grupe i korisnici u postavljanju SSH poslužitelja

Sasvim je očito da trebamo nekako eksplicitno naznačiti tko nam se može spojiti i koje će zahtjeve za to netko postavljati.

AllowUsers admin admin2
Dopusti nixadmine
DenyUsers nginx
DenyGroups nginx
DopustiEmptyPasswords br
PermitRootLogin br
UsePrivilegeSeparation sandbox

Ovdje također nema ništa posebno iznenađujuće, svi parametri su imenovani vrlo točno - osim što ću se zadržati na izričitoj zabrani prijave putem ssh-a za servisne račune i grupe (u mom primjeru nginx). Nemojte biti lijeni to eksplicitno zapisati, takvi se računi mijenjaju iznimno rijetko, a sigurnosna mreža neće škoditi. Da, i nemojte raditi pod root-om, koliko god to trivijalno zvučalo.

U varijanti s Cisco IOS-om, nema smisla postavljati takve postavke lokalno na uređaju, budući da logičnije bi bilo koristiti AAA i preusmjeriti zahtjeve za autentifikaciju i autorizaciju preko RADIUS/TACACS na neki centralizirani poslužitelj, ili (u novom IOS-u) ići direktno u LDAP pohranu sa zahtjevima “ima li takav korisnik”. Nezgodno je i nesigurno stvarati lokalne baze podataka na svakom uređaju. Cijeli ovaj mehanizam nije vezan za SSH, već je općenitiji način preusmjeravanja zahtjeva za autentifikaciju/autorizaciju, pa se ovdje ne opisuje tako da članak ostane o SSH-u, a ne "o svemu što može biti vezano za SSH".

Međutim, što se tiče lozinki, njegovo postavljanje ne škodi – naredba

atraining (config) #sigurnosna lozinka min-duljina N

će postaviti minimalnu duljinu lozinki na ovom uređaju.

UsePrivilegeSeparation sandbox postavka eksplicitno će reći ssh-u da će se za svaku dolaznu vezu kreirati poseban sshd proces s minimalnim povlasticama – a nakon uspješne autorizacije kreirat će se novi, koji će obraditi sesiju određenog povezanog korisnika. Time se smanjuju gubici u slučaju nove ranjivosti u mehanizmu sshd povezivanja – onaj tko će tu ranjivost iskoristiti, čak i ako je ssh proces otet, dobit će minimum prava u sustavu.

Kratak sažetak

Nadam se da će vam ovaj mali popis za provjeru pomoći. SSH se široko koristi, pa je predvidljiv i siguran pristup kroz njega temelj za pouzdanu mrežnu infrastrukturu.

Datum zadnjeg uređivanja teksta:

Vrhunski povezani članci