Kako osigurati i ojačati OpenSSH server


Kada je u pitanju pristup udaljenim uređajima kao što su serveri, ruteri i svičevi, SSH protokol se preporučuje s obzirom na njegovu sposobnost da šifrira promet i odvrati svakoga ko bi mogao pokušati prisluškivati vaše veze.

Kako god 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 da osigurate i ojačate instalaciju OpenSSH na serveru.

1. Postavite SSH autentifikaciju bez lozinke

Prema zadanim postavkama, SSH zahtijeva od korisnika da daju svoje lozinke prilikom prijavljivanja. Ali evo stvari: hakeri mogu pogoditi lozinke ili čak izvršiti napad grubom silom koristeći posebne alate za hakiranje i dobiti pristup vašem sistemu. Da bismo bili sigurni, upotreba SSH provjere autentičnosti bez lozinke se preporučuje.

Prvi korak je generiranje SSH para ključeva koji se sastoji od javnog ključa i privatnog ključa. Privatni ključ se nalazi na vašem host sistemu, dok se javni ključ kopira na udaljeni server.

Jednom kada je javni ključ uspješno kopiran, sada možete neprimetno SSH pristupiti udaljenom serveru bez potrebe za unosom lozinke.

Sljedeći korak je da onemogućite autentifikaciju lozinkom. Da biste to postigli, morate izmijeniti SSH konfiguracijsku datoteku.

sudo vim /etc/ssh/sshd_config

Unutar konfiguracijske datoteke, skrolujte i pronađite sljedeću direktivu. Dekomentirajte i promijenite opciju 'yes' u 'ne'

PasswordAuthentication no

Zatim ponovo pokrenite SSH demon.

sudo systemctl restart sshd

U ovom trenutku, imat ćete pristup udaljenom serveru samo pomoću provjere autentičnosti SSH ključa.

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

Drugi preporučeni način za jačanje sigurnosti vašeg servera je da onemogućite SSH prijavu korisnika bez lozinki. Ovo zvuči pomalo čudno, ali ponekad administratori sistema mogu kreirati korisničke naloge i zaboraviti da dodijele lozinke – što je vrlo loša ideja.

Da biste odbili zahtjeve korisnika bez lozinke, ponovo idite na konfiguracijsku datoteku na /etc/ssh/sshd_config i uvjerite se da imate direktivu ispod:

PermitEmptyPasswords no

Zatim ponovo pokrenite SSH servis da bi se promjena izvršila.

sudo systemctl restart sshd

3. Onemogućite SSH root prijave

Nije jasno šta se može dogoditi ako haker uspije grubo nametnuti vašu root lozinku. Dopuštanje udaljene root prijave je uvijek loša ideja koja bi mogla ugroziti sigurnost vašeg sistema.

Iz tog razloga, uvijek se preporučuje da onemogućite SSH udaljenu root prijavu i umjesto toga držite se običnog korisnika koji nije root. Još jednom, prijeđite na konfiguracijski fajl i modificirajte ovaj red kao što je prikazano.

PermitRootLogin no

Kada završite, ponovo pokrenite SSH uslugu da bi se promjena izvršila.

sudo systemctl restart sshd

Od sada će daljinska root prijava biti 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, masovnom šifriranju i robusnim algoritmima.

Prema zadanim postavkama, SSH koristi protokol 1. Da promijenite ovo u sigurniji Protokol 2, dodajte red ispod u konfiguracijski fajl:

Protocol 2

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

sudo systemctl restart sshd

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

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

ssh -1 user@remote-IP

Dobit ćete grešku koja glasi "SSH protokol v.1 više nije podržan ".

U ovom slučaju, komanda je bila:

ssh -1 [email 

Dodatno, možete jednostavno odrediti oznaku -2 samo da biste bili sigurni da je Protokol 2 podrazumevani protokol koji se koristi.

ssh -2 [email 

5. Postavite vrijednost vremena čekanja SSH veze u mirovanju

Ostavljanje vašeg računara bez nadzora tokom dužeg vremenskog perioda sa neaktivnom SSH vezom može predstavljati bezbednosni rizik. Neko može jednostavno proći i preuzeti vašu SSH sesiju i raditi šta god želi. Da bismo riješili problem, razumno je, stoga, postaviti ograničenje vremenskog ograničenja mirovanja koje će, kada se prekorači, SSH sesija biti zatvorena.

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

Ovo implicira da će SSH sesija biti prekinuta ako nijedna aktivnost nije registrovana nakon 3 minute, što je ekvivalentno 180 sekundi.

Zatim ponovo pokrenite SSH daemon da izvršite 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 sistemu. Ovo sprečava sve druge korisnike koji bi mogli pokušati da uđu u vaš sistem bez vašeg odobrenja.

Kao i uvijek, otvorite konfiguracijsku datoteku i dodajte direktivu “AllowUsers” nakon čega slijede imena korisnika kojima želite dodijeliti. U primjeru ispod, omogućio sam korisnicima 'tecmint' i 'james' da imaju daljinski pristup sistemu preko SSH-a. Svaki drugi korisnik koji pokuša dobiti daljinski pristup bit će blokiran.

AllowUsers tecmint james

Nakon toga ponovo pokrenite SSH da bi se promjene nastavile.

sudo systemctl restart sshd

7. Konfigurirajte ograničenje za pokušaje lozinke

Drugi način na koji možete dodati sloj sigurnosti je ograničavanje broja pokušaja SSH prijave tako da nakon više neuspjelih pokušaja, veza pada. Stoga još jednom prijeđite na konfiguracijski fajl i pronađite direktivu “MaxAuthTries” i definirajte vrijednost za maksimalni broj pokušaja.

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

MaxAuthTries 3

I na kraju, ponovo pokrenite SSH servis kao u prethodnim scenarijima.

Možda će vam biti korisni i sljedeći članci vezani za SSH:

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

To je bio pregled nekih od mjera koje možete poduzeti da osigurate svoje SSH udaljene veze. Važno je dodati da biste uvijek trebali dodijeliti jake lozinke korisnicima koji imaju daljinski pristup kako bi spriječili napade grubom silom. Nadamo se da vam je ovaj vodič bio pronicljiv. Vaše povratne informacije su dobrodošle.