5 najboljih sigurnosnih praksi za OpenSSH poslužitelj


SSH (Secure Shell) je mrežni protokol otvorenog koda koji se koristi za povezivanje lokalnih ili udaljenih Linux poslužitelja za prijenos datoteka, pravljenje daljinskih sigurnosnih kopija, daljinsko izvršavanje naredbi i drugi zadaci povezani s mrežom putem scp naredbe ili sftp naredbe između dva poslužitelja koji se povezuju na sigurnom kanalu preko mreže.

U ovom članku ću vam pokazati neke jednostavne alate i trikove koji će vam pomoći da pojačate sigurnost svog ssh poslužitelja. Ovdje ćete pronaći neke korisne informacije o tome kako zaštititi i spriječiti ssh poslužitelje od grubih napada i napada rječnikom.

1. DenyHosts

DenyHosts je sigurnosna skripta otvorenog koda za sprječavanje upada zasnovana na dnevniku za SSH poslužitelje koja je napisana u programskom jeziku python koji je namijenjen pokretanju od strane administratora i korisnika Linux sustava za praćenje i analizu pristupa SSH poslužitelju zapisnici za neuspjele pokušaje prijave poznati su kao napadi temeljeni na rječniku i napadi brutalnom silom.

Skripta funkcionira tako da zabranjuje IP adrese nakon određenog broja neuspjelih pokušaja prijave i također sprječava takve napade da dobiju pristup poslužitelju.

Značajke DenyHosts
  • Prati /var/log/secure kako bi pronašao sve uspješne i neuspješne pokušaje prijave i filtrira ih.
  • Prati sve neuspjele pokušaje prijave korisnika i domaćina koji je prekršio nalog.
  • Nastavlja promatrati svakog postojećeg i nepostojećeg korisnika (npr. xyz) pri neuspješnom pokušaju prijave.
  • Prati svakog prijestupnog korisnika, hosta i sumnjive pokušaje prijave (ako je broj neuspjelih prijava) zabranjuje IP adresu hosta dodavanjem unosa u /etc/hosts.deny datoteka.
  • Opcionalno šalje obavijest e-poštom o novoblokiranim hostovima i sumnjivim prijavama.
  • Također održava sve valjane i nevažeće neuspjele pokušaje prijave korisnika u zasebnim datotekama tako da olakšava prepoznavanje koji je važeći ili nevažeći korisnik napadnut. Dakle, da možemo izbrisati taj račun ili promijeniti lozinku, ili onemogućiti shell za tog korisnika.

2. Fail2Ban

Fail2ban jedan je od najpopularnijih okvira otvorenog koda za otkrivanje/prevenciju upada napisan u python programskom jeziku. Djeluje 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 hosts.deny, kako bi se odbila IP adresa napadača na određeno vrijeme. Također ima mogućnost poništavanja zabrane blokirane IP adrese na određeni vremenski period koji postavljaju administratori. Međutim, određena minuta debaniranja više je nego dovoljna da zaustavi takve zlonamjerne napade.

Značajke Fail2Ban
  • Više niti i visoko konfigurabilan.
  • Podrška za rotaciju datoteka dnevnika i može rukovati s više usluga kao što su (sshd, vsftpd, apache itd.).
  • Prati log datoteke i traži poznate i nepoznate obrasce.
  • Koristi tablicu Netfilter/Iptables i TCP Wrapper (/etc/hosts.deny) za zabranu IP-a napadača.
  • Pokreće skripte kada je određeni uzorak identificiran za istu IP adresu više od X puta.

3. Onemogućite root prijavu

Prema zadanim postavkama Linux sustavi su unaprijed konfigurirani da dopuste ssh udaljenu prijavu za sve uključujući i samog root korisnika, što svima omogućuje izravnu prijavu na sustav i dobivanje root pristupa. Unatoč činjenici da ssh poslužitelj omogućuje sigurniji način onemogućavanja ili omogućavanja root prijava, uvijek je dobra ideja onemogućiti root pristup, održavajući poslužitelje malo sigurnijim.

Toliko je ljudi koji pokušavaju brutalno natjerati root račune putem SSH napada jednostavno unoseći različita imena računa i lozinke, jednu za drugom. Ako ste administrator sustava, možete provjeriti zapise ssh poslužitelja, gdje ćete pronaći niz neuspjelih pokušaja prijave. Glavni razlog iza niza neuspjelih pokušaja prijave je dovoljno slaba lozinka i to ima smisla da hakeri/napadači pokušaju.

Ako imate jake lozinke, onda ste vjerojatno sigurni, međutim, bolje je onemogućiti root prijavu i imati uobičajeni zasebni račun za prijavu, a zatim koristiti sudo ili su za dobivanje root pristupa kad god je potrebno.

4. Prikažite SSH banner

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

Ovo nije u sigurnosnu svrhu, ali najveća je prednost ovog bannera to što se koristi za prikaz ssh poruka upozorenja za neovlaš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 s SSH keygenom uspostavit će odnos povjerenja između dva Linux poslužitelja što omogućuje prijenos datoteka i sinkronizacija puno lakša.

Ovo je vrlo korisno ako imate posla s daljinskim automatiziranim sigurnosnim kopijama, daljinskim izvršavanjem skripti, prijenosom datoteka, daljinskim upravljanjem skriptama itd. bez unosa lozinke svaki put.

Kako biste dodatno zaštitili svoj SSH poslužitelj, pročitajte naš članak o tome kako osigurati i ojačati OpenSSH poslužitelj