Nastavení požadavků Hadoop a zabezpečení

Budova klastru Hadoop je proces krok za krokem, kde proces začíná nákupem požadovaných serverů, montáží do stojanu, kabeláží atd. a umístění v Datacentru. Poté musíme nainstalovat OS, lze to provést pomocí kickstart v prostředí v reálném čase, pokud je velikost clusteru velká. Jakmile je operační systém nainstalován, musíme připravit server na instalaci Hadoop a musíme připravit servery podle zásad zabezpečení organizace.

Požadavky

  • Osvědčené postupy pro nasazení serveru Hadoop na CentOS/RHEL 7 - část 1

V tomto článku si projdeme předpoklady na úrovni OS doporučené Cloudera. Také jsme zdůraznili několik důležitých tipů pro zabezpečení zabezpečení podle Benchmark CIS pro produkční servery. Tato bezpečnostní kalení se mohou lišit podle požadavků.

Nastavení předběžných požadavků Cloudera Hadoop

Zde probereme předpoklady na úrovni OS doporučené Cloudera.

1. Zakázat průhlednou obrovskou stránku

Ve výchozím stavu, Transparentní obrovská stránka (THP) je povoleno na počítačích Linux, se kterými špatně interagují Hadoop pracovní zátěže a degraduje to celkový výkon Clusteru. Abychom dosáhli optimálního výkonu pomocí následujícího, musíme to deaktivovat příkaz echo.

# echo never>/sys/kernel/mm/transparent_hugepage/enabled # echo never>/sys/kernel/mm/transparent_hugepage/defrag 
Zakázat průhlednou obrovskou stránku
Zakázat průhlednou obrovskou stránku

2. Změňte VM Swappiness

Standardně je vm. swappiness hodnota je 30 nebo 60 pro většinu strojů Linux.

# sysctl vm.swappiness. 
Zkontrolujte VM Swappiness
Zkontrolujte VM Swappiness

Mít vyšší hodnotu swappiness se nedoporučuje pro Hadoop servery, protože to může způsobit dlouhé pauzy při shromažďování odpadků. A s vyšší hodnotou swappiness lze data ukládat do mezipaměti pro výměnu paměti, i když máme dostatek paměti. Snížením hodnoty swappiness může fyzická paměť obsahovat více stránek paměti.

# sysctl vm.swappiness = 1. 

Nebo můžete soubor otevřít /etc/sysctl.conf a přidejte "vm.swappiness = 1" na konci.

vm.swappiness = 1. 

3. Zakázat Firewall

Každý server Hadoop bude mít vlastní odpovědnost za více služeb (démoni) běží na to. Všechny servery budou navzájem komunikovat častým způsobem pro různé účely.

Například, Datanode odešle do Namenode každé 3 sekundy tlukot srdce, takže Namenode zajistí, že Datanode je naživu.

Pokud veškerá komunikace probíhá mezi démony na různých serverech prostřednictvím brány firewall, bude to pro Hadoop další zátěž. Proto je nejlepší zakázat bránu firewall na jednotlivých serverech v Clusteru.

# iptables-save> ~/firewall.rules. # systemctl stop firewalld. # systemctl vypnout firewall. 
Zakázat Firewall
Zakázat Firewall

4. Zakázat SELinux

Pokud zachováme SELinux povoleno, způsobí problémy při instalaci Hadoop. Tak jako Hadoop je klastrový výpočet, Cloudera Manager dosáhne na všechny servery v clusteru, aby nainstaloval Hadoop a jeho služby, a podle potřeby vytvoří potřebné adresáře služeb.

Pokud je povolen SELinux, nenechá Cloudera Manager řídit instalaci, jak chce. Povolení SELinuxu tedy bude pro Hadoop překážkou a způsobí problémy s výkonem.

Můžete zkontrolovat stav SELinux pomocí níže uvedeného příkazu.

# sestatus. 
Zkontrolujte stav SELinux
Zkontrolujte stav SELinux

Nyní otevřete /etc/selinux/config soubor a deaktivujte SELINUX jak je znázorněno.

SELinux = zakázáno. 
Zakázat SELinux
Zakázat SELinux

Po deaktivaci SELinuxu musíte systém restartovat, aby byl aktivní.

# restartovat. 

5. Nainstalujte si služby NTP

v Hadoop Cluster, všechny servery by měly být Čas synchronizován aby se předešlo chybám posunu hodin. The RHEL/CentOS 7chronyd vestavěný pro synchronizaci síťových hodin/času, ale Cloudera doporučuje použít NTP.

Musíme nainstalovat NTP a nakonfigurujte jej. Po instalaci zastavtechronyd‘A deaktivovat. Protože pokud server má obojí ntpd a chronyd běží, Cloudera Manager zváží chronyd pro synchronizaci času, pak to způsobí chybu, i když máme čas synchronizovaný přes ntp.

# yum -y nainstalovat ntp. # systemctl start ntpd. # systemctl povolit ntpd. # systemctl status ntpd. 
Zkontrolujte stav NTP
Zkontrolujte stav NTP

6. Zakázat Chronyd

Jak jsme zmínili výše, nepotřebujeme chronyd aktivní, jak používáme ntpd. Zkontrolujte stav chronyd, pokud běží, zastavte a deaktivujte. Ve výchozím stavu, chronyd je zastaveno, dokud jej nespustíme po instalaci operačního systému, ale musíme ho bezpečněji deaktivovat.

# systemctl status chronyd. # systemctl deaktivovat chronyd. 
Zakázat Chronyd
Zakázat Chronyd

7. Nastavit FQDN (plně kvalifikované doménové jméno)

Musíme nastavit jméno hostitele s FQDN (Plně kvalifikované doménové jméno). Každý server by měl mít jedinečný kanonický název. Chcete -li vyřešit název hostitele, musíme buď nakonfigurovat DNS nebo /etc/hosts. Zde se chystáme konfigurovat /etc/hosts.

Je třeba zadat IP adresu a FQDN každého serveru /etc/hosts všech serverů. Pak už jen Cloudera Manager může komunikovat se všemi servery pomocí svého názvu hostitele.

# hostnamectl set-hostname master1.tecmint.com. 

Dále nakonfigurujte /etc/hosts soubor. Příklad: - Máme -li 5 uzlový klastr se 2 hlavními a 3 pracovníky, můžeme nakonfigurovat /etc/hosts jak je uvedeno níže.

Konfigurujte názvy hostitelů
Konfigurujte názvy hostitelů

8. Instalace sady Java Development Kit (JDK)

Tak jako Hadoop je vytvořen z Jáva, měli by mít všichni hostitelé Jáva nainstalován s příslušnou verzí. Tady budeme mít OpenJDK. Ve výchozím stavu, Cloudera Manager nainstaluje OracleJDK ale Cloudera doporučuje mít OpenJDK.

# yum -y install java-1.8.0-openjdk-devel. # java -verze. 
Zkontrolujte verzi Java
Zkontrolujte verzi Java

Zabezpečení a kalení Hadoop

V této sekci se podíváme na zabezpečení prostředí Harden Hadoop…

1. Zakázat automatické počítání

Automatické montáže “autofs„Umožňuje automatické připojení fyzických zařízení, jako je USB, CD/DVD. Uživatel s fyzickým přístupem může k přístupu k vloženým datům připojit své USB nebo jakékoli paměťové médium. Pomocí níže uvedených příkazů ověřte, zda je zakázán nebo ne, pokud není deaktivován.

# systemctl zakázat automatické podepisování. # systemctl je povoleno automatické autofs. 
Zakázat automatické počítání
Zakázat automatické počítání

2. Nastavení zabezpečeného spouštění

The grub konfigurační soubor obsahuje důležité informace o nastavení zavádění a přihlašovací údaje k odemčení možností spouštění. Konfigurační soubor grub „grub.cfg‘Na adrese /boot/grub2 a je propojen jako /etc/grub2.conf a zajistit grub.cfg je ve vlastnictví uživatele root.

# cd /boot /grub2. 
Zkontrolujte soubory Grub
Zkontrolujte soubory Grub

Ke kontrole použijte níže uvedený příkaz Uid a Gid jsou oba 0/root a 'skupina“Nebo„jiný‘By neměl mít žádné povolení.

# stat /boot/grub2/grub.cfg. 
Zkontrolujte statistiku souboru Grub
Zkontrolujte statistiku souboru Grub

Pomocí níže uvedeného příkazu odeberete oprávnění ostatním a skupinám.

# chmod og-rwx /boot/grub2/grub.cfg. 
Odebrat oprávnění souboru Grub
Odebrat oprávnění souboru Grub

3. Nastavte heslo zavaděče

Toto nastavení zabrání dalšímu neautorizovanému restartu serveru. tj. k restartování serveru vyžaduje heslo. Pokud není nastaveno, mohou neautorizovaní uživatelé spustit server a provádět změny v zaváděcích oddílech.

K nastavení hesla použijte níže uvedený příkaz.

# grub2-mkpasswd-pbkdf2. 
Vytvořte heslo bootloaderu
Vytvořte heslo zavaděče

Přidejte výše vytvořené heslo do /etc/grub.d/01_users soubor.

Přidejte heslo Grub do souboru
Přidejte heslo Grub do souboru

Dále znovu vygenerujte konfigurační soubor grub.

# grub2-mkconfig> /boot/grub2/grub.cfg. 
Generovat konfiguraci Grub
Generovat konfiguraci Grub

4. Odebrat nástroj Prelink Tool

Prelink je softwarový program, který může zvýšit zranitelnost serveru, pokud uživatelé se zlými úmysly mohou ohrozit běžné knihovny jako např libc.

Odeberte jej pomocí níže uvedeného příkazu.

# yum odstranit prelink. 

5. Zakažte nechtěné služby

Měli bychom zvážit deaktivaci některých služeb/protokolů, abychom se vyhnuli potenciálním útokům.

# systemctl zakázat 
  • Zakázat síťové služby - Zajistěte, aby nebyly povoleny síťové služby - poplatky, denní doba, vyřazení, ozvěna, čas. Tyto síťové služby jsou pro ladění a testování, doporučujeme deaktivovat, což může minimalizovat vzdálený útok.
  • Zakázat TFTP a FTP - Oba protokoly nepodporují důvěrnost údajů nebo přihlašovacích údajů. Doporučuje se nemít na serveru, pokud to není výslovně vyžadováno. Tyto protokoly jsou většinou nainstalovány a povoleny na serverech souborů.
  • Zakázat DHCP - DHCP je protokol, který bude dynamicky přidělovat IP adresu. Doporučujeme deaktivovat, pokud se nejedná o server DHCP, abyste se vyhnuli potenciálním útokům.
  • Zakázat HTTP - HTTP je protokol, který lze použít k hostování webového obsahu. Kromě serverů Master/Management (kde se má konfigurovat WebUI služeb jako CM, Hue atd.) Můžeme zakázat HTTP na jiných pracovních uzlech, které se mohou vyhnout potenciálním útokům.

souhrn

Prošli jsme přípravou serveru, ze které se skládá Cloudera Hadoop Předpoklady a nějaké bezpečnostní zpevnění. Předpoklady na úrovni operačního systému definované Cloudera jsou povinné pro hladkou instalaci Hadoop. Obvykle se připraví kalící skript s použitím Benchmark CIS a slouží k auditu a nápravě nedodržování předpisů v reálném čase.

Při minimální instalaci CentOS/RHEL 7, jsou nainstalovány pouze základní funkce/software, zabrání se tím nežádoucím rizikům a zranitelnostem. I když se jedná o minimální instalaci, dříve proběhne více iterací auditování zabezpečení instalace Hadoop, a to i po vytvoření clusteru, před přesunutím clusteru do Provoz/výroba.

Teachs.ru