Kako osigurati i očvrsnuti OpenSSH poslužitelj


Kada je riječ o pristupu udaljenim uređajima kao što su poslužitelji, usmjerivači i preklopnici, SSH protokol se toplo preporučuje s obzirom na njegovu sposobnost šifriranja prometa i obrane od svih koji bi mogli pokušati prisluškivati vaše veze.

Bilo kako bilo, zadane postavke SSH nisu nepogrešive i potrebna su dodatna podešavanja kako bi protokol bio sigurniji. U ovom vodiču istražujemo različite načine koje možete koristiti za osiguranje i ojačavanje OpenSSH instalacije na poslužitelju.

1. Postavite SSH autentifikaciju bez lozinke

Prema zadanim postavkama, SSH zahtijeva od korisnika da navedu svoje lozinke prilikom prijave. Ali evo što je važno: hakeri mogu pogoditi lozinke ili čak izvršiti brutalni napad pomoću posebnih alata za hakiranje i dobiti pristup vašem sustavu. Radi sigurnosti, preporučuje se korištenje SSH provjere autentičnosti bez lozinke.

Prvi korak je generiranje SSH para ključeva koji se sastoji od javnog ključa i privatnog ključa. Privatni ključ nalazi se na vašem glavnom sustavu, dok se javni ključ zatim kopira na udaljeni poslužitelj.

Nakon što je javni ključ uspješno kopiran, sada možete neprimjetno pristupiti SSH-om na udaljeni poslužitelj bez potrebe za davanjem lozinke.

Sljedeći korak je onemogućiti provjeru autentičnosti lozinke. Da biste to postigli, morate izmijeniti SSH konfiguracijsku datoteku.

sudo vim /etc/ssh/sshd_config

Unutar konfiguracijske datoteke pomaknite se i pronađite sljedeću direktivu. Uklonite komentar i promijenite opciju 'yes' u 'ne'

PasswordAuthentication no

Zatim ponovno pokrenite SSH demon.

sudo systemctl restart sshd

U ovom trenutku, samo ćete imati pristup udaljenom poslužitelju pomoću provjere autentičnosti SSH ključa.

2. Onemogućite korisničke SSH zahtjeve za povezivanje bez lozinke

Još jedan preporučeni način jačanja sigurnosti vašeg poslužitelja je onemogućavanje SSH prijave korisnika bez lozinke. Ovo zvuči pomalo čudno, ali ponekad administratori sustava mogu kreirati korisničke račune i zaboraviti dodijeliti lozinke – što je vrlo loša ideja.

Da biste odbili zahtjeve korisnika bez lozinke, ponovno prijeđite na konfiguracijsku datoteku na /etc/ssh/sshd_config i provjerite imate li donju direktivu:

PermitEmptyPasswords no

Zatim ponovno pokrenite SSH uslugu kako bi promjena bila izvršena.

sudo systemctl restart sshd

3. Onemogućite SSH korijenske prijave

Nije jasno što se može dogoditi ako haker uspije brutalno iskoristiti vašu root lozinku. Dopuštanje udaljene root prijave uvijek je loša ideja koja bi mogla ugroziti sigurnost vašeg sustava.

Iz tog razloga, uvijek se preporučuje da onemogućite SSH udaljenu root prijavu i umjesto toga se držite običnog nekorijenskog korisnika. Još jednom prijeđite na konfiguracijsku datoteku i izmijenite ovaj redak kako je prikazano.

PermitRootLogin no

Nakon što završite, ponovno pokrenite SSH uslugu kako bi promjena bila izvršena.

sudo systemctl restart sshd

Ubuduće, udaljena root prijava bit će deaktivirana.

4. Koristite SSH protokol 2

SSH dolazi u dvije verzije: SSH protokol 1 i protokol 2. SSH protokol 2 uveden je 2006. godine i sigurniji je od protokola 1 zahvaljujući snažnim kriptografskim provjerama, masovnoj enkripciji i robusnim algoritmima.

Prema zadanim postavkama, SSH koristi protokol 1. Da biste ovo promijenili na sigurniji Protokol 2, dodajte donji redak konfiguracijskoj datoteci:

Protocol 2

Kao i uvijek, ponovno pokrenite SSH kako bi promjene stupile na snagu.

sudo systemctl restart sshd

Ubuduće će SSH prema zadanim postavkama koristiti Protokol 2.

Da biste testirali je li SSH protocol 1 više podržan, pokrenite naredbu:

ssh -1 user@remote-IP

Dobit ćete pogrešku koja glasi “SSH protokol v.1 više nije podržan”.

U ovom slučaju, naredba je bila:

ssh -1 [email 

Osim toga, možete jednostavno navesti oznaku -2 samo kako biste bili sigurni da je Protocol 2 zadani protokol koji se koristi.

ssh -2 [email 

5. Postavite vrijednost čekanja SSH veze u mirovanju

Ostavljanje vašeg računala bez nadzora dulje vrijeme s neaktivnom SSH vezom može predstavljati sigurnosni rizik. Netko može jednostavno proći i preuzeti vašu SSH sesiju i raditi što god hoće. Da biste riješili problem, stoga je mudro postaviti ograničenje čekanja u mirovanju koje će se, kada se prekorači, zatvoriti SSH sesija.

Još jednom otvorite svoju SSH konfiguracijsku datoteku i pronađite direktivu “ClientAliveInterval”. Dodijelite razumnu vrijednost, na primjer, postavio sam ograničenje na 180 sekundi.

ClientAliveInterval 180

To implicira da će SSH sesija biti prekinuta ako se nijedna aktivnost ne registrira nakon 3 minute, što je ekvivalentno 180 sekundi.

Zatim ponovno pokrenite SSH demon kako biste izvršili promjene.

sudo systemctl restart sshd

6. Ograničite SSH pristup određenim korisnicima

Za dodatni sigurnosni sloj, možete definirati korisnike kojima je potreban SSH protokol za prijavu i obavljanje udaljenih zadataka na sustavu. Ovo sprječava sve druge korisnike koji bi mogli pokušati ući u vaš sustav bez vašeg odobrenja.

Kao i uvijek, otvorite konfiguracijsku datoteku i dodajte direktivu “AllowUsers” nakon koje slijede imena korisnika kojima želite dodijeliti. U donjem primjeru dopustio sam korisnicima ‘tecmint’ i ‘james’ daljinski pristup sustavu putem SSH-a. Svaki drugi korisnik koji pokuša dobiti daljinski pristup bit će blokiran.

AllowUsers tecmint james

Nakon toga ponovno pokrenite SSH kako bi se promjene zadržale.

sudo systemctl restart sshd

7. Konfigurirajte ograničenje za pokušaje unosa lozinke

Drugi način na koji možete dodati sloj sigurnosti je ograničavanje broja pokušaja SSH prijave tako da nakon nekoliko neuspjelih pokušaja veza padne. Dakle, još jednom prijeđite na konfiguracijsku datoteku i pronađite “MaxAuthTries” direktivu i definirajte vrijednost za maksimalan broj pokušaja.

U ovom primjeru ograničenje je postavljeno na 3 pokušaja kao što je prikazano.

MaxAuthTries 3

I konačno, ponovno pokrenite SSH uslugu kao u prethodnim scenarijima.

Također bi vam mogli biti korisni ovi sljedeći članci vezani uz SSH:

  • Kako instalirati OpenSSH 8.0 poslužitelj iz izvora u Linuxu
  • Kako instalirati Fail2Ban za zaštitu SSH na CentOS/RHEL 8
  • Kako promijeniti SSH port u Linuxu
  • Kako stvoriti SSH tuneliranje ili prosljeđivanje portova u Linuxu
  • 4 načina da ubrzate SSH veze u Linuxu
  • Kako pronaći sve neuspjele pokušaje SSH prijave u Linuxu
  • Kako prekinuti neaktivne ili neaktivne SSH veze u Linuxu
Zaključak

To je bio pregled nekih mjera koje možete poduzeti da osigurate svoje SSH veze na daljinu. Važno je dodati da uvijek trebate dodijeliti jake lozinke korisnicima koji imaju udaljeni pristup kako bi spriječili napade brutalnom silom. Nadamo se da vam je ovaj vodič bio pronicav. Vaše povratne informacije su dobrodošle.