20 sigurnosnih savjeta za jačanje CentOS poslužitelja - 1. dio


Ovaj vodič pokriva samo opće sigurnosne savjete za CentOS 8/7 koji se mogu koristiti za jačanje sustava. Savjeti popisa za provjeru namijenjeni su uglavnom za korištenje na različitim vrstama golih poslužitelja ili na strojevima (fizičkim ili virtualnim) koji pružaju mrežne usluge.

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

Zahtjevi

  • Minimalna instalacija CentOS 8
  • Minimalna instalacija CentOS 7

1. Fizička zaštita

Zaključajte pristup sobama poslužitelja, koristite zaključavanje regala i video nadzor. Uzmite u obzir da svaki fizički pristup poslužiteljskim sobama može izložiti vaše računalo ozbiljnim sigurnosnim problemima.

BIOS lozinke se mogu promijeniti poništavanjem kratkospojnika na matičnoj ploči ili isključivanjem CMOS baterije. Također, uljez može ukrasti tvrde diskove ili izravno priključiti nove tvrde diskove na sučelja matične ploče (SATA, SCSI, itd.), pokrenuti sustav Linux live distro i klonirati ili kopirati podatke bez ostavljanja softverskog traga.

2. Smanjite utjecaj špijuniranja

U slučaju vrlo osjetljivih podataka, vjerojatno biste trebali koristiti naprednu fizičku zaštitu kao što je postavljanje i zaključavanje poslužitelja u Faradayev kavez ili koristiti vojno TEMPEST rješenje kako biste umanjili utjecaj špijuniranja sustava putem radija ili curenja električne energije.

3. Osigurajte BIOS/UEFI

Započnite proces ojačavanja vašeg stroja osiguravanjem BIOS/UEFI postavki, posebno postavljanjem BIOS/UEFI lozinke i onemogućavanjem medijskih uređaja za pokretanje (CD, DVD, onemogućite USB podršku) u kako biste spriječili bilo koje neovlaštene korisnike da mijenjaju postavke BIOS-a sustava ili mijenjaju prioritet uređaja za pokretanje i dižu stroj s alternativnog medija.

Kako biste primijenili ovu vrstu promjene na svom stroju, trebate konzultirati priručnik proizvođača matične ploče za specifične upute.

4. Sigurno pokretanje sustava

Postavite GRUB lozinku kako biste spriječili zlonamjerne korisnike da diraju u redoslijed pokretanja kernela ili razine pokretanja, uređuju parametre kernela ili pokreću sustav u jednokorisničkom načinu rada kako bi oštetili vaš sustav i resetirali root lozinka za dobivanje privilegirane kontrole.

5. Koristite zasebne particije diska

Kada instalirate CentOS na sustave namijenjene kao produkcijski poslužitelji, koristite namjenske particije ili namjenske tvrde diskove za sljedeće dijelove sustava:

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

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

Particija /var je mjesto gdje se poruke dnevnika zapisuju na disk. Ovaj dio sustava može eksponencijalno rasti na poslužiteljima s velikim prometom koji izlažu mrežne usluge kao što su web poslužitelji ili poslužitelji datoteka.

Stoga koristite veliku particiju za /var ili razmislite o postavljanju ove particije pomoću logičkih jedinica (LVM) ili kombinirajte nekoliko fizičkih diskova u jedan veći virtualni RAID 0 uređaj kako biste održali velike količine podataka. Za podatke, redundantnost razmislite o korištenju LVM izgleda povrh RAID 1 razine.

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

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

7. Izmijenite fstab opcije za sigurne podatkovne particije

Odvojite particije namijenjene pohranjivanju podataka i spriječite izvršavanje programa, datoteka uređaja ili setuid bita na ovoj vrsti particija dodavanjem sljedećih opcija u fstab datoteku kao što je ilustrirano na donjoj slici izvod:

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

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

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

8. Šifrirajte tvrde diskove na razini bloka s LUKS-om

Kako bi se zaštitilo njuškanje osjetljivih podataka u slučaju fizičkog pristupa tvrdim diskovima stroja. Predlažem da naučite kako šifrirati disk čitajući naš članak Šifriranje podataka tvrdog diska u Linuxu s LUKS-om.

9. Koristite PGP i kriptografiju s javnim ključem

Za šifriranje diskova koristite PGP i kriptografiju s javnim ključem ili naredbu OpenSSL za šifriranje i dešifriranje osjetljivih datoteka lozinkom kao što je prikazano u ovom članku Konfigurirajte šifrirano pohranjivanje sustava Linux.

10. Instalirajte samo minimalnu potrebnu količinu paketa

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

11. Često ažurirajte sustav

Redovito ažurirajte sustav. Usklađujte jezgru Linuxa s najnovijim sigurnosnim zakrpama i ažurirajte sav instalirani softver s najnovijim verzijama izdavanjem naredbe u nastavku:

yum update

12. Onemogućite Ctrl+Alt+Del

Kako biste spriječili korisnike da ponovno pokrenu poslužitelj nakon što imaju fizički pristup tipkovnici ili putem aplikacije udaljene konzole ili virtualizirane konzole (KVM, softversko sučelje za virtualizaciju), trebali biste onemogućiti Ctrl+Alt +Del niz tipki izvršavanjem donje naredbe.

systemctl mask ctrl-alt-del.target 

13. Uklonite nepotrebne softverske pakete

Instalirajte minimalni softver potreban za vaš stroj. Nikada nemojte instalirati dodatne programe ili usluge. Instalirajte pakete samo iz provjerenih ili službenih repozitorija. Koristite minimalnu instalaciju sustava u slučaju da je stroju predodređeno da cijeli život radi kao poslužitelj.

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

rpm -qa

Napravite lokalni popis svih instaliranih paketa.

yum list installed >> installed.txt

Pogledajte popis beskorisnog softvera i izbrišite paket izdavanjem naredbe u nastavku:

yum remove package_name

14. Ponovno pokrenite Systemd usluge nakon ažuriranja demona

Upotrijebite donji primjer naredbe za ponovno pokretanje usluge systemd kako biste primijenili nova ažuriranja.

systemctl restart httpd.service

15. Uklonite nepotrebne usluge

Identificirajte usluge koje slušaju na određenim portovima pomoću sljedeće ss naredbe.

ss -tulpn

Za popis svih instaliranih usluga s njihovim izlaznim statusom izdajte naredbu u nastavku:

systemctl list-units -t service

Na primjer, zadana minimalna instalacija CentOS dolazi s Postfix demonom instaliranim prema zadanim postavkama koji se pokreće pod imenom mastera pod portom 25. Uklonite mrežnu uslugu Postfix u slučaju da se vaš stroj neće koristiti kao poslužitelj e-pošte.

yum remove postfix

16. Šifrirajte prenesene podatke

Ne koristite nezaštićene protokole za daljinski pristup ili prijenos datoteka kao što su Telnet, FTP ili druge protokole s visokim sadržajem običnog teksta kao što su SMTP, HTTP, NFS ili SMB koji zadano, 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 s udaljenom konzolom ili GUI pristup.

Kako biste tunelirali VNC konzolu putem SSH-a, koristite donji primjer koji prosljeđuje VNC port 5901 s udaljenog stroja na vaš lokalni stroj:

ssh -L 5902:localhost:5901 remote_machine

Na lokalnom računalu pokrenite donju naredbu za virtualnu vezu s udaljenom krajnjom točkom.

vncviewer localhost:5902

17. Skeniranje mrežnih priključaka

Provedite vanjske provjere priključaka pomoću Nmap alata s udaljenog sustava preko LAN-a. Ova vrsta skeniranja može se koristiti za provjeru mrežnih ranjivosti ili testiranje pravila vatrozida.

nmap -sT -O 192.168.1.10

18. Vatrozid za filtriranje paketa

Upotrijebite uslužni program firewalld za zaštitu portova sustava, otvaranje ili zatvaranje portova određenih usluga, posebno dobro poznatih portova (<1024).

Instalirajte, pokrenite, omogućite i navedite pravila vatrozida izdavanjem sljedećih naredbi:

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

19. Provjerite pakete protokola s Tcpdumpom

Koristite uslužni program tcpdump kako biste lokalno njuškali mrežne pakete i pregledali njihov sadržaj za sumnjiv promet (izvorno-odredišni portovi, TCP/IP protokoli, promet drugog sloja, neuobičajeni ARP zahtjevi).

Za bolju analizu tcpdump snimljene datoteke upotrijebite napredniji program kao što je Wireshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Spriječite DNS napade

Pregledajte sadržaj vašeg razrješitelja, obično /etc/resolv.conf datoteke, koja definira IP adresu DNS poslužitelja koje bi trebao koristiti za upite za nazive domena, kako bi se izbjeglo uplitanje -srednji napadi, nepotreban promet za root DNS poslužitelje, podvala ili stvaranje DOS napada.

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