20 sigurnosnih savjeta za jačanje CentOS servera - 1. dio


Ovaj vodič pokriva samo opšte sigurnosne savjete za CentOS 8/7 koji se mogu koristiti za jačanje sistema. Savjeti za kontrolnu listu su namijenjeni za korištenje uglavnom na različitim vrstama golih servera ili na mašinama (fizičkim ili virtualnim) koje pružaju mrežne usluge.

Međutim, neki od savjeta mogu se uspješno primijeniti i na strojeve opće namjene, kao što su stoni računari, prijenosni računari i jednostruki računari veličine kartice (Raspberry Pi).

Zahtjevi

  • CentOS 8 Minimalna instalacija
  • Minimalna instalacija CentOS 7

1. Fizička zaštita

Zaključajte pristup vašim server sobama, koristite zaključavanje regala i video nadzor. Uzmite u obzir da svaki fizički pristup server sobama može izložiti vašu mašinu ozbiljnim sigurnosnim problemima.

BIOS lozinke se mogu promijeniti resetiranjem džampera na matičnoj ploči ili odspajanjem CMOS baterije. Također, uljez može ukrasti hard diskove ili direktno priključiti nove hard diskove na sučelje matične ploče (SATA, SCSI, itd.), pokrenuti se s Linux distribucijom uživo i klonirati ili kopirati podatke bez ostavljanja softverskih tragova.

2. Smanjite špijunski uticaj

U slučaju visoko osjetljivih podataka, vjerojatno biste trebali koristiti naprednu fizičku zaštitu kao što je postavljanje i zaključavanje servera u Faradayev kavez ili koristiti vojno TEMPEST rješenje kako biste smanjili utjecaj špijuniranja sistema putem radija ili električnih emanacija koje propuštaju.

3. Obezbedite BIOS/UEFI

Započnite proces očvršćavanja vašeg uređaja tako što ćete osigurati BIOS/UEFI postavke, posebno postavite BIOS/UEFI lozinku i onemogućite medije za pokretanje (CD, DVD, onemogućite USB podršku) u kako bi se spriječilo bilo koje neovlaštene korisnike da modificiraju postavke BIOS-a sistema ili da izmijene prioritet uređaja za pokretanje i da pokrenu mašinu sa alternativnog medija.

Da biste primijenili ovu vrstu promjene na svoju mašinu, potrebno je da konsultujete uputstvo proizvođača matične ploče za konkretna uputstva.

4. Sigurni pokretač

Postavite GRUB lozinku kako biste spriječili zlonamjerne korisnike da mijenjaju sekvencu pokretanja kernela ili pokreću nivoe, uređuju parametre kernela ili pokreću sistem u režimu za jednog korisnika kako bi naštetili vašem sistemu i resetirali root lozinku za dobijanje privilegovane kontrole.

5. Koristite zasebne particije diska

Kada instalirate CentOS na sisteme koji su namijenjeni kao proizvodni serveri, koristite namjenske particije ili namjenske čvrste diskove za sljedeće dijelove sistema:

/(root) 
/boot  
/home  
/tmp 
/var 

6. Koristite LVM i RAID za redundantnost i rast sistema datoteka

/var particija je mjesto gdje se poruke dnevnika zapisuju na disk. Ovaj dio sistema može eksponencijalno rasti na serverima s velikim prometom koji izlažu mrežne usluge kao što su web serveri ili serveri datoteka.

Stoga, koristite veliku particiju za /var ili razmislite o postavljanju ove particije pomoću logičkih volumena (LVM) ili kombinirajte nekoliko fizičkih diskova u jedan veći virtuelni RAID 0 uređaj kako biste održali velike količine podataka. Za podatke, razmotrite redundantnost korištenja LVM rasporeda na vrhu RAID 1 nivoa.

Za postavljanje LVM-a ili RAID-a na diskove, slijedite naše korisne vodiče:

  1. Postavite Disk Storage sa LVM-om u Linuxu
  2. Kreirajte LVM diskove koristeći vgcreate, lvcreate i lvextend
  3. Kombinirajte nekoliko diskova u jednu veliku virtualnu pohranu
  4. Kreirajte RAID 1 koristeći dva diska u Linuxu

7. Izmijenite fstab opcije za sigurne particije podataka

Odvojite particije namijenjene za pohranjivanje podataka i spriječite izvršavanje programa, datoteka uređaja ili setuid bita na ovim tipovima particija dodavanjem sljedećih opcija u fstab datoteku kao što je ilustrovano u nastavku izvod:

/dev/sda5 	 /nas          ext4    defaults,nosuid,nodev,noexec 1 2

Da biste spriječili eskalaciju privilegija i proizvoljno izvršavanje skripte, napravite zasebnu particiju za /tmp i montirajte je kao nosuid, nodev i noexec .

/dev/sda6  	/tmp         ext4    defaults,nosuid,nodev,noexec 0 0

8. Šifrirajte čvrste diskove na nivou bloka pomoću LUKS-a

U cilju zaštite osjetljivih podataka od njuškanja u slučaju fizičkog pristupa tvrdim diskovima mašine. Predlažem vam da naučite kako šifrirati disk čitajući naš članak Linux šifriranje podataka tvrdog diska s LUKS-om.

9. Koristite PGP i kriptografiju javnog ključa

Da biste šifrirali diskove, koristite PGP i kriptografiju javnog ključa ili OpenSSL naredbu za šifriranje i dešifriranje osjetljivih datoteka lozinkom kao što je prikazano u ovom članku Konfiguracija šifriranog Linux sistema za pohranu.

10. Instalirajte samo minimalnu potrebnu količinu paketa

Izbjegavajte instaliranje nevažnih ili nepotrebnih programa, aplikacija ili usluga kako biste izbjegli ranjivosti paketa. Ovo može smanjiti rizik da kompromitacija dijela softvera može dovesti do kompromitiranja drugih aplikacija, dijelova sistema ili čak sistema datoteka, što na kraju rezultira oštećenjem podataka ili gubitkom podataka.

11. Često ažurirajte sistem

Redovno ažurirajte sistem. Sinhronizirajte Linux kernel s najnovijim sigurnosnim zakrpama i svim instaliranim softverom ažurnim s najnovijim verzijama izdavanjem naredbe u nastavku:

yum update

12. Onemogućite Ctrl+Alt+Del

Kako biste spriječili korisnike da ponovo pokreću server nakon što imaju fizički pristup tastaturi ili putem aplikacije za udaljenu konzolu ili virtuelizirane konzole (KVM, virtualizirajući softverski interfejs) trebali biste onemogućiti Ctrl+Alt +Del sekvenca ključeva izvršavanjem naredbe ispod.

systemctl mask ctrl-alt-del.target 

13. Uklonite nepotrebne softverske pakete

Instalirajte minimalan softver potreban za vašu mašinu. Nikada nemojte instalirati dodatne programe ili usluge. Instalirajte pakete samo iz pouzdanih ili zvaničnih spremišta. Koristite minimalnu instalaciju sistema u slučaju da je mašina predodređena da radi cijeli svoj vijek kao server.

Provjerite instalirane pakete pomoću jedne od sljedećih naredbi:

rpm -qa

Napravite lokalnu listu svih instaliranih paketa.

yum list installed >> installed.txt

Pregledajte listu za beskorisni softver i izbrišite paket izdavanjem donje naredbe:

yum remove package_name

14. Ponovo pokrenite Systemd Services nakon ažuriranja Daemon-a

Koristite primjer naredbe u nastavku da ponovo pokrenete sistemsku uslugu kako biste primijenili nova ažuriranja.

systemctl restart httpd.service

15. Uklonite nepotrebne usluge

Identifikujte usluge koje slušaju na određenim portovima koristeći sljedeću ss naredbu.

ss -tulpn

Za popis svih instaliranih usluga sa njihovim izlaznim statusom izdajte donju naredbu:

systemctl list-units -t service

Na primjer, zadana minimalna instalacija CentOS dolazi sa standardno instaliranim Postfix demonom koji se pokreće prema imenu mastera na portu 25. Uklonite Postfix mrežnu uslugu u slučaju da se vaša mašina neće koristiti kao server za poštu.

yum remove postfix

16. Šifriranje prenesenih podataka

Nemojte koristiti nezaštićene protokole za daljinski pristup ili prijenos datoteka kao što su Telnet, FTP ili druge protokole visokog sadržaja običnog teksta kao što su SMTP, HTTP, NFS ili SMB koji do default, ne šifrira sesije provjere autentičnosti ili poslane podatke.

Koristite samo sftp, scp za prijenos datoteka i SSH ili VNC preko SSH tunela za veze udaljene konzole ili GUI pristup.

Da biste tunelirali VNC konzolu preko SSH-a, koristite donji primjer koji prosljeđuje VNC port 5901 sa udaljene mašine na vašu lokalnu mašinu:

ssh -L 5902:localhost:5901 remote_machine

Na lokalnoj mašini pokrenite naredbu ispod da biste uspostavili virtuelnu vezu sa udaljenom krajnjom točkom.

vncviewer localhost:5902

17. Skeniranje mrežnih portova

Izvršite eksterne provjere portova koristeći Nmap alat sa udaljenog sistema preko LAN-a. Ova vrsta skeniranja može se koristiti za provjeru ranjivosti mreže ili testiranje pravila zaštitnog zida.

nmap -sT -O 192.168.1.10

18. Zaštitni zid za filtriranje paketa

Koristite firewalld uslužni program da zaštitite sistemske portove, otvorite ili zatvorite određene portove usluga, posebno dobro poznate portove (<1024).

Instalirajte, pokrenite, omogućite i navedite pravila zaštitnog zida izdavanjem sljedećih naredbi:

yum install firewalld
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --list-all

19. Pregledajte pakete protokola pomoću Tcpdump

Koristite uslužni program tcpdump kako biste lokalno pronjušili mrežne pakete i provjerili njihov sadržaj na sumnjivi promet (izvorno-odredišni portovi, TCP/IP protokoli, promet sloja dva, neobični ARP zahtjevi).

Za bolju analizu snimljene datoteke tcpdump koristite napredniji program kao što je Wreshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Spriječite DNS napade

Pregledajte sadržaj vašeg resolvera, obično /etc/resolv.conf datoteke, koja definira IP adresu DNS servera koje bi trebao koristiti za upit za imena domena, kako bi se izbjegao čovjek u -srednji napadi, nepotreban saobraćaj za root DNS servere, lažiranje ili kreiranje DOS napada.

Ovo je samo prvi dio. U sljedećem dijelu ćemo razgovarati o drugim sigurnosnim savjetima za CentOS 8/7.