20 Varnostni nasveti za utrjevanje strežnika CentOS - 1. del


Ta vadnica zajema le splošne varnostne nasvete za CentOS 8/7, ki jih je mogoče uporabiti za utrjevanje sistema. Namigi za kontrolni seznam naj bi bili večinoma uporabljeni na različnih vrstah golokovinskih strežnikov ali na strojih (fizičnih ali navideznih), ki zagotavljajo omrežne storitve.

Nekatere nasvete pa je mogoče uspešno uporabiti tudi za splošne stroje, kot so namizni računalniki, prenosniki in enokrmilni računalniki v velikosti kartice (Raspberry Pi).

  • Minimalna namestitev CentOS 8
  • Minimalna namestitev CentOS 7

1. Fizična zaščita

Zaklenite dostop do svojih strežniških sob, uporabite zaklepanje stojal in video nadzor. Upoštevajte, da lahko fizični dostop do strežniških prostorov izpostavi vašo napravo resnim varnostnim težavam.

Gesla za BIOS lahko spremenite s ponastavitvijo mostičkov na matični plošči ali z odklopom baterije CMOS. Prav tako lahko vsiljivec ukrade trde diske ali neposredno pritrdi nove trde diske na vmesnike matične plošče (SATA, SCSI itd.), Zažene se z Linux distro distro in klonira ali kopira podatke, ne da bi pustil kakršno koli programsko sled.

2. Zmanjšajte vohunski vpliv

V primeru zelo občutljivih podatkov bi morali verjetno uporabiti napredno fizično zaščito, kot je namestitev in zaklepanje strežnika v rešitev TEMPEST, da bi čim bolj zmanjšali vpliv vohunjenja sistema prek radijskih ali električnih uhajanj.

3. Zavarujte BIOS/UEFI

Začnite postopek utrjevanja naprave z zaščito nastavitev BIOS/UEFI, še posebej nastavite geslo BIOS/UEFI in onemogočite zagonske medijske naprave (CD, DVD, onemogočite podporo USB), da nepooblaščenim uporabnikom preprečite spreminjanje nastavitev sistemskega BIOS-a ali spreminjanje prednost zagonske naprave in zagon naprave z drugega medija.

Če želite to vrsto spremembe uporabiti na svoji napravi, se za podrobna navodila posvetujte z navodili proizvajalca matične plošče.

4. Zavarujte zagonski nalagalnik

Nastavite geslo GRUB, da preprečite zlonamernim uporabnikom, da posegajo v zagonsko zaporedje jedra ali izvajajo ravni, urejajo parametre jedra ali zaženejo sistem v način za enega uporabnika, da škodujejo vašemu sistemu in ponastavijo korensko geslo, da pridobijo privilegiran nadzor.

5. Uporabite ločene particije diska

Pri namestitvi CentOS v sisteme, namenjene produkcijskim strežnikom, uporabite namenske particije ali namenske trde diske za naslednje dele sistema:

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

6. Uporabite LVM in RAID za odvečnost in rast datotečnega sistema

Razdelek/var je kraj, kjer se dnevniška sporočila zapisujejo na disk. Ta del sistema lahko eksponentno naraste na močno prometnih strežnikih, ki izpostavljajo omrežne storitve, kot so spletni strežniki ali datotečni strežniki.

Torej uporabite veliko particijo za/var ali razmislite o nastavitvi te particije z uporabo logičnih nosilcev (LVM) ali združite več fizičnih diskov v eno večjo navidezno napravo RAID 0 za vzdrževanje velikih količin podatkov. Pri podatkih razmislite o odvečnosti pri uporabi postavitve LVM na vrhu RAID 1.

Za nastavitev LVM ali RAID na diskih sledite našim uporabnim vodnikom:

  1. Nastavitev pomnilnika diska z LVM v Linuxu
  2. Ustvarite diskete LVM z uporabo vgcreate, lvcreate in lvextend
  3. Združite več diskov v en velik navidezni pomnilnik
  4. Ustvari RAID 1 z dvema diskoma v Linuxu

7. Prilagodite možnosti fstab tako, da varuje podatkovne particije

Ločite particije, namenjene shranjevanju podatkov in preprečite izvajanje programov, datotek naprave ali nastavitvenega bitov na teh vrstah particij, tako da v datoteko fstab dodate naslednje možnosti, kot je prikazano na spodnjem izvlečku:

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

Če želite preprečiti stopnjevanje privilegij in samovoljno izvajanje skripta, ustvarite ločeno particijo za/tmp in jo pritrdite kot nosuid, nodev in noexec.

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

8. Šifrirajte trde diske na ravni bloka z LUKS

Da bi zaščitili občutljive podatke v primeru fizičnega dostopa do trdih diskov računalnika. Predlagam vam, da se naučite šifriranja diska, tako da preberete naš članek Šifriranje podatkov trdega diska Linux z LUKS.

9. Uporabite PGP in kriptografijo z javnimi ključi

Za šifriranje diskov uporabite šifriranje PGP in kriptografije z javnim ključem ali ukaz OpenSSL za šifriranje in dešifriranje občutljivih datotek z geslom, kot je prikazano v tem članku Konfiguriranje šifriranega sistemskega pomnilnika Linux.

10. Namestite samo minimalno količino potrebnih paketov

Izogibajte se nameščanju nepomembnih ali nepotrebnih programov, aplikacij ali storitev, da se izognete ranljivostim paketov. To lahko zmanjša tveganje, da bi ogrožanje dela programske opreme privedlo do ogrožanja drugih aplikacij, delov sistema ali celo datotečnih sistemov, kar bi končno povzročilo poškodbe ali izgubo podatkov.

11. Pogosto posodabljajte sistem

Redno posodabljajte sistem. Jedro Linuxa naj bo sinhronizirano z najnovejšimi varnostnimi popravki in vso nameščeno programsko opremo, posodobljeno z najnovejšimi različicami, tako da izdate spodnji ukaz:

# yum update

12. Onemogočite Ctrl + Alt + Del

Da bi preprečili uporabnikom, da znova zaženejo strežnik, ko imajo fizični dostop do tipkovnice ali prek aplikacije oddaljene konzole ali virtualizirane konzole (KVM, virtualizacijski programski vmesnik), morate onemogočiti tipko Ctrl + Alt + Del zaporedje z izvajanjem spodnjega ukaza.

# systemctl mask ctrl-alt-del.target 

13. Odstranite nepotrebne programske pakete

Namestite minimalno programsko opremo, potrebno za vašo napravo. Nikoli ne nameščajte dodatnih programov ali storitev. Pakete nameščajte samo iz zaupanja vrednih ali uradnih skladišč. Uporabite minimalno namestitev sistema, če je stroju namenjeno, da celo življenje deluje kot strežnik.

Preverite nameščene pakete z enim od naslednjih ukazov:

# rpm -qa

Naredite lokalni seznam vseh nameščenih paketov.

# yum list installed >> installed.txt

Oglejte si seznam neuporabne programske opreme in zbrišite paket, tako da izdate spodnji ukaz:

# yum remove package_name

14. Ponovno zaženite storitve Systemd po posodobitvah Daemon

Uporabite spodnji primer ukaza za ponovni zagon storitve systemd, da uporabite nove posodobitve.

# systemctl restart httpd.service

15. Odstranite nepotrebne storitve

Z naslednjim ukazom ss prepoznajte storitve, ki poslušajo določena vrata.

# ss -tulpn

Če želite seznam vseh nameščenih storitev z njihovim izhodnim stanjem izdati spodaj:

# systemctl list-units -t service

Na primer, privzeta minimalna namestitev CentOS je privzeto nameščen demon Postfix, ki se zažene z imenom glavne enote pod vratom 25. Odstranite omrežno storitev Postfix, če vaša naprava ne bo uporabljena kot poštni strežnik.

# yum remove postfix

16. Šifriraj posredovane podatke

Ne uporabljajte nezavarovanih protokolov za oddaljeni dostop ali prenos datotek, kot so Telnet, FTP ali drugi protokoli z visokim besedilom, kot so SMTP, HTTP, NFS ali SMB, ki privzeto ne šifrirajo avtentikacijskih sej ali poslanih podatkov.

Za prenose datotek uporabljajte samo scp, SSH ali VNC prek SSH tunelov za oddaljene povezave konzole ali dostop do GUI.

Za predvajanje konzole VNC prek SSH uporabite spodnji primer, ki posreduje vrata VNC 5901 z oddaljene naprave na vaš lokalni računalnik:

# ssh -L 5902:localhost:5901 remote_machine

Na lokalnem računalniku zaženite spodnji ukaz za navidezno povezavo z oddaljeno končno točko.

# vncviewer localhost:5902

17. Skeniranje omrežnih vrat

Izvajajte zunanja preverjanja vrat z orodjem Nmap iz oddaljenega sistema prek LAN-a. S to vrsto optičnega branja lahko preverite omrežne ranljivosti ali preizkusite pravila požarnega zidu.

# nmap -sT -O 192.168.1.10

18. Požarni zid za filtriranje paketov

Uporabite pripomoček požarni zid za zaščito sistemskih vrat, odpiranje ali zapiranje posebnih pristanišč storitev, zlasti dobro znanih vrat (<1024).

Namestite, zaženite, omogočite in navedite pravila požarnega zidu z izdajo spodnjih ukazov:

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

19. Preglejte pakete protokola s Tcpdump

Uporabite pripomoček tcpdump, da lokalno povohate omrežne pakete in preverite njihovo vsebino zaradi sumljivega prometa (vrata izvor-cilj, protokoli TCP/IP, promet druge plasti, nenavadne zahteve ARP).

Za boljšo analizo zajete datoteke tcpdump uporabite naprednejši program, kot je Wireshark.

# tcpdump -i eno16777736 -w tcpdump.pcap

20. Preprečite napade DNS

Preglejte vsebino vašega razreševalnika, običajno /etc/resolv.conf, ki določa naslov IP strežnikov DNS, ki jih mora uporabljati za iskanje domenskih imen, da se izognete napadom človek v sredini, nepotrebnemu prometu za korenski strežniki DNS, podvajajte ali ustvarite napad DOS.

To je le prvi del. V naslednjem delu bomo razpravljali o drugih varnostnih nasvetih za CentOS 8/7.