Kako podesiti pametne telefone i računare. Informativni portal

SSH pristup Cisco opremi. Postavljanje i osiguranje SSH-a

Ako radite u IT-u, onda ste se vjerovatno hiljadu puta susreli sa potrebom da se daljinski prijavite na neki uređaj ili server - ovaj zadatak se može obaviti na nekoliko načina, glavna dva su kontrola uređaja preko komandne linije - telnet i Secure Shell (SSH).

Postoji jedna glavna razlika između njih - u protokolu telnet svi podaci se prenose preko mreže u nešifrovanom obliku, iu 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 , i SSH 23 .

Podešavanje

Za početak, trebat će vam Packet Tracer je program za emulaciju mreže kompanije Cisco. Potpuno je besplatan i može se preuzeti sa netacad.com nakon registracije. Pokrenite Packet Tracer i krenimo.

Izgradite topologiju kao na slici ispod - jedan računar i jedan prekidač trećeg sloja. Morat ćete ih spojiti zajedno i započeti postavljanje.

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

Ako, odmah nakon kreiranja, konzola prekidača pita da li da pokrene početni dijalog konfiguracije, odgovorite „Ne“.
en conf t interfejs vlan 1 ip adresa 192.168.1.1 255.255.255.0 bez isključivanja

Hajde sada da pokušamo da pingujemo prekidač i telnet sa našeg računara na komutator - i videćete da će veza biti odbijena jer još uvek nismo konfigurisali autentifikaciju na prekidaču.


Pređimo na postavljanje autentifikacije. Sistem podržava 20 virtuelnih tty/vty linije za Telnet, SSH i FTP usluge. Svaka sesija koja koristi gornji protokol zauzima jedan red. Također možete poboljšati ukupnu sigurnost provjeravanjem zahtjeva za autorizaciju na uređaju. Vratite se na opći konfiguracijski način ( conf t) na prekidaču koristeći naredbu izlaz i unesite sljedeće naredbe:

Linija vty 0 15 lozinka cisco login end

Cisco lozinka korištena u ovom članku je izuzetno nesigurno i služi samo u svrhu demonstracije. Ako takvu lozinku ostavite na stvarnoj opremi, šanse da budete hakirani će biti beskonačne. Bolje iskoristi naše :)

Sada pokušajte ponovo sa Telnet-om na prekidač - sve bi trebalo da ispadne! Međutim, kada pokušate da odete na konfiguraciju i pokrenete naredbu enable, vidjet ćete da to nije moguće, zbog činjenice da lozinka za globalni način rada nije postavljena. omogućiti.

Da to popravite, unesite sljedeće naredbe:

Conf t omogući lozinku cisco

Pokušajte ponovo - sada bi trebalo da radi!


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

Unesite sljedeće komande (iz moda glavne konfiguracije):

Ime hosta merionet_sw1 ip ime domene merionet kripto ključ generiše rsa

Odaberite dužinu ključa - zadana vrijednost je jednaka 512 bitova, za SSH verziju 2 minimalna dužina je 768 bita. Generisanje ključeva će potrajati.

Nakon generiranja ključa, nastavimo s konfiguracijom prekidača:

Ip ssh verzija 2 linija vty 0 15 transportni ulaz ssh

Sada više neće biti moguće prijaviti se putem Telnet protokola, jer smo ga zamijenili sa SSH. Pokušajte se prijaviti putem ssh-a koristeći zadanu prijavu - admin. Promenimo to u nešto pristojno (opet iz conf t):

Korisničko ime admin tajna cisco linija vty 0 15 login local do wr

Sada se pokušajte prijaviti sa radne stanice na prekidač i uvjerite se da su nove postavke stupile na snagu.

Je li vam ovaj članak od pomoći?

Molim te reci mi zašto?

Žao nam je što vam članak nije bio od koristi: (Molimo, ako nije teško, navedite iz kog razloga? Bit ćemo veoma zahvalni na detaljnom odgovoru. Hvala što ste nam pomogli da postanemo bolji!

Pitanje "kako uspostaviti vezu sa Cisco protokol SSH? pada na pamet svakom ko se susreće sa ovom opremom. Odgovor je "Lako!"
Na primjer, uzmimo model rutera Cisco 881. Komande za konfigurisanje drugih rutera (1841, 2800, 3825…) ili prekidača (2900, 3500, 4800…) će biti slične. Razlika može biti samo u postavkama interfejsa. (Podešavanje pristupa po protokolu SSH do zaštitnih zidova Cisco ASA opisano u članku ""
Dakle, na raspolaganju imamo:

Zadatak: postavite sigurnu vezu s ruterom Cisco koristeći protokol SSH i pružaju sigurno daljinsko upravljanje.

Korak 0. Podešavanje interfejsa

Interfejs koji će se koristiti za upravljanje mora biti omogućen na ruteru. U našem slučaju će biti enterijer (LAN) interfejs fastethernet 0.

Za referenciju:
Na ruteru Cisco 881 postoji jedan interfejs 3rd nivo Fastethernet 4(onaj na koji možete odmah postaviti IP adresa) i ugrađeni prekidač sa četiri interfejsa 2nd nivo ( Fastethernet 0 do Fastethernet 3). Za svako od ova 4 sučelja možete se vezati jedan (!) virtuelni interfejs 3rd nivo. ( Vlan).
Za upravljački interfejs rutera izaberite prvu dostupnu adresu na kancelarijskoj mreži - 192.168.0.1 . Zatim idite na postavke virtuelnog interfejsa VLAN 1 i dodijelite mu ovo ip adresa. Nakon toga, vezujemo ga za jedan od fizički sučelja rutera ( fastethernet 0) i uključite ga komandom no shut.

radi jasnoće:
ip adresa => interfejs Vlan X => interfejs Fastethernet Y
Pitaj ip adresa interfejsa VLAN 1
R-DELTACONFIG (config)#
interfejs Vlan 1
ip adresa 192.168.0.1 255.255.255.0
nema gašenja

Mi se vezujemo VLAN 1 na fizički interfejs Brzi Ethernet 0
R-DELTACONFIG (config)#
interfejs Fa 0
switchport pristupni vlan 1
nema gašenja

Posljednja radnja se izvodi kako bi se uvjerili da su postavke ispravne. VLAN 1 vezan po defaultu za svaki interfejs 2nd nivo i linija će biti prikazani u konfiguraciji samo ako je broj Vlanće se razlikovati od 1.
Zatim morate provjeriti dostupnost kreiranog sučelja sa samog rutera, a zatim s bilo koje kancelarijske radne stanice, na primjer, sa administratorske radne stanice. Jednostavna provjera naredbi će biti dovoljna Ping. Naravno, interfejs rutera fastethernet 0 mora biti povezan na LAN prekidač (ili direktno na administratorski računar) i adresa računara sa kojeg se vrši testiranje je na istoj mreži kao i adresa interfejsa rutera (npr. 192.168.0.10 ).

Korak 1 Kreirajte administratorski nalog

Daljinsko upravljanje zahtijeva da kreirate račun ako ga već nemate.
R-DELTACONFIG (config)#
korisničko ime admin tajna *****

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

Bitan!
Prema pravilima lijepog ponašanja, lozinka se sastoji od velikih i malih slova, brojeva i specijalnih znakova. znakova, ali ne kraćih od 8 znakova.

Korak 2 Postavljanje lozinke za konfiguracijski način rada

Prilikom otvaranja konzole za upravljanje ruterom, korisnik ulazi u pojednostavljeni način rada, iz kojeg je moguće vidjeti samo neke parametre uređaja i tehničke informacije o njemu. Istovremeno, pored naziva uređaja nalazi se znak strelice " > »
R-DELTACONFIG>
Da biste vidjeli konfiguraciju rutera i dalje ga konfigurirali, morate unijeti naredbu omogućiti
>enable
#

U početku, ovaj način rada nije zaštićen lozinkom i svaki korisnik koji se poveže pomoću konzolnog kabela (o kabelu i načinu povezivanja je opisano u) moći će ući u konfiguracijski način. S druge strane, korisnik koji se povezao na daljinu ( ssh/telnet), za koji nivo privilegija nije postavljen (samo u našem slučaju), neće moći ući u konfiguracijski način.
Postavite lozinku za privilegirani način rada(znak heš # pored naziva rutera) ulaskom u konfiguracijski način ( conf t).
R-DELTACONFIG (config)#
R-DELTACONFIG (config)# omogući tajnu ******

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

Korak 3: Omogućite daljinsko upravljanje

Za daljinsko upravljanje, morate navesti metodu provjere autentičnosti korisnika naredbom login local
R-DELTACONFIG (config)#
linija vty 0 4
login local

Nakon dovršetka ovog koraka, i pod uslovom da je sučelje za upravljanje ruterom dostupno korisniku, postaje moguće povezati se na ruter koristeći protokol telnet. Da biste to učinili, iz komandne linije administratorske radne stanice izvršite naredbu
C:\Documents and Settings\***>telnet 192.168.0.1
Trebalo bi da budete upitani za korisnika i lozinku koji su postavljeni korak 1. Nakon uspješne autorizacije bit će dostupna pojednostavljeno Način upravljanja ruterom (sa strelicom “ > "). Za pristup privilegovan način rada ( # ) potrebno je da unesete naredbu omogućiti, a nakon lozinke od korak 2.

Korak 4 Postavite SSH

Kada koristite protokol telnet(TCP port 23) sve naredbe i podaci o konfiguraciji uređaja se prenose u čistom obliku, što je potencijalno nesigurno. Za osiguranje veze koristi se protokol. SSH(TCP port 22).
Za postavljanje veze putem protokola SSH potrebno je postaviti ime domene (bilo koje), generirati kriptografski pristupni ključ i omogućiti sam protokol SSH verzija 2.
R-DELTACONFIG (config)#
web stranica 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 što završite ovaj korak, moći ćete se povezati putem SSH korištenjem posebnog programa koji podržava ovu funkciju, na primjer kit. Možete preuzeti sa ovog linka.

Korak 5 Ograničite vezu s ruterom samo na SSH

Kako bi se isključila mogućnost povezivanja na ruter pomoću protokola telnet potrebno je da unesete sljedeće komande:
R-DELTACONFIG (config)#
linija vty 0 4
transportni ulaz ssh

Nakon toga daljinski pristup konzoli uređaja neće biti moguć osim putem SSH protokola.
Dodatno, možete ograničiti pristup upravljanju Cisco ruterom ili prebaciti samo sa određenih IP adresa. Opisano je kako se to radi.

Bitan!
Budite oprezni s pristupom uređaju. Ne zanemarite zaštitu veze i ograničite krug osoba koje se primaju u upravljanje.

Bitan!

Nemoj zaboraviti spasiti konfiguraciju svih uređaja sa naredbom pisati ili početak kopiranja. U suprotnom, nakon ponovnog pokretanja, sve promjene će biti izgubljene.
pisati
konfiguracija zgrade...

SSH protokol se često koristi za daljinsko upravljanje ruterima i prekidačima. Posebno za upravljanje Cisco mrežnom opremom. Podešavanje ove opreme za povezivanje putem SSH-a bit će razmotreno u ovom članku.

Zašto SSH za Cisco

SSH je siguran protokol koji će biti smetnja sakupljačima i krekerima koji žele da preuzmu vašu Cisco mrežnu opremu.

Ali pravilno podešavanje je važno ako želite da vaš ruter bude siguran.

A za Cisco, konfiguracija SSH protokola se vrši prema posebnim pravilima, a ne na isti način kao što se upravljanje udaljenim serverom kreira u FreeBSD-u.

Kako postaviti SSH vezu za Cisco

Podešavanje 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 povezivanje na opremu, pa se preporučuje generiranje RSA. A za ovo morate podesiti tačan datum i vrijeme u Cisco, inače ključ neće raditi: cisco# sat postavljen 17:10:00 28. avgust 2016. Nakon toga idite na način direktne izmjene konfiguracije, koji će biti potrebno za kreiranje veze putem SSH protokola: cisco# configure terminal

Da biste generirali javni ključ, morat ćete unijeti ime domene pod kojim će se klijent povezati na mrežnu opremu. Da biste to učinili, koristite naredbu: cisco(config)# ip ime domene ime_domena.ru. Nakon toga, možete generirati RSA ključ koristeći sljedeću kombinaciju: cisco(config)# kripto ključ generiše rsa. Ako želite da pojačate zaštitu vaše mrežne opreme, možete koristiti dodatne lozinke, samo prvo aktivirajte njihovu enkripciju pomoću naredbe: cisco(config)# service password-encryption.

Zatim morate kreirati korisnika, smisliti lozinku za njega i odrediti nivo pristupa: cisco(config)# korisničko ime korisničko_ime privilegija 15 lozinka 7 lozinka. Tek nakon što imate barem jednog korisnika na sistemu, možete pokrenuti AAA protokol koristeći sljedeću naredbu: cisco(config)# aaa new-model. A da biste konačno pokrenuli terminalske linije putem SSH protokola, morate ući u njihovu konfiguraciju. Da biste to učinili, napišite: cisco(config)# linija vty 0 4, gdje možete odrediti konfiguracijsku vrijednost od 0 do 4. Nakon toga možete aktivirati vezu putem SSH protokola - napišite cisco(config-line)# transport unos ssh.

Iako već imate pokrenute linije SSH terminala, unesite ovu funkciju da sačuvate promjene: cisco(config-line)# sinkrono evidentiranje i također postavite vrijednost vremenskog ograničenja SSH sesije: cisco(config-line)# exec-timeout 60 0. Nakon toga izađite iz config-line i config. Konačno, dodajte nove konfiguracije u sistem mrežne opreme Cisco: cisco# copy running-config startup-config. To je to - posao je završen, sada će vaša oprema raditi preko sigurne SSH veze.

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

Povezivanje i konfigurisanje Cisco Catalyst 2960 ima svoje nijanse i donekle se razlikuje od opreme za povezivanje drugih proizvođača. Za početno podešavanje će biti potreban vlasnički RJ-45-RS-232 ravni kabl (u plavoj pletenici, koji se isporučuje uz opremu) i COM port na matičnoj ploči računara preko kojeg će se obavljati procedure podešavanja.


Na matičnim pločama modernih računara nema COM porta, pa je za njegovo konfigurisanje potreban poseban adapter. Cisco koristi Mini-USB konektore u svojoj konzolnoj opremi. Da biste konfigurisali preko Mini-USB porta, preuzmite program drajvera za cisco usb konzolu.

Postavljanje Hyper Terminala

Ako se postupak postavljanja izvodi pomoću operativnog sistema Windows 7/8, tada će se pojaviti problem nedostatka HyperTerminal-a. Može se brzo riješiti ako kopirate željeni folder iz Windows XP u bilo koji direktorij Windows 7/8. U operativnom sistemu Windows XP, fascikla se nalazi u direktorijumu Program Files. Za pokretanje programa koristi se datoteka hypertrm.exe koja se nalazi u istom folderu. Može se koristiti i drugi program, Putty. Pored povezivanja na Cisco opremu, koristi se za rad sa ruterima, serverima, kada su za njihovo povezivanje potrebna SSH podešavanja.



Da biste izvršili proceduru prebacivanja, kabel mora biti spojen na RJ-45 konektor, koji je označen kao "Konzola" na prednjoj ploči. Zatim morate uključiti napajanje prekidača i otići na HyperTerminal na računaru. U programu morate odabrati interfejs konektora koji odgovara COM1 i njegovu brzinu jednaku 9600 B / s. Na sva naredna pitanja treba odgovoriti negativno "Ne". Ako odaberete VLAN postavku u interfejsu konektora, možete konfigurisati IP adresu uređaja na njemu.



Opšti principi za konfigurisanje Cisco opreme

Kako bi osigurali visok nivo sigurnosti, Cisco prekidači podržavaju dva načina unosa komandi:

  • prilagođeno - koristi se za provjeru stanja opreme;
  • privilegirano - koristi se za promjenu konfiguracije prekidača (analogno je administratorskom modu za Windows ili root za UNIX).

Ako postoji znak "#" u redu prije naredbe, tada je aktivan privilegirani način rada. Kao u UNIX sistemu, kada unesete lozinku na ekranu, ona se neće prikazati. Koristite naredbu enable za ulazak u privilegirani način rada i onemogućavanje za izlazak.

Početno podešavanje prekidača. Kada tokom prvog pokretanja instalacijski čarobnjak prikaže poruku o konfiguraciji korak po korak, morate je odbiti: Nastaviti s dijalogom za konfiguraciju? : br. Ovo će učitati korisnički način rada: Switch>

switch>enable

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

Cisco 2960 Basic Settings

Zamjena naziva prekidača (prvobitno je Switch):

Prekidač # konfiguracija terminala

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

Switch01(config)#

Ako postoji mnogo prekidača, onda svaki od njih mora imati jedinstveno ime. U budućnosti će to pomoći da se utvrdi da je konfiguracija implementirana na uređaju koji je potreban. Duga imena se ne preporučuju, bolje je izabrati kratka.

Postavljanje IP adrese za port za upravljanje komutatora

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

Switch01(config-if)# nema gašenja (interfejs je uključen)

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

Switch01(config-if)# izlaz (izlaz iz moda konfiguracije interfejsa)

Switch01(config)#

Postavljanje lozinke za privilegirani način rada

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

Switch01(config)# izlaz

S obzirom da se informacije tokom telnet konekcije prenose u čistom obliku, potrebno je koristiti SSH veze koje će omogućiti šifriranje saobraćaja.

Switch01# conf t Switch01(config)# ip naziv domene geek-nose.com (domena je postavljena, ako ne postoji, upisuje se bilo koja)

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

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

Switch01(config)# ip ssh autentikacija-pokušaji 3 (broj pokušaja ssh konekcije)

Switch01(config)# usluga šifriranje lozinkom (sačuvajte lozinke u šifriranom obliku)

Switch01(config)# linija vty 0 2 (prebacite se na konfiguracijski način i terminalne linije)

Switch01(config-line)# transportni ulaz ssh (povezivanje samo preko ssh)

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

Switch01(config-line)# end (Izlaz iz konfiguracionog moda)

Switch01# copy running-config startup-config (Sačuvaj postavke)

Ovo je bila osnovna SSH postavka. Naprednije izgleda:

Switch01# conf t Switch01(config)# aaa new-model (omogući AAA protokol)

Switch01(config)# korisničko ime root privilegija 15 tajna pass1234 (kreira korisnika root s maksimalnim nivoom privilegija 15 i lozinka pass1234)

Switch01(config)# access-list 01 dozvola 192.168.0 0.0.0.255 (postavite pravilo pristupa zvano 01 putem ssh-a 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 (prebacite se na konfiguracijski način terminalske linije) Switch01(config-line)# nivo privilegija 15 (omogućite pristup privilegovanom načinu rada)

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

Switch01(config-line)# sinhrono evidentiranje (onemogućavanje poruka za evidentiranje)

Switch01(config-line)# end (izlaz iz konfiguracionog moda)

Switch01# kopiraj run-config startup-config (sačuvaj postavke).

Ovim je završena osnovna konfiguracija prekidača Cisco 2960. Ako je potrebno, uvijek se možete vratiti na tvorničke postavke i izvršiti postavke ispočetka.

Instalirajte SSH

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

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

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

  • Secure Shell SSH verzija 1 Integrirani klijent;
  • Secure Shell SSH verzija 1 Server Support;
  • Secure Shell SSH verzija 2 Server Support;

neće biti fizički prisutan u IOS-u.

Dodavanje SSH podrške na Windows Server

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

Lako ga je uključiti.

Prije svega, hajde da saznamo koja se verzija OpenSSH klijenta i servera nalazi u spremištima koja su trenutno dostupna za instalaciju. Ovo je neophodno da kada verzije počnu da se povećavaju (u trenutku pisanja, postoji samo jedna verzija, 1.0), onda ne bismo imali probleme poput „nešto što skripta koja instalira određenu verziju ne radi“. Uradimo to kao ovaj cmdlet:

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

Imam Windows Server 2019 pa izlaz izgleda ovako:

Vidimo da je SSH klijent već inicijalno instaliran, ali SSH server nije. Za Windows Server 2016, izlaz će biti malo drugačiji, u početku ništa nije instalirano. OK, hajde da instaliramo SSH server:

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

Klijent, kao što je jasno, ako je odsutan, onda se postavlja na isti način. Tild - četiri komada, ne zatvarati.

Ako dobijete grešku 0x800f0950, ne očajavajte - samo Feature-On-Demand ne može pronaći spremište. Probajte sa dobrim starim DISM-om:

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

Provjerimo da li je sve instalirano:

Get-Service sshd

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

Ako je sve u redu, onda imamo sshd servis - međutim, zaustavljen. Nemojte ga odmah uključivati ​​- prvo morate napraviti minimalne postavke, o čemu će biti riječi u odgovarajućem odjeljku članka.

Popravljanje SSHv2 verzije

Početni zoo SSH verzija - SSH 1.3, zatim SSH 1.5, pa "specijalna verzija od Cisco-a, koja pokazuje da server može i 2.0 i prethodne", a to je 1.99 - sada je potpuno nebitno, jer sav softver može SSHv2. Pronalaženje softvera koji podržava samo SSH 1.x pravi je izazov. Stoga, naravno, uvjerite se da nemate takav softver i ažurirajte ga ako je potrebno - ali mi ćemo razmotriti samo funkcionalnost i sigurnost druge verzije SSH-a.

Omogućite SSH 2.x na Cisco IOS

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

atraining(config)#ip ssh verzija 2

Ako u ovom trenutku još niste kreirali niti jedan par ključeva prikladan za SSHv2, pojavit će se nešto poput ove poruke:

Molimo kreirajte RSA ključeve da omogućite SSH (i od najmanje 768 bita za SSH v2).

Ovo nije strašno, osim što napominjemo da SSHv2 ima „niže“ zahtjeve za dužinu ključa u paru ključeva. Međutim, nećemo pokušavati kreirati ključeve koji ne potpadaju pod ovo ograničenje - dani kada su, na primjer, 512-bitni RSA ključevi bili aktivno korišteni, prošli su.

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

atraining(config)#kripto ključ generiše RSA modul 2048 oznaka SSH_KEYS

Parametri su jednostavni - rsa će postaviti algoritam (noviji IOS dodaje varijantu ec), modul - dužinu bita (možete je postaviti na 4096, to će sigurno biti sigurnije), oznaka - za kreiranje "named for a par ključeva posebne namjene.

Neke verzije Cisco IOS-a imaju ograničenje na pohranjene parove ključeva - do 10 po uređaju i do 2 po korisniku - tako da se može prikazati upozorenje poput "pažnja, novi par ključeva će zamijeniti prethodni". Prati ga.

Recimo sada SSH-u da koristi upravo ovaj par:

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

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

%SSH-5-DISABLED: SSH 2.0 je onemogućen
%SSH-5-ENABLED: SSH 2.0 je omogućen

Ovo će ukazati da je prelazak sa "bilo kojih ključeva" na "eksplicitno specificirani 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 konfiguracijski način:

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

i eksplicitno specificirati da dolazne veze trebaju biti isključivo preko SSH:

atraining(config-line)#transport input ssh

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

Lako je sa Cisco Nexus-om – podržavaju samo SSH 2.x, tako da ne morate da preduzimate dodatne korake da ograničite povezivanje sa starijim verzijama SSH-a.

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

Ako nema ključeva, možete ih eksplicitno kreirati, odmah željene dužine 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 mogućnosti ssh

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

atraining-nx(config)#feature ssh

Parametri ssh ključa su trivijalni, osim što napominjem da se stari ključevi neće automatski prepisati, ako je potrebno, treba ih prepisati - dodajte na kraju naredbe force

Omogućite SSH 2.x u sshd

U sshd postavkama morat ćemo dodati (ili zamijeniti) red:

Omogućite SSH 2.x u Windows Serveru

U direktoriju %WINDIR%\System32\OpenSSH\ nalazit će se standardni OpenSSH konfiguracijski fajl, sshd_config_default - i tamo, u teoriji, može postojati postavka o "samo druga verzija", ali u stvari se uvijek koristi samo SSHv2. Stoga, ne postoji poseban korak za omogućavanje SSHv2 na Windows Serveru.

Hajde sada da ograničimo listu protokola koji se mogu koristiti za autentifikaciju kada se klijent poveže.

Ograničavanje liste protokola za autentifikaciju servera

SSH podržava nekoliko opcija za autentifikaciju hosta s kojim se uspostavlja veza - korištenjem DSA, ECDSA, RSA algoritama i zajedničke eliptičke krive 25519.

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

Stoga smo odmah isključili mogućnost korištenja DSA.

Popravljamo u Cisco IOS-u upotrebu RSA za identifikaciju hosta

Za Cisco će biti jednostavno:

atraining(config)#ip ssh server algoritam hostkey ssh-rsa

Popravljanje algoritama identifikacije hosta u sshd-u

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

AUTOCREATE_SERVER_KEYS="RSA ED25519"

Kao što vidite, ovo je postavka „u čijim se algoritmima automatski generišu ključevi domaćina“. Napominjem da ako je zadatak visoka pouzdanost, onda je 4096-bitni RSA pravi izbor, a ako su brzine, onda će EC 25519 biti poželjniji.

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

  • 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

ostaviti samo neophodno.

Ako se bojite ukloniti višak - ne bojte se, pri pokretanju, sshd servis će pročitati konfiguracijsku datoteku i kreirati one koje nedostaju, ako je potrebno.

Nakon toga, u konfiguracijskoj datoteci, trebate pronaći direktive za korištenje ovih datoteka s ključevima - one (direktive) 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 su vam potrebne, a ostale komentarišite dodavanjem simbola # (oštar) ispred redova.

Ako nedostaje direktiva za korištenje datoteke ili datoteka nije dostupna, tada se odgovarajući algoritam ne može koristiti za autentifikaciju hosta, što može dovesti do problema s vezom.

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

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

Ostavljajući samo potrebne tipove ključeva - obično ED25519 i RSA - morate ih ponovo kreirati ručno, tj. outsourcing „neka to uradi server prilikom sljedećeg ponovnog pokretanja usluge“ nije dobra ideja.

Radi se 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 dužine, a ne zadane dužine.

Ograničavanje protokola za SSH autentifikaciju u Windows Serveru

Shema je ista - idemo na datoteku sshd_config_default i ostavljamo samo:

  • HostKey ssh_host_rsa_key
  • HostKey ssh_host_ed25519_key

Ako je potrebno, i Ed25519 i RSA, ili općenito samo Ed25519. Nakon toga generišemo 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-add ssh_host_ed25519_key

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

Brendirana štaka iz Microsofta

Plod sumornog uma Microsoft programera je štaka za propisivanje prava na fajlove sa ključevima. Preporučljivo je da ga pokrenete, ali ako ste psihički zdravi i pretpostavljate da servis mora imati prava na ključne fajlove koje koristi, možete i bez njega. Međutim, ako išta, to se kaže ovako:

Install-Module -Force OpenSSHUtils

Repair-SshdHostKeyPermission -FilePath

Za to će biti potreban NuGet i općenito... uvjerite se sami:

Procijenite nivo ciljne publike koja za ove radnje treba da preuzme paket modula i izvrši cmdlet – tj. ne da upalite mozak i distribuirate prava, nego da zapamtite naredbu - to možete i sami. Siguran sam da će Microsoft izdati nekoliko MVP-ova za ovaj modul.

Sada o razmjeni ključnih informacija.

Postavljanje razmjene ključeva / generiranja ključnog materijala

Postoji mnogo varijanti DH, ili Diffie-Hellman-Merkle algoritma. Bez udubljivanja u materijal prema samom algoritmu u ovom članku, da vidimo kako možemo ojačati prednji dio s ove strane.

Razmjena ključeva i zajedničko generiranje ključnog materijala za određenu sesiju je vrlo ozbiljna tema u bezbjednosti. Naš zadatak je da izbjegnemo opciju kada ćemo imati scenario „jake autentifikacije, ali bez razmjene ključeva“.

Hajde da vidimo kako trenutno imamo konfigurisan DH u SSH na Cisco IOS:

atraining#sh ip ssh | inc Diffie

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

Loše. Potrebno vam je najmanje 2048 bita. Postavljamo ga naredbom:

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

Zato izaberite sami - SHA-512, sa podrškom za svu korišćenu opremu, biće najbolji izbor.

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

Prema zadanim postavkama, SSH koristi varijantu pod nazivom Encrypt-and-MAC - MAC se dodaje šifriranim podacima, koji se smatraju od nešifriranih. U ovom slučaju, da biste provjerili MAC, prvo morate dešifrirati primljeni blok informacija kako biste dobili otvoreni tekst, a zatim izračunati i uporediti hešove. Ova opcija omogućava napad na algoritme šifriranja i dobijanje "posrednih" podataka u slučaju kompromitacije ciljnog sistema.

Najbolja opcija u smislu sigurnosti bi bila Encrypt-Then-MAC. Zašto? U slučaju kada se koristi shema “hash from already encrypted”, prije svega se provjerava integritet, a ako nešto nije u redu, podaci se odmah odbacuju; ne dolazi do probnog dešifriranja. Takve MAC varijante će imati sufiks -etm. Imajući ove tačke na umu, naša konfiguracija će izgledati ovako:

MAC-ovi [email protected],[email protected]

Na Cisco IOS, MAC tip će biti postavljen na sljedeći način:

atraining(config)#ip ssh server 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) nam neće raditi, jer se računa istom brzinom (još treba izračunati uobičajeni SHA-1), i štedi promet - pa, hm, nikako.

MAC za izračunavanje ključa otiska prsta

U OpenSSH-u možemo postaviti i algoritam po kojem će se izračunati „otisak prsta“ – otisak ključa. Zadana postavka je MD5 - međutim, bilo bi bolje eksplicitno naznačiti da je bolje koristiti SHA-2/256 za prikaz i upoređivanje heševa ključeva:

FingerprintHash sha256

Sada pređimo sa kriptografskog dijela na mrežni dio.

SSHv2 mrežne postavke

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

Blok će izgledati otprilike ovako:

Luka 22
AdresaFamily inet
IgnoreRhosts da
UseDNS br
Slušaj Adresa x.x.x.x
TCPKeepAlive da
#VerifyHostKeyDNS br
#UseRoaming br

Neka od podešavanja su jasna - na primjer, Port 22 vezuje SSH uslugu za navedeni broj porta, koji se može promijeniti ako je potrebno - barem da botovi za pogađanje lozinke ne kucaju, a ListenAddress eksplicitno ukazuje na koje L3 adrese treba prihvatiti zahtjevi za povezivanje (ograničenje je relevantno u slučaju nekoliko adresa i/ili mrežnih sučelja, ili u scenariju "host može imati nova mrežna sučelja u pokretu, a to ne znači da moraju čekati na SSH konekciju") . Ostale postavke su manje očigledne.

AddressFamily inet kaže da ćemo čekati samo IPv4 veze. Ako koristite IPv6 i preko njega su moguće veze sa SSH serverom, dodajte AddressFamily inet,inet6 .

TCPKeepAlive yes će biti potreban za otkrivanje isključenih korisnika na nivou mreže i prekidanje njihovih sesija. Onemogućavanje ovog mehanizma, koji se ponekad preporučuje “za uštedu saobraćaja” (suze, a ne uštede), dovešće do situacije u kojoj ssh u nekim slučajevima neće moći da shvati da korisnik nije samo neaktivan, već nikada neće moći da nastaviti sa radom na ovoj sjednici. Pa ga uključujemo.

IgnoreRhosts yes onemogućava drevni mehanizam za kreiranje liste hostova (obično u .rhosts datoteci) sa kojih su dozvoljene neautorizovane prijave.

UseDNS no neće biti potreban da bi se onemogućila provjera PTR zapisa za pretplatnika koji se povezuje - pored činjenice da je u internoj mreži, a pri povezivanju sa eksternih, prisustvo PTR-a također potpuno opciono, ova mjera samo usporava vezu , i ne podiže nivo sigurnosti - maksimum koji to čini - upisuje u dnevnik upozorenje o tome da "osoba koja se povezuje nije rekla 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 servera), u ovom slučaju je moguće da se nećete 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, ispostavilo se, raste broj uključenih podsistema, a samim tim i opada ukupna pouzdanost sistema.

Korišteno, ne morate ga isključiti. Po svojoj logici, ovo je postavka klijenta, ali iz nekog razloga se ponekad pojavljuju misli „omogućite to na serveru“. Dodao sam je na ovu listu i komentirao da bih naglasio ovu stvar - ne morate specificirati ovu opciju u postavkama servera.

UseRoaming ne isključuje podršku za roaming, eksperimentalnu OpenSSH ekstenziju koja je trebalo da obrađuje scenarije poput „pokrenuti administratora s jednog mjesta, zatim premješteno na drugo i odatle nastavilo“. Zapravo, nikome nije bila potrebna ova funkcionalnost i nije dodala nikakve revolucionarne inovacije, ali je donijela sigurnosne probleme - sve do ranjivosti sa PoC-om -. Stoga ga izričito onemogućavamo. Kao i prethodni parametar - klijent, tj. ovdje je naveden jer, opet, u brojnim vodičima piše “isključi svuda, i na klijentu i na serveru”. Nije, samo na klijentu.

SSH ograničenja na proceduru povezivanja sesije

Proces povezivanja na sesiju također treba razraditi, jer. da upotreba „neuobičajenih“ metoda povezivanja, da klijentu koji se povezuje sa nepotrebnim informacijama, da trošenje resursa servera na održavanje mnogih „paralelnih“ zahteva nije potrebno.

Blok naših postavki o svemu ovome će izgledati ovako:

RhostsRSAA autentikacija br
PubkeyAuthentication br
HostbaseAuthentication br
ChallengeResponseAuthentication br
KerberosAuthentication br
PasswordAuthentication da

PrijavaGraceTime 15

ClientAliveInterval 1800
ClientAliveCountMax 0

MaxAuth pokušava 3
MaxSessions 1
DozvolaTunel br

MaxStartups 10:50:20
ShowPatchLevel br

Hajde da shvatimo šta i kako.

Blok RhostsRSAAuthentication br , PubkeyAuthentication br , HostbaseAuthentication br , ChallengeResponseAuthentication br , KerberosAuthentication no onemogućuje nekorištene metode provjere autentičnosti. Naravno, ako koristite, recimo, Kerberos za prijavu na SSH server, onda ne morate da onemogućite Kerberos. Ali u tipičnom scenariju, kada se unos vrši na uobičajenije načine, višak mora biti eksplicitno onemogućen.

Parametar LoginGraceTime pokazuje koliko vremena korisnik može potrošiti na proceduru prijave. Zadana vrijednost je 2 minute. Ovo je mnogo. Veoma 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 duže - možete povećati, ali razumno. Što je još važnije, server će brže "resetirati" sesije koje su započele, ali još nisu završile autentifikaciju i uštedjeti resurse.

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

Par postavki ClientAliveCountMax i ClientAliveInterval će biti potreban da bi se odredilo kada treba onemogućiti neaktivnog klijenta. ClientAliveInterval je vrijeme neaktivnosti u sekundama nakon kojeg će klijent biti prekinut, a ClientAliveCountMax je broj pokušaja da se „probudi“ klijent. U našem slučaju, klijent će biti isključen nakon pola sata neaktivnosti.

Parametar MaxAuthTries govori koliko pokušaja neuspješne provjere autentičnosti (na primjer, unos pogrešne lozinke) će sesija prekinuti od strane servera. Zadana vrijednost je 6, što je previše. Tri puta je dovoljno.

Ekvivalent 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 iste SSH veze može se inicijalizirati. Ovo nije ograničenje na “paralelne sesije sa istog hosta”! Ovo je upravo "stavite SSH cev na server i unutar nje multipleksirate mnoge sesije sa prosljeđivanjem podataka". Ako vam ne treba takav scenario - kada se povežete na server X i preko njega prosljeđujete promet duboko u mrežu, onda je jedan dovoljan - i samo se trebate povezati na određeni server i administrirati ga, onda MaxSessions 1, da . Parametar PermitTunnel no će dovršiti konfiguraciju režima „ssh samo za administraciju servera na koji se povezujemo“.

MaxStartups 10:50:20 je mehanizam sličan WRED-u, o čijoj se porodici raspravlja i logika njegove konfiguracije će biti sljedeća - prva i zadnja vrijednost su početni broj konekcija (mi smo govorimo samo o konekcijama koje nisu autentificirane), počevši od čega će i mehanizam proraditi maksimalan broj mogućih konekcija (u našem slučaju mehanizam će se uključiti kada bude 10 konekcija na server, a 21. povezivanje će biti tehnički nemoguće), a prosječni parametar je vjerovatnoća u procentima. Imamo ga 50, tj. mi ćemo odbiti u polovini slučajeva kada će broj sesija „visi u fazi autentifikacije“ biti od 10 do 20.

Možete to učiniti još jednostavnije - na primjer, MaxStartups 10 , tj. postavite MaxStartups sa jednim parametrom. Ovo jednostavno specificira maksimalan broj istodobno provjerenih sesija.

Ekvivalent MaxStartups N sa jednim parametrom u Cisco IOS-u je naredba atraining(config)#ip ssh maxstartups N, gdje je N isti maksimalni broj istodobno potvrđenih sesija.

Sa naredbom ShowPatchLevel no isključit ćemo objavljivanje detaljnih informacija o SSH verziji klijentu za povezivanje.

Sada idemo na blok postavki vezanih za račune.

Grupe i korisnici u podešavanju SSH servera

Sasvim je očigledno da treba nekako eksplicitno da naznačimo ko može da nam se poveže i koji će zahtevi biti postavljeni za tog nekoga.

AllowUsers admin admin2
AllowGroups nixadmins
DenyUsers nginx
DenyGroups nginx
PermitEmptyPasswords br
PermitRootLogin br
UsePrivilegeSeparation sandbox

Ni tu nema ništa posebno iznenađujuće, svi parametri su vrlo precizno imenovani - osim što ću se zaustaviti na izričitoj zabrani prijavljivanja preko ssh-a za servisne naloge i grupe (nginx u mom primjeru). Nemojte biti lijeni da to eksplicitno registrujete, takvi se računi mijenjaju izuzetno rijetko, a sigurnosna mreža neće škoditi. Da, i ne radi kao root, ma koliko to trivijalno zvučalo.

U verziji sa Cisco IOS-om, nema smisla vršiti takva podešavanja lokalno na uređaju, jer logičnije je koristiti AAA i preusmjeriti zahtjeve za autentifikaciju i autorizaciju preko RADIUS/TACACS na neki centralizirani server, ili (u novom IOS-u) otići direktno u LDAP skladište sa zahtjevima “da li postoji takav korisnik”. Izrada lokalnih baza podataka na svakom uređaju je nezgodna i nesigurna. Cijeli ovaj mehanizam nije vezan za SSH, već je općenitiji način preusmjeravanja zahtjeva za autentifikaciju/autorizaciju, tako da ovdje nije opisan tako da članak ostane o SSH-u, a ne o “o svemu što može biti povezano sa SSH-om”.

Međutim, što se tiče lozinki, još uvijek ne škodi napraviti postavku - naredbu

atraining(config)#sigurnosna lozinka min-dužina N

postavlja minimalnu dužinu lozinki na ovom uređaju.

UsePrivilegeSeparation sandbox postavka će eksplicitno reći ssh-u da će se za svaku dolaznu vezu kreirati poseban sshd proces s minimalnim privilegijama - a nakon uspješne autorizacije, kreirat će se novi, koji će obraditi sesiju određenog povezanog korisnika. Ovo smanjuje gubitke kada se pojavi nova ranjivost u mehanizmu sshd veze - onaj ko iskoristi ovu ranjivost, čak i ako je ssh proces uhvaćen, dobiće minimum prava u sistemu.

Sažetak

Nadam se da će vam ova mala kontrolna lista biti od pomoći. SSH se izuzetno široko koristi, tako da je predvidljivo konfigurisan i siguran pristup kroz njega temelj za pouzdanu mrežnu infrastrukturu.

Datum zadnje izmjene teksta:

Top Related Articles