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:
- Postavite Disk Storage s LVM-om u Linuxu
- Stvorite LVM diskove koristeći vgcreate, lvcreate i lvextend
- Kombinirajte nekoliko diskova u jednu veliku virtualnu pohranu
- 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.