Vyhledávání na webu

20 bezpečnostních tipů CentOS Server Hardening – část 1


Tento tutoriál obsahuje pouze obecné bezpečnostní tipy pro CentOS 8/7, které lze použít k posílení systému. Kontrolní tipy jsou určeny k použití většinou na různých typech serverů typu bare-metal nebo na strojích (fyzických nebo virtuálních), které poskytují síťové služby.

Některé z tipů však lze úspěšně aplikovat i na stroje pro všeobecné použití, jako jsou stolní počítače, notebooky a jednodeskové počítače velikosti karty (Raspberry Pi).

Požadavky

  • Minimální instalace CentOS 8
  • Minimální instalace CentOS 7

1. Fyzická ochrana

Uzamkněte přístup k serverovým místnostem, použijte zamykání stojanů a video dohled. Vezměte v úvahu, že jakýkoli fyzický přístup do serveroven může vystavit váš počítač vážným bezpečnostním problémům.

Hesla BIOS lze změnit resetováním propojek na základní desce nebo odpojením baterie CMOS. Vetřelec může také ukrást pevné disky nebo přímo připojit nové pevné disky k rozhraním základní desky (SATA, SCSI atd.), spustit systém s linuxovou živou distribucí a klonovat nebo kopírovat data bez zanechání jakékoli stopy softwaru.

2. Snižte dopad špionáže

V případě vysoce citlivých dat byste pravděpodobně měli použít pokročilou fyzickou ochranu, jako je umístění a uzamčení serveru do Faradayovy klece nebo použít vojenské řešení TEMPEST, abyste minimalizovali dopad špehování systému prostřednictvím rádiových nebo elektrických únikových emanací.

3. Zabezpečte BIOS/UEFI

Začněte proces posilování počítače zabezpečením nastavení BIOS/UEFI, zejména nastavením hesla BIOS/UEFI a zakázáním zařízení spouštěcích médií (CD, DVD, deaktivace podpory USB) v abyste zabránili neoprávněným uživatelům měnit nastavení systému BIOS nebo měnit prioritu zaváděcího zařízení a spouštět počítač z alternativního média.

Chcete-li použít tento typ změny na vašem počítači, musíte si konkrétní pokyny prostudovat v příručce výrobce základní desky.

4. Secure Boot Loader

Nastavte heslo GRUB, abyste zabránili uživatelům se zlými úmysly manipulovat se zaváděcí sekvencí jádra nebo úrovněmi spouštění, upravovat parametry jádra nebo spouštět systém do režimu pro jednoho uživatele s cílem poškodit váš systém a resetovat kořenový adresář. heslo pro získání privilegované kontroly.

5. Použijte samostatné diskové oddíly

Při instalaci CentOS na systémy určené jako produkční servery použijte vyhrazené oddíly nebo vyhrazené pevné disky pro následující části systému:

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

6. Použijte LVM a RAID pro redundanci a růst souborového systému

Oddíl /var je místo, kam se zapisují zprávy protokolu na disk. Velikost této části systému může exponenciálně narůstat na silně zatížených serverech, které odhalují síťové služby, jako jsou webové servery nebo souborové servery.

Použijte tedy velký oddíl pro /var nebo zvažte nastavení tohoto oddílu pomocí logických svazků (LVM) nebo zkombinujte několik fyzických disků do jednoho většího virtuálního zařízení RAID 0, abyste udrželi velké množství dat. U dat zvažte redundanci použití rozložení LVM nad úrovní RAID 1.

Pro nastavení LVM nebo RAID na discích postupujte podle našich užitečných průvodců:

  1. Nastavte diskové úložiště pomocí LVM v Linuxu
  2. Vytvářejte disky LVM pomocí vgcreate, lvcreate a lvextend
  3. Spojte několik disků do jednoho velkého virtuálního úložiště
  4. Vytvořte pole RAID 1 pomocí dvou disků v systému Linux

7. Upravte volby fstab na Secure Data Partitions

Oddělte oddíly určené k ukládání dat a zabraňte spouštění programů, souborů zařízení nebo bitu setuid na těchto typech oddílů přidáním následujících možností do souboru fstab, jak je znázorněno níže výňatek:

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

Chcete-li zabránit eskalaci oprávnění a libovolnému spuštění skriptu, vytvořte samostatný oddíl pro /tmp a připojte jej jako nosuid, nodev a noexec .

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

8. Šifrujte pevné disky na úrovni bloku pomocí LUKS

Za účelem ochrany citlivých dat snooping v případě fyzického přístupu k pevným diskům stroje. Navrhuji, abyste se naučili šifrovat disk přečtením našeho článku Šifrování dat pevného disku Linux pomocí LUKS.

9. Používejte PGP a kryptografii s veřejným klíčem

Chcete-li šifrovat disky, použijte příkaz PGP a Public-Key Cryptography nebo OpenSSL k šifrování a dešifrování citlivých souborů pomocí hesla, jak je uvedeno v tomto článku Konfigurace šifrovaného úložiště systému Linux.

10. Nainstalujte pouze minimální požadovaný počet balíčků

Neinstalujte nedůležité nebo nepotřebné programy, aplikace nebo služby, abyste předešli zranitelnosti balíčků. To může snížit riziko, že kompromitace části softwaru může vést ke kompromitaci jiných aplikací, částí systému nebo dokonce souborových systémů, což nakonec povede k poškození nebo ztrátě dat.

11. Často aktualizujte systém

Pravidelně aktualizujte systém. Udržujte jádro Linuxu v synchronizaci s nejnovějšími bezpečnostními záplatami a veškerým nainstalovaným softwarem aktuálním s nejnovějšími verzemi vydáním níže uvedeného příkazu:

yum update

12. Vypněte Ctrl+Alt+Del

Abyste zabránili uživatelům restartovat server, jakmile budou mít fyzický přístup ke klávesnici nebo prostřednictvím aplikace vzdálené konzoly nebo virtualizované konzole (KVM, virtualizační softwarové rozhraní), měli byste zakázat Ctrl+Alt +Del posloupnost kláves provedením níže uvedeného příkazu.

systemctl mask ctrl-alt-del.target 

13. Odstraňte nepotřebné softwarové balíčky

Nainstalujte minimální software vyžadovaný pro váš stroj. Nikdy neinstalujte další programy nebo služby. Instalujte balíčky pouze z důvěryhodných nebo oficiálních repozitářů. Použijte minimální instalaci systému v případě, že je stroj určen k tomu, aby běžel celou svou životnost jako server.

Ověřte nainstalované balíčky pomocí jednoho z následujících příkazů:

rpm -qa

Vytvořte místní seznam všech nainstalovaných balíčků.

yum list installed >> installed.txt

Prohlédněte si seznam nepotřebného softwaru a smažte balíček vydáním níže uvedeného příkazu:

yum remove package_name

14. Po aktualizacích démona restartujte Systemd Services

Pomocí níže uvedeného příkladu příkazu restartujte službu systemd, abyste mohli použít nové aktualizace.

systemctl restart httpd.service

15. Odstraňte nepotřebné služby

Pomocí následujícího příkazu ss identifikujte služby, které naslouchají na konkrétních portech.

ss -tulpn

Chcete-li zobrazit všechny nainstalované služby s jejich stavem výstupu, zadejte níže uvedený příkaz:

systemctl list-units -t service

Například výchozí minimální instalace CentOS je dodávána s nainstalovaným démonem Postfix, který běží pod jménem hlavního serveru na portu 25. Odeberte síťovou službu Postfix v případě, že váš počítač nebude používán jako poštovní server.

yum remove postfix

16. Šifrujte přenášená data

Pro vzdálený přístup nebo přenos souborů nepoužívejte nezabezpečené protokoly, jako je Telnet, FTP, ani jiné protokoly s vysokým obsahem prostého textu, jako je SMTP, HTTP, NFS nebo SMB, které by ve výchozím nastavení nešifruje ověřovací relace ani odeslaná data.

Používejte pouze sftp, scp pro přenos souborů a SSH nebo VNC přes tunely SSH pro připojení ke vzdálené konzole nebo přístup s GUI.

Chcete-li tunelovat konzolu VNC přes SSH, použijte níže uvedený příklad, který předá port VNC 5901 ze vzdáleného počítače na váš místní počítač:

ssh -L 5902:localhost:5901 remote_machine

Na místním počítači spusťte níže uvedený příkaz pro virtuální připojení ke vzdálenému koncovému bodu.

vncviewer localhost:5902

17. Skenování síťového portu

Provádějte externí kontroly portů pomocí nástroje Nmap ze vzdáleného systému přes LAN. Tento typ skenování lze použít k ověření zranitelnosti sítě nebo k testování pravidel brány firewall.

nmap -sT -O 192.168.1.10

18. Brána firewall pro filtrování paketů

Použijte nástroj firewalld k ochraně systémových portů, otevírání nebo zavírání určitých portů služeb, zejména známých portů (<1024).

Nainstalujte, spusťte, povolte a uveďte pravidla brány firewall pomocí následujících příkazů:

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

19. Zkontrolujte protokolové pakety pomocí Tcpdump

Použijte obslužný program tcpdump k místnímu čichání síťových paketů a kontrole jejich obsahu na podezřelý provoz (porty zdroje a cíle, protokoly TCP/IP, provoz na druhé vrstvě, neobvyklé požadavky ARP).

Pro lepší analýzu zachyceného souboru tcpdump použijte pokročilejší program, jako je Wireshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Zabraňte útokům DNS

Prohlédněte si obsah vašeho resolveru, obvykle souboru /etc/resolv.conf, který definuje IP adresu DNS serverů, které by měl použít k dotazování na názvy domén, abyste se vyhnuli man-in-the -střední útoky, zbytečný provoz pro kořenové servery DNS, spoof nebo vytvoření útoku DOS.

Toto je jen první část. V další části probereme další bezpečnostní tipy pro CentOS 8/7.