25 Savjeti za jačanje sigurnosti za Linux poslužitelje


Svi kažu da je Linux siguran prema zadanim postavkama i donekle se slažu (to su diskutabilne teme). Međutim, Linux prema zadanim postavkama ima ugrađeni sigurnosni model. Trebate ga podesiti i prilagoditi svojim potrebama, što može pomoći da sustav bude sigurniji. Linuxom je teže upravljati, ali nudi više fleksibilnosti i mogućnosti konfiguracije.

Osigurati sustav u proizvodnji od ruku hakera i krekera izazovan je zadatak za Administratora sustava. Ovo je naš prvi članak koji se odnosi na “Kako osigurati Linux Box” ili “Ojačavanje Linux Box-a“. U ovom ćemo postu objasniti 25 korisnih savjeta i trikova za zaštitu vašeg Linux sustava. Nadamo se da će vam savjeti i trikovi u nastavku pomoći da osigurate svoj sustav.

1. Sigurnost fizičkog sustava

Konfigurirajte BIOS da onemogućite pokretanje s CD/DVD-a, Vanjskih uređaja, Floppy Drive u BIOS-u<. Zatim omogućite BIOS lozinku i također zaštitite GRUB lozinkom da ograničite fizički pristup vašem sustavu.

  1. Postavite GRUB lozinku za zaštitu Linux poslužitelja

2. Particije diska

Važno je imati različite particije kako bi se postigla veća sigurnost podataka u slučaju da se dogodi bilo kakva katastrofa. Stvaranjem različitih particija podaci se mogu razdvojiti i grupirati. Kada se dogodi neočekivana nezgoda, samo će podaci te particije biti oštećeni, dok će podaci na ostalim particijama preživjeti. Provjerite morate li imati sljedeće odvojene particije i provjerite trebaju li aplikacije trećih strana biti instalirane na zasebnim datotečnim sustavima pod /opt.

/
/boot
/usr
/var
/home
/tmp
/opt

3. Minimizirajte pakete kako biste smanjili ranjivost

Želite li stvarno instalirati sve vrste usluga?. Preporuča se izbjegavati instaliranje beskorisnih paketa kako bi se izbjegle ranjivosti u paketima. To može smanjiti rizik da ugrožavanje jedne usluge može dovesti do ugrožavanja drugih usluga. Pronađite i uklonite ili onemogućite neželjene usluge s poslužitelja kako biste smanjili ranjivost. Upotrijebite naredbu ‘chkconfig’ da biste saznali usluge koje se izvode na razini 3.

/sbin/chkconfig --list |grep '3:on'

Nakon što otkrijete da su pokrenute neželjene usluge, onemogućite ih pomoću sljedeće naredbe.

chkconfig serviceName off

Koristite RPM upravitelj paketa kao što su alati “yum” ili “apt-get” za popis svih instaliranih paketa na sustavu i njihovo uklanjanje pomoću sljedeću naredbu.

yum -y remove package-name
sudo apt-get remove package-name
  1. 5 Primjeri naredbi chkconfig
  2. 20 praktičnih primjera RPM naredbi
  3. 20 Linux YUM naredbi za upravljanje Linux paketima
  4. 25 APT-GET i APT-CACHE naredbe za upravljanje upravljanjem paketima

4. Provjerite mrežne priključke za slušanje

Uz pomoć 'netstat' mrežne naredbe možete vidjeti sve otvorene portove i pridružene programe. Kao što sam rekao gore, koristite naredbu ‘chkconfig’ da onemogućite sve neželjene mrežne usluge iz sustava.

netstat -tulpn
  1. 20 Netstat naredbi za upravljanje mrežom u Linuxu

5. Koristite Secure Shell (SSH)

Protokoli Telnet i rlogin koriste običan tekst, a ne šifrirani format, što predstavlja kršenje sigurnosti. SSH je siguran protokol koji koristi tehnologiju šifriranja tijekom komunikacije s poslužiteljem.

Nikad se nemojte prijavljivati izravno kao root osim ako je potrebno. Koristite “sudo” za izvršavanje naredbi. sudo navedeni su u datoteci /etc/sudoers također se mogu uređivati pomoću pomoćnog programa “visudo” koji se otvara u uređivaču VI.

Također se preporučuje promijeniti zadani broj porta SSH 22 nekim drugim brojem porta više razine. Otvorite glavnu SSH konfiguracijsku datoteku i napravite neke sljedeće parametre kako biste korisnicima ograničili pristup.

vi /etc/ssh/sshd_config
Onemogući root prijavu
PermitRootLogin no
Dopusti samo određene korisnike
AllowUsers username
Koristite SSH protokol 2 verzije
Protocol 2
  1. 5 najboljih praksi za osiguranje i zaštitu SSH poslužitelja

6. Održavajte sustav ažuriranim

Uvijek održavajte sustav ažuriranim najnovijim izdanjima zakrpa, sigurnosnih popravaka i kernela kada je dostupan.

yum updates
yum check-update

7. Zaključajte Cronjobs

Cron ima vlastitu ugrađenu značajku, gdje dopušta određivanje tko smije, a tko ne želi pokretati poslove. To se kontrolira upotrebom datoteka pod nazivom /etc/cron.allow i /etc/cron.deny. Da biste zaključali korisnika koristeći cron, jednostavno dodajte korisnička imena u cron.deny i da biste omogućili korisniku da pokrene cron dodajte u datoteku cron.allow. Ako svim korisnicima želite onemogućiti korištenje crona, dodajte redak ‘ALL’ u datoteku cron.deny.

echo ALL >>/etc/cron.deny
  1. 11 primjera Cron rasporeda u Linuxu

8. Onemogućite otkrivanje USB sticka

Često se događa da želimo ograničiti korisnike da koriste USB stick u sustavima za zaštitu i sigurnost podataka od krađe. Napravite datoteku '/etc/modprobe.d/no-usb' i dodavanje retka ispod neće otkriti USB pohranu.

install usb-storage /bin/true

9. Uključite SELinux

Sigurnosno poboljšani Linux (SELinux) obvezni je sigurnosni mehanizam kontrole pristupa koji se nalazi u kernelu. Onemogućavanje SELinuxa znači uklanjanje sigurnosnog mehanizma iz sustava. Dvaput dobro razmislite prije uklanjanja, ako je vaš sustav spojen na internet i pristupa mu javnost, onda razmislite još malo o tome.

SELinux pruža tri osnovna načina rada i oni su.

  1. Provođenje: Ovo je zadani način rada koji omogućuje i provodi SELinux sigurnosnu politiku na računalu.
  2. Permisivno: U ovom načinu, SELinux neće provoditi sigurnosnu politiku na sustavu, samo upozoravati i bilježiti radnje. Ovaj način je vrlo koristan u smislu rješavanja problema povezanih s SELinuxom.
  3. Onemogućeno: SELinux je isključen.

Možete vidjeti trenutni status SELinux načina rada iz naredbenog retka pomoću 'system-config-selinux', 'getenforce' ili ' sestatus' naredbe.

sestatus

Ako je onemogućen, omogućite SELinux pomoću sljedeće naredbe.

setenforce enforcing

Također se može upravljati iz datoteke '/etc/selinux/config', gdje je možete omogućiti ili onemogućiti.

10. Uklonite KDE/GNOME stolna računala

Nema potrebe pokretati X Window desktope poput KDE ili GNOME na vašem namjenskom LAMP poslužitelju. Možete ih ukloniti ili onemogućiti kako biste povećali sigurnost poslužitelja i performanse. Za jednostavno onemogućavanje otvorite datoteku '/etc/inittab' i postavite razinu pokretanja na 3. Ako ga želite potpuno ukloniti iz sustava, upotrijebite naredbu u nastavku.

yum groupremove "X Window System"

11. Isključite IPv6

Ako ne koristite IPv6 protokol, trebali biste ga onemogućiti jer većina aplikacija ili pravila ne zahtijeva IPv6 protokol i trenutačno nije potreban na poslužitelju . Idite na konfiguracijsku datoteku mreže i dodajte sljedeće retke da biste je onemogućili.

vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

12. Ograničite korisnike da koriste stare lozinke

Ovo je vrlo korisno ako želite onemogućiti korisnicima da koriste iste stare lozinke. Datoteka stare lozinke nalazi se na /etc/security/opasswd. To se može postići korištenjem PAM modula.

Otvorite '/etc/pam.d/system-auth' datoteku pod RHEL/CentOS/Fedora.

vi /etc/pam.d/system-auth

Otvorite datoteku ‘/etc/pam.d/common-password’ pod Ubuntu/Debian/Linux Mint.

vi /etc/pam.d/common-password

Dodajte sljedeći redak u odjeljak ‘auth’.

auth        sufficient    pam_unix.so likeauth nullok

Dodajte sljedeći redak u odjeljak ‘lozinka’ kako biste onemogućili korisniku da ponovno koristi posljednjih 5 zaporki.

password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5

Poslužitelj pamti samo zadnjih 5 zaporki. Ako ste pokušali upotrijebiti bilo koju od zadnjih 5 starih lozinki, dobit ćete pogrešku poput.

Password has been already used. Choose another.

13. Kako provjeriti istek lozinke korisnika

U Linuxu su korisničke lozinke pohranjene u datoteci '/etc/shadow' u šifriranom formatu. Za provjeru isteka korisničke lozinke morate upotrijebiti naredbu ‘chage’. Prikazuje informacije o pojedinostima isteka lozinke zajedno s datumom posljednje promjene lozinke. Sustav koristi ove detalje kako bi odlučio kada korisnik mora promijeniti svoju lozinku.

Da biste vidjeli informacije o starenju postojećeg korisnika kao što su datum isteka i vrijeme, koristite sljedeću naredbu.

#chage -l username

Da biste promijenili starost lozinke bilo kojeg korisnika, koristite sljedeću naredbu.

#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
Parametri
  1. -M Postavite najveći broj dana
  2. -m Postavite minimalni broj dana
  3. -W Postavite broj dana upozorenja

14. Ručno zaključajte i otključajte račun

Značajke zaključavanja i otključavanja vrlo su korisne, umjesto uklanjanja računa iz sustava, možete ga zaključati na tjedan ili mjesec. Za zaključavanje određenog korisnika možete koristiti naredbu follow.

passwd -l accountName

Napomena: Zaključani korisnik još uvijek je dostupan samo za root korisnika. Zaključavanje se izvodi zamjenom šifrirane lozinke (!) nizom. Ako netko pokuša pristupiti sustavu koristeći ovaj račun, dobit će pogrešku sličnu donjoj.

su - accountName
This account is currently not available.

Za otključavanje ili omogućavanje pristupa zaključanom računu upotrijebite naredbu as. Ovo će ukloniti (!) niz sa šifriranom lozinkom.

passwd -u accountName

15. Provođenje jačih lozinki

Brojni korisnici koriste meke ili slabe lozinke i njihove lozinke mogu biti hakirane napadima temeljenima rječnikom ili brutalnom silom. Modul ‘pam_cracklib’ dostupan je u nizu modula PAM (Pluggable Authentication Modules) koji će prisiliti korisnika da postavi jake zaporke. Otvorite sljedeću datoteku pomoću uređivača.

Pročitajte također:

vi /etc/pam.d/system-auth

I dodajte redak koristeći kreditne parametre kao (lcredit, ucredit, dcredit i/ili ocredit malim slovima , velika slova, znamenke i ostalo)

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16. Omogućite Iptables (vatrozid)

Toplo se preporučuje da omogućite Linux firewall kako biste osigurali neovlašteni pristup vašim poslužiteljima. Primijenite pravila u iptables za filtriranje dolaznih, odlaznih i prosljeđujućih paketa. Možemo navesti izvornu i odredišnu adresu za dopuštanje i odbijanje u određenom udp/tcp broju porta.

  1. Osnovni vodič i savjeti za IPTables

17. Onemogućite Ctrl+Alt+Delete u Inittab

U većini distribucija Linuxa, pritiskom na 'CTRL-ALT-DELETE' vaš sustav će se ponovno pokrenuti. Dakle, nije dobra ideja imati ovu opciju omogućenu barem na proizvodnim poslužiteljima, ako netko to greškom učini.

Ovo je definirano u '/etc/inittab' datoteci, ako pažljivo pogledate tu datoteku vidjet ćete red sličan donjem. Prema zadanim postavkama redak nije komentiran. Moramo to komentirati. Ova posebna signalizacija slijeda ključeva će isključiti sustav.

Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18. Provjera praznih lozinki na računima

Svaki račun koji ima praznu lozinku znači da je otvoren za neovlašteni pristup bilo kome na webu i dio je sigurnosti unutar Linux poslužitelja. Dakle, morate osigurati da svi računi imaju jake lozinke i da nitko nema ovlašteni pristup. Računi s praznim lozinkama sigurnosni su rizici i lako ih je moguće hakirati. Kako biste provjerili ima li računa s praznom lozinkom, upotrijebite sljedeću naredbu.

cat /etc/shadow | awk -F: '($2==""){print $1}'

19. Prikažite SSH natpis prije prijave

Uvijek je bolja ideja imati legalni banner ili sigurnosne bannere sa nekim sigurnosnim upozorenjima prije SSH autentifikacije. Za postavljanje takvih bannera pročitajte sljedeći članak.

  1. Prikaži SSH poruku upozorenja korisnicima

20. Pratite aktivnosti korisnika

Ako imate posla s mnogo korisnika, važno je prikupiti informacije o aktivnostima i procesima svakog korisnika i analizirati ih kasnije ili u slučaju bilo kakvih problema s performansama, sigurnosti. Ali kako možemo pratiti i prikupljati informacije o aktivnostima korisnika.

Postoje dva korisna alata pod nazivom ‘psacct’ i ‘acct’ koji se koriste za praćenje korisničkih aktivnosti i procesa na sustavu. Ovi alati rade u pozadini sustava i kontinuirano prate svaku aktivnost korisnika na sustavu i resurse koje koriste usluge kao što su Apache, MySQL, SSH, FTP, itd. Za više informacija o instalaciji, konfiguraciji i korištenju, posjetite donji url.

  1. Pratite korisničku aktivnost pomoću psacct ili acct naredbi

21. Redovito pregledavajte zapise

Premjestite zapisnike u namjenski poslužitelj zapisnika, to može spriječiti uljeze da lako mijenjaju lokalne zapisnike. Ispod su Common Linux zadani nazivi datoteka dnevnika i njihova upotreba:

  1. /var/log/message – Gdje su dostupni dnevnici cijelog sustava ili dnevnici trenutne aktivnosti.
  2. /var/log/auth.log – Dnevnici provjere autentičnosti.
  3. /var/log/kern.log – Dnevnici kernela.
  4. /var/log/cron.log – Crond zapisi (cron posao).
  5. /var/log/maillog – Dnevnici poslužitelja pošte.
  6. /var/log/boot.log – Dnevnik pokretanja sustava.
  7. /var/log/mysqld.log – Log datoteka MySQL poslužitelja baze podataka.
  8. /var/log/secure – Dnevnik provjere autentičnosti.
  9. /var/log/utmp ili /var/log/wtmp : Datoteka zapisa prijave.
  10. /var/log/yum.log: Yum datoteke dnevnika.

22. Sigurnosna kopija važnih datoteka

U proizvodnom sustavu potrebno je napraviti sigurnosnu kopiju važnih datoteka i držati ih u sigurnosnom trezoru, na udaljenom mjestu ili izvan mjesta radi oporavka od katastrofe.

23. NIC spajanje

Postoje dvije vrste načina u povezivanju NIC, što treba spomenuti u sučelju povezivanja.

  1. mode=0 – Round Robin
  2. mode=1 – Aktivno i sigurnosno kopiranje

NIC Bonding pomaže nam da izbjegnemo jednu točku kvara. U NIC povezivanju, povezujemo dvije ili više Mrežnih Ethernet kartica zajedno i činimo jedno virtualno sučelje gdje možemo dodijeliti IP adresu za razgovor s drugim poslužitelji. Naša mreža bit će dostupna u slučaju da jedna NIC kartica ne radi ili nije dostupna iz bilo kojeg razloga.

Pročitajte također: Stvorite povezivanje NIC kanala u Linuxu

24. Zadržite /boot kao samo za čitanje

Linux kernel i njegove povezane datoteke nalaze se u direktoriju /boot koji je prema zadanim postavkama čitaj-piši. Promjena u samo za čitanje smanjuje rizik od neovlaštene izmjene kritičnih datoteka za pokretanje. Da biste to učinili, otvorite datoteku “/etc/fstab”.

vi /etc/fstab

Dodajte sljedeći redak na dno, spremite ga i zatvorite.

LABEL=/boot     /boot     ext2     defaults,ro     1 2

Imajte na umu da morate resetirati promjenu na čitanje i pisanje ako budete trebali nadograditi kernel u budućnosti.

25. Ignorirajte ICMP ili Broadcast Request

Dodajte sljedeći redak u datoteku “/etc/sysctl.conf” da biste zanemarili zahtjev za ping ili emitiranje.

Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1

Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1

Učitajte nove postavke ili promjene pokretanjem sljedeće naredbe

#sysctl -p

Ako ste na gornjem popisu propustili bilo koji važan savjet za sigurnost ili stvrdnjavanje ili imate bilo koji drugi savjet koji treba uključiti na popis. Molimo ostavite svoje komentare u naš okvir za komentare. TecMint je uvijek zainteresiran za primanje komentara, prijedloga kao i za raspravu o poboljšanju.