5 najboljih OpenSSH servera najboljih sigurnosnih praksi


SSH (Secure Shell) je mrežni protokol otvorenog koda koji se koristi za povezivanje lokalnih ili udaljenih Linux servera za prijenos datoteka, pravljenje rezervnih kopija na daljinu, daljinsko izvršavanje naredbi i druge zadatke vezane za mrežu putem scp komande ili sftp komande između dva servera koji se povezuju na bezbednom kanalu preko mreže.

U ovom članku ću vam pokazati neke jednostavne alate i trikove koji će vam pomoći da pooštrite sigurnost vašeg ssh servera. Ovdje ćete naći neke korisne informacije o tome kako osigurati i spriječiti ssh servere od brute force i rječničkih napada.

1. DenyHosts

DenyHosts je open-source skripta za prevenciju upada za SSH servere zasnovana na evidenciji koja je napisana u programskom jeziku Python koji je namijenjen da ga pokreću Linux sistemski administratori i korisnici radi praćenja i analize pristupa SSH serveru evidencije za neuspjele pokušaje prijave se nazivaju napadi bazirani na rječniku i napadi grube sile.

Skripta radi tako što zabranjuje IP adrese nakon određenog broja neuspjelih pokušaja prijave i također sprječava takve napade da dobiju pristup serveru.

DenyHosts Features
  • Prati /var/log/secure da pronađe sve uspješne i neuspjele pokušaje prijave i filtrira ih.
  • Prati sve neuspjele pokušaje prijave od strane korisnika i uvredljivog hosta.
  • Stalno prati svakog postojećeg i nepostojećeg korisnika (npr. xyz) kada se pokuša prijaviti bez uspjeha.
  • Prati svakog uvredljivog korisnika, hosta i sumnjive pokušaje prijavljivanja (ako je nekoliko neuspješnih prijava) zabranjuje IP adresu tog hosta dodavanjem unosa u /etc/hosts.deny fajl.
  • Po želji šalje obavijest putem e-pošte o novoblokiranim hostovima i sumnjivim prijavama.
  • Također održava sve važeće i nevažeće neuspjele pokušaje prijavljivanja korisnika u odvojenim datotekama tako da olakšava identifikaciju važećih ili nevažećih korisnika koji su napadnuti. Dakle, da možemo izbrisati taj nalog ili promijeniti lozinku, ili onemogućiti shell za tog korisnika.

2. Fail2Ban

Fail2ban je jedan od najpopularnijih okvira za detekciju/prevenciju upada otvorenog koda napisan u python programskom jeziku. Radi skeniranjem datoteka dnevnika kao što su /var/log/secure, /var/log/auth.log, /var/log/pwdfail > itd. za previše neuspjelih pokušaja prijave.

Fail2ban se koristi za ažuriranje datoteke Netfilter/iptables ili TCP Wrapper-a hosts.deny, za odbijanje IP adrese napadača na određeno vrijeme. Takođe ima mogućnost debaniranja blokirane IP adrese na određeni vremenski period koji su odredili administratori. Međutim, određeni minut debaniranja je više nego dovoljan da se takvi zlonamjerni napadi zaustave.

Fail2Ban karakteristike
  • Multi-threaded i Highly konfigurabilan.
  • Podrška za rotaciju datoteka dnevnika i može raditi s više servisa kao što su (sshd, vsftpd,apache, itd.).
  • Nadgleda datoteke dnevnika i traži poznate i nepoznate obrasce.
  • Koristi tabelu Netfilter/Iptables i TCP Wrapper (/etc/hosts.deny) za zabranu IP napada napadača.
  • Pokreće skripte kada je dati uzorak identificiran za istu IP adresu više od X puta.

3. Onemogućite Root prijavu

Podrazumevano, Linux sistemi su unapred konfigurisani da dozvoljavaju ssh udaljenu prijavu za sve uključujući i samog root korisnika, što omogućava svima da se direktno prijave na sistem i dobiju root pristup. Uprkos činjenici da ssh server omogućava sigurniji način za onemogućavanje ili omogućavanje root prijava, uvijek je dobra ideja onemogućiti root pristup, održavajući servere malo sigurnijim.

Postoji toliko mnogo ljudi koji pokušavaju grubo nametnuti root račune putem SSH napada jednostavnim davanjem različitih imena naloga i lozinki, jedan za drugim. Ako ste administrator sistema, možete provjeriti logove ssh servera, gdje ćete pronaći brojne neuspjele pokušaje prijave. Glavni razlog iza brojnih neuspjelih pokušaja prijave je dovoljno slabe lozinke i to ima smisla za hakere/napadače da pokušaju.

Ako imate jake lozinke, onda ste vjerovatno sigurni, međutim, bolje je onemogućiti root prijavu i imati običan poseban račun za prijavu, a zatim koristiti sudo ili su da dobijete root pristup kad god je to potrebno.

4. Prikaži SSH baner

Ovo je jedna od najstarijih funkcija dostupnih od početka ssh projekta, ali jedva da sam vidio da je neko koristi. U svakom slučaju, smatram da je to važna i vrlo korisna funkcija koju sam koristio za sve svoje Linux servere.

Ovo nije u svrhu sigurnosti, ali najveća prednost ovog banera je što se koristi za prikazivanje ssh poruka upozorenja za UN-ovlašteni pristup i poruka dobrodošlice ovlaštenim korisnicima prije upita za lozinku i nakon što se korisnik prijavi.

5. SSH prijava bez lozinke

Prijava bez SSH lozinke sa SSH keygenom će uspostaviti odnos povjerenja između dva Linux servera što čini prijenos datoteka i sinhronizacija mnogo lakša.

Ovo je vrlo korisno ako se bavite daljinskim automatiziranim sigurnosnim kopijama, daljinskim izvršavanjem skripti, prijenosom datoteka, daljinskim upravljanjem skriptama, itd. bez svakog unosa lozinke.

Da biste dodatno osigurali svoj SSH server, pročitajte naš članak o tome kako osigurati i ojačati OpenSSH server