25 Savjeti za jačanje sigurnosti za Linux servere


Svi kažu da je Linux siguran prema zadanim postavkama i da se slažu u određenoj mjeri (to su diskutabilne teme). Međutim, Linux podrazumevano ima ugrađeni sigurnosni model. Morate ga podesiti i prilagoditi prema vašim potrebama što može pomoći da se sistem učini sigurnijim. Linuxom je teže upravljati, ali nudi više fleksibilnosti i mogućnosti konfiguracije.

Osiguravanje sistema u proizvodnji od ruku hakera i krekera je izazovan zadatak za Sistemskog administratora. Ovo je naš prvi članak koji se odnosi na “Kako osigurati Linux kutiju” ili “Učvršćivanje Linux kutije”. U ovom postu ćemo objasniti 25 korisnih savjeta i trikova za osiguranje vašeg Linux sistema. Nadamo se da će vam savjeti i trikovi u nastavku pomoći da osigurate svoj sistem.

1. Sigurnost fizičkog sistema

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

  1. Postavite GRUB lozinku za zaštitu Linux servera

2. Particije diska

Važno je imati različite particije kako bi se postigla veća sigurnost podataka u slučaju da se dogodi neka katastrofa. Kreiranjem različitih particija, podaci se mogu razdvojiti i grupirati. Kada dođe do neočekivane nezgode, samo podaci te particije će biti oštećeni, dok su podaci na ostalim particijama preživjeli. Uvjerite se da morate imati sljedeće odvojene particije i da aplikacije trećih strana trebaju biti instalirane na odvojenim sistemima datoteka pod /opt.

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

3. Minimizirajte pakete da biste smanjili ranjivost

Da li zaista želite da instalirate sve vrste usluga?. Preporučuje se izbjegavanje instaliranja beskorisnih paketa kako biste izbjegli ranjivosti u paketima. Ovo može smanjiti rizik da kompromitacija jedne usluge može dovesti do ugrožavanja drugih usluga. Pronađite i uklonite ili onemogućite neželjene usluge sa servera kako biste minimizirali ranjivost. Koristite naredbu 'chkconfig' da saznate usluge koje se pokreću na nivou 3.

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

Nakon što saznate da je pokrenut bilo koji neželjeni servis, onemogućite ga pomoću sljedeće naredbe.

chkconfig serviceName off

Koristite RPM upravitelj paketa kao što su alati “yum” ili “apt-get” da izlistate sve instalirane pakete na sistemu i uklonite ih pomoću sljedeću naredbu.

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

4. Provjerite Listening Network Ports

Uz pomoć mrežne naredbe „netstat“ možete vidjeti sve otvorene portove i povezane programe. Kao što sam gore rekao, koristite naredbu „chkconfig“ da onemogućite sve neželjene mrežne usluge iz sistema.

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 tokom komunikacije sa serverom.

Nikada se ne prijavljujete direktno kao root osim ako je potrebno. Koristite “sudo” da izvršite komande. sudo su specificirani u datoteci /etc/sudoers također se mogu uređivati pomoću uslužnog programa “visudo” koji se otvara u uređivaču VI.

Također se preporučuje da promijenite zadani SSH 22 broj porta s nekim drugim brojem porta višeg nivoa. Otvorite glavnu SSH konfiguracijsku datoteku i napravite neke sljedeće parametre da ograničite pristup korisnicima.

vi /etc/ssh/sshd_config
Onemogućite root prijavu
PermitRootLogin no
Dozvolite samo određene korisnike
AllowUsers username
Koristite SSH protokol 2 verziju
Protocol 2
  1. 5 najboljih praksi za osiguranje i zaštitu SSH servera

6. Održavajte sistem ažuriranim

Uvijek održavajte sistem ažuriranim najnovijim izdanjima zakrpama, sigurnosnim ispravkama i kernelom kada je dostupan.

yum updates
yum check-update

7. Lockdown Cronjobs

Cron ima vlastitu ugrađenu funkciju, gdje omogućava da odredite ko smije, a ko ne želi pokretati poslove. Ovo se kontrolira korištenjem datoteka pod nazivom /etc/cron.allow i /etc/cron.deny. Da zaključate korisnika koristeći cron, jednostavno dodajte korisnička imena u cron.deny i da omogućite korisniku da pokrene cron add u datoteci cron.allow. Ako želite da onemogućite svim korisnicima da koriste cron, dodajte red „ALL“ u datoteku cron.deny.

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

8. Onemogućite USB stick za otkrivanje

Mnogo puta se dešava da želimo ograničiti korisnike da koriste USB stick u sistemima kako bismo zaštitili i osigurali podatke od krađe. Kreirajte fajl '/etc/modprobe.d/no-usb' i dodavanjem ispod reda neće otkriti USB pohranu.

install usb-storage /bin/true

9. Uključite SELinux

Linuks s poboljšanom sigurnošću (SELinux) je obavezni sigurnosni mehanizam kontrole pristupa koji se nalazi u kernelu. Onemogućavanje SELinuxa znači uklanjanje sigurnosnog mehanizma iz sistema. Dobro razmislite prije uklanjanja, ako je vaš sistem povezan s internetom i javno mu pristupa, onda razmislite još malo o tome.

SELinux pruža tri osnovna načina rada i to jesu.

  1. Primjena: Ovo je zadani način rada koji omogućava i provodi SELinux sigurnosnu politiku na mašini.
  2. Dozvoljeno: U ovom načinu rada, SELinux neće provoditi sigurnosnu politiku na sistemu, već samo upozoravati i zapisivati radnje. Ovaj način rada je vrlo koristan u smislu rješavanja problema vezanih za SELinux.
  3. Onemogućeno: SELinux je isključen.

Možete vidjeti trenutni status SELinux načina rada iz komandne linije koristeći 'system-config-selinux', 'getenforce' ili ' sestatus' komande.

sestatus

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

setenforce enforcing

Njime se također može upravljati iz datoteke „/etc/selinux/config“, gdje je možete omogućiti ili onemogućiti.

10. Uklonite KDE/GNOME radne površine

Nema potrebe za pokretanjem X Window desktopa poput KDE ili GNOME na vašem namjenskom LAMP serveru. Možete ih ukloniti ili onemogućiti kako biste povećali sigurnost servera i performanse. Da jednostavno onemogućite, otvorite datoteku „/etc/inittab“ i postavite nivo pokretanja na 3. Ako ga želite potpuno ukloniti iz sistema, koristite naredbu ispod.

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 zahtijevaju IPv6 protokol i trenutno nije potreban na serveru . Idite na datoteku mrežne konfiguracije i dodajte sljedeće linije da je onemogućite.

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

12. Ograničite korisnike da koriste stare lozinke

Ovo je veoma korisno ako želite da zabranite korisnicima da koriste iste stare lozinke. Stara datoteka lozinke se nalazi na /etc/security/opasswd. Ovo se može postići korištenjem PAM modula.

Otvorite datoteku „/etc/pam.d/system-auth“ 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 red u odjeljak „auth“.

auth        sufficient    pam_unix.so likeauth nullok

Dodajte sljedeći red u odjeljak „lozinka“ kako biste onemogućili korisniku da ponovo koristi svoju posljednju 5 lozinku.

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

Server pamti samo zadnjih 5 lozinki. Ako ste pokušali koristiti bilo koju od posljednjih 5 starih lozinki, dobit ćete grešku poput.

Password has been already used. Choose another.

13. Kako provjeriti istek lozinke korisnika

U Linuxu se korisničke lozinke pohranjuju u „/etc/shadow“ datoteci u šifriranom formatu. Za provjeru isteka korisničke lozinke potrebno je koristiti naredbu „promijeni“. Prikazuje informacije o detaljima isteka lozinke zajedno s datumom posljednje promjene lozinke. Ove detalje sistem koristi da odluči kada korisnik mora promijeniti svoju lozinku.

Za pregled informacija o starenju postojećeg korisnika, kao što su datum isteka i vrijeme, koristite sljedeću naredbu.

#chage -l username

Za promjenu starenja lozinke bilo kojeg korisnika, koristite sljedeću naredbu.

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

14. Ručno zaključavanje i otključavanje naloga

Funkcije zaključavanja i otključavanja su vrlo korisne, umjesto uklanjanja naloga sa sistema, možete ga zaključati na sedmicu ili mjesec. Da biste zaključali određenog korisnika, možete koristiti naredbu follow.

passwd -l accountName

Napomena : Zaključani korisnik je i dalje dostupan samo za root korisnika. Zaključavanje se vrši zamjenom šifrirane lozinke (!) nizom. Ako neko pokuša da pristupi sistemu koristeći ovaj nalog, dobiće grešku sličnu dole.

su - accountName
This account is currently not available.

Da biste otključali ili omogućili pristup zaključanom nalogu, koristite naredbu kao. Ovo će ukloniti (!) niz sa šifrovanom lozinkom.

passwd -u accountName

15. Primjena jačih lozinki

Određeni broj korisnika koristi meke ili slabe lozinke i njihova lozinka može biti hakovana baziranim na rječniku ili napadima brute-force. Modul 'pam_cracklib' je dostupan u PAM (Pluggable Authentication Modules) stogu modula koji će primorati korisnika da postavi jake lozinke. Otvorite sljedeću datoteku pomoću uređivača.

Pročitajte također:

vi /etc/pam.d/system-auth

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

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

16. Omogućite Iptables (Firewall)

Toplo se preporučuje da omogućite Linux firewall kako biste osigurali neovlašteni pristup vašim serverima. Primijenite pravila u iptables na filtere dolaznih, odlaznih i prosljeđivanja paketa. Možemo navesti izvornu i odredišnu adresu da dozvolimo i odbijemo 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 Linux distribucija, pritiskom na 'CTRL-ALT-DELETE' vaš sistem će pokrenuti proces ponovnog pokretanja. Dakle, nije dobra ideja da ova opcija bude omogućena barem na produkcijskim serverima, ako to neko greškom uradi.

Ovo je definirano u datoteci '/etc/inittab', ako pažljivo pogledate tu datoteku, vidjet ćete liniju sličnu dolje. Po defaultu linija nije komentirana. Moramo to prokomentarisati. Ova posebna signalizacija sekvence ključeva će isključiti sistem.

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

18. Provjera naloga za prazne lozinke

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 servera. Dakle, morate osigurati da svi računi imaju jake lozinke i da niko nema ovlašteni pristup. Prazni nalozi sa lozinkom predstavljaju bezbednosne rizike i mogu se lako hakovati. Da biste provjerili da li je bilo računa sa praznom lozinkom, koristite sljedeću naredbu.

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

19. Prikaži SSH baner prije prijave

Uvijek je bolja ideja imati legalni baner ili sigurnosne banere s nekim sigurnosnim upozorenjima prije SSH autentifikacije. Za postavljanje takvih banera pročitajte sljedeći članak.

  1. Prikaži SSH poruku upozorenja korisnicima

20. Nadgledanje aktivnosti korisnika

Ako imate posla s puno korisnika, onda je važno prikupiti informacije o aktivnostima svakog korisnika i procesima koje oni koriste i analizirati ih kasnije ili u slučaju bilo kakvog učinka, sigurnosnih problema. 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 aktivnosti korisnika i procesa na sistemu. Ovi alati rade u pozadini sistema i kontinuirano prate svaku aktivnost korisnika na sistemu i resurse koje troše usluge kao što su Apache, MySQL, SSH, FTP, itd. Za više informacija o instalaciji, konfiguraciji i korištenju, posjetite URL u nastavku.

  1. Pratite aktivnost korisnika pomoću psacct ili acct naredbi

21. Redovno pregledajte dnevnike

Premjestite dnevnike na namjenski server dnevnika, ovo može spriječiti uljeze da lako modificiraju lokalne dnevnike. Ispod su uobičajeni nazivi zadanih datoteka dnevnika za Linux i njihova upotreba:

  1. /var/log/message – Gdje su dostupni dnevnici cijelog sistema ili evidencije trenutnih aktivnosti.
  2. /var/log/auth.log – Dnevnici autentifikacije.
  3. /var/log/kern.log – Dnevnici kernela.
  4. /var/log/cron.log – Crond dnevnici (cron posao).
  5. /var/log/maillog – Dnevnici mail servera.
  6. /var/log/boot.log – Dnevnik pokretanja sistema.
  7. /var/log/mysqld.log – datoteka evidencije servera baze podataka MySQL.
  8. /var/log/secure – Dnevnik provjere autentičnosti.
  9. /var/log/utmp ili /var/log/wtmp : Datoteka za prijavu.
  10. /var/log/yum.log: Yum log fajlovi.

22. Važna rezervna kopija datoteke

U proizvodnom sistemu potrebno je napraviti sigurnosnu kopiju važnih datoteka i čuvati ih u sigurnosnom trezoru, udaljenoj lokaciji ili van lokacije za oporavak od katastrofe.

23. NIC povezivanje

Postoje dvije vrste načina u NIC povezivanju, koje treba spomenuti u interfejsu povezivanja.

  1. mode=0 – Round Robin
  2. mode=1 – Aktivan i sigurnosna kopija

NIC povezivanje nam pomaže da izbjegnemo jednu tačku kvara. U NIC povezivanju, povezujemo dvije ili više mrežnih Ethernet kartica zajedno i pravimo jedno virtuelno sučelje gdje možemo dodijeliti IP adresu za razgovor s drugim serveri. Naša mreža će biti dostupna u slučaju da jedna NIC kartica ne radi ili bude nedostupna iz bilo kojeg razloga.

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

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

Linux kernel i njegove povezane datoteke nalaze se u /boot direktoriju koji je po defaultu kao čitanje-pisanje. 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 red na dno, sačuvajte ga i zatvorite.

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

Imajte na umu da morate resetirati promjenu na čitanje-pisanje ako u budućnosti trebate nadograditi kernel.

25. Ignorirajte ICMP ili Broadcast zahtjev

Dodajte sljedeći red u datoteku “/etc/sysctl.conf” da zanemarite ping ili broadcast zahtjev.

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 propustili bilo koji važan savjet za sigurnost ili učvršćivanje na gornjoj listi, ili imate bilo koji drugi savjet koji treba biti uključen u listu. Molimo ostavite svoje komentare u našem polju za komentare. TecMint je uvijek zainteresiran za primanje komentara, sugestija kao i diskusije za poboljšanje.