Budování clusteru Hadoop je proces krok za krokem, kdy proces začíná nákupem požadovaných serverů, montáží do racku, kabeláže atd. a umístěním v Datacentru. Poté musíme nainstalovat OS, lze to provést pomocí kickstartu v prostředí reálného času, pokud je velikost clusteru velká. Jakmile je OS nainstalován, musíme připravit server pro instalaci Hadoop a musíme připravit servery podle bezpečnostních zásad 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 operačního systému, které doporučuje Cloudera . Také jsme zdůraznili některé důležité tipy pro posílení zabezpečení podle CIS Benchmarku pro produkční servery. Toto zabezpečení Hardening se může lišit podle požadavků.
Předpoklady nastavení Cloudera Hadoop
Zde probereme předpoklady na úrovni OS doporučené Cloudera .
1. Zakázat průhlednou obrovskou stránku
Ve výchozím nastavení Transparentní obrovská stránka (THP ) je povoleno na počítačích se systémem Linux, které špatně komunikují s Hadoop zátěží a snižuje to celkový výkon Clusteru. Takže to musíme deaktivovat, abychom dosáhli optimálního výkonu pomocí následujícího příkazu echo.
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag
2. Změňte výměnu virtuálních počítačů
Ve výchozím nastavení vm.swappiness hodnota je 30 nebo 60 pro většinu počítačů se systémem Linux.
# sysctl vm.swappiness
S vyšší hodnotou swappiness se nedoporučuje pro Hadoop servery, protože to může způsobit dlouhé pauzy ve sběru odpadu. A s vyšší hodnotou swappiness lze data ukládat do mezipaměti za účelem swapování paměti, i když máme dostatek paměti. Snížení hodnoty swappiness může způsobit, že fyzická paměť bude obsahovat více paměťových stránek.
# sysctl vm.swappiness=1
Nebo můžete otevřít soubor /etc/sysctl.conf a přidejte "vm.swappiness=1"
na konci.
vm.swappiness=1
3. Zakázat bránu firewall
Každý server Hadoop bude mít vlastní odpovědnost za více služeb (démonů ) běží na tom. Všechny servery spolu budou často komunikovat pro různé účely.
Například Datanode bude každé 3 sekundy odesílat tlukot srdce do Namenode, takže Namenode zajistí, že Datanode je naživu.
Pokud veškerá komunikace probíhá mezi démony napříč různými servery přes Firewall, bude to pro Hadoop další zátěž. Nejlepším postupem je tedy deaktivovat firewall na jednotlivých serverech v Clusteru.
# iptables-save > ~/firewall.rules # systemctl stop firewalld # systemctl disable firewall
4. Zakázat SELinux
Pokud ponecháme SELinux povoleno, způsobí problémy při instalaci Hadoop . Jako Hadoop je cluster computing, Cloudera Manager se dostane na všechny servery v clusteru, aby nainstaloval Hadoop a jeho služby, a vytvoří potřebné adresáře služeb, kdykoli to bude potřeba.
Pokud je povolen SELinux, nedovolí Cloudera Manageru, aby řídil instalaci, jak chce. Takže povolení SELinuxu bude překážkou pro Hadoop a způsobí problémy s výkonem.
Můžete zkontrolovat stav SELinux pomocí níže uvedeného příkazu.
# sestatus
Nyní otevřete /etc/selinux/config soubor a deaktivujte SELINUX jak je uvedeno.
SELinux=disabled
Po deaktivaci SELinuxu musíte restartovat systém, aby byl aktivní.
# reboot
5. Nainstalujte služby NTP
V Hadoop Cluster , všechny servery by měly být Časově synchronizované abyste se vyhnuli chybám posunutí hodin. RHEL/CentOS 7 má chronyd vestavěný pro síťovou synchronizaci hodin/času, ale Cloudera doporučuje použít NTP .
Musíme nainstalovat NTP a nakonfigurovat jej. Po instalaci zastavte „chronyd “ a zakázat. Protože pokud má server oba ntpd a chronyd běží, Cloudera Manager zváží chronyd pro synchronizaci času, pak to vyhodí chybu, i když máme čas synchronizovaný přes ntp.
# yum -y install ntp # systemctl start ntpd # systemctl enable ntpd # systemctl status ntpd
6. Zakázat Chronyd
Jak jsme zmínili výše, nepotřebujeme chronyd aktivní, protože používáme ntpd . Zkontrolujte stav chronyd , pokud běží, zastavte a deaktivujte. Ve výchozím nastavení chronyd se zastaví, dokud jej nespustíme po instalaci operačního systému, jen jej musíme deaktivovat pro bezpečnější stranu.
# systemctl status chronyd # systemctl disable chronyd
7. Nastavte FQDN (Plně kvalifikovaný název domény)
Musíme nastavit hostname s FQDN (Plně kvalifikovaný název domény ). Každý server by měl mít jedinečný kanonický název. K překladu názvu hostitele musíme nakonfigurovat DNS nebo /etc/hosts . Zde nakonfigurujeme /etc/hosts .
IP adresa a FQDN každého serveru by měly být zadány v /etc/hosts ze všech serverů. Pak už jen Cloudera Manager může komunikovat se všemi servery se svým názvem hostitele.
# hostnamectl set-hostname master1.tecmint.com
Dále nakonfigurujte /etc/hosts soubor. Například:– Pokud máme cluster 5 uzlů se 2 hlavními a 3 pracovníky, můžeme nakonfigurovat /etc/hosts jak je uvedeno níže.
8. Instalace sady Java Development Kit (JDK)
Jako Hadoop se skládá z Java , všichni hostitelé by měli mít Java nainstalována s příslušnou verzí. Zde budeme mít OpenJDK . Ve výchozím nastavení Cloudera Manager nainstaluje OracleJDK ale Cloudera doporučuje mít OpenJDK .
# yum -y install java-1.8.0-openjdk-devel # java -version
Hadoop Security and Hardening
V této části se podíváme na zabezpečení prostředí Harden Hadoop…
1. Zakázat automatické připojení
Automatická montáž „autofs “ umožňuje automatické připojení fyzických zařízení, jako je USB, CD/DVD. Uživatel s fyzickým přístupem může připojit své USB nebo jakékoli paměťové médium pro přístup k vloženým datům. Pomocí níže uvedených příkazů ověřte, zda je deaktivována nebo ne, pokud ne, deaktivujte ji.
# systemctl disable autofs # systemctl is-enabled autofs
2. Nastavení zabezpečeného spouštění
Grub konfigurační soubor obsahuje důležité informace o nastavení spouštění a pověření k odemknutí možností spouštění. Konfigurační soubor grub „grub.cfg se nachází na adrese /boot/grub2 a je propojen jako /etc/grub2.conf a zajistit grub.cfg je ve vlastnictví uživatele root.
# cd /boot/grub2
Pomocí níže uvedeného příkazu zkontrolujte Uid a Gid oba jsou 0/root a „skupina “ nebo „jiné “ by neměl mít žádné oprávnění.
# stat /boot/grub2/grub.cfg
Pomocí níže uvedeného příkazu odeberete oprávnění ostatním a skupinám.
# chmod og-rwx /boot/grub2/grub.cfg
3. Nastavte heslo zavaděče
Toto nastavení zabrání dalšímu neoprávněnému restartování serveru. tj. Vyžaduje heslo pro restartování serveru. Pokud není nastaveno, mohou neoprávnění uživatelé zavést server a provádět změny v zaváděcích oddílech.
Pro nastavení hesla použijte níže uvedený příkaz.
# grub2-mkpasswd-pbkdf2
Přidejte výše vytvořené heslo do /etc/grub.d/01_users soubor.
Dále znovu vygenerujte konfigurační soubor grub.
# grub2-mkconfig > /boot/grub2/grub.cfg
4. Remove Prelink Tool
Předběžný odkaz je softwarový program, který může zvýšit zranitelnost serveru, pokud uživatelé se zlými úmysly mohou ohrozit běžné knihovny, jako je libc .
K odstranění použijte níže uvedený příkaz.
# yum remove prelink
5. Zakázat nežádoucí služby
Měli bychom zvážit deaktivaci některých služeb/protokolů, abychom se vyhnuli potenciálním útokům.
# systemctl disable <service name>
- Deaktivujte síťové služby – Zajistěte, aby síťové služby – poplatky, den, vyřazení, echo, čas nejsou povoleny. Tyto síťové služby slouží k ladění a testování, doporučujeme je vypnout, což může minimalizovat vzdálený útok.
- Deaktivujte TFTP a FTP – Oba protokoly nebudou podporovat důvěrnost dat nebo pověření. Nejlepší je nemít na serveru, pokud to není výslovně vyžadováno. Většinou jsou tyto protokoly nainstalovány a povoleny na souborových serverech.
- Zakázat DHCP – DHCP je protokol, který dynamicky přiděluje IP adresu. Doporučuje se zakázat, 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, což může zabránit potenciálním útokům.
Shrnutí
Prošli jsme přípravou serveru, která se skládá z Cloudera Hadoop Pre-rekvizity a nějaké bezpečnostní zpřísnění. Předpoklady na úrovni OS definované Cloudera jsou povinné pro bezproblémovou instalaci Hadoop. Obvykle bude zpřísňovací skript připraven s použitím CIS Benchmarku a použit k auditu a nápravě nesouladu v reálném čase.
Při minimální instalaci CentOS/RHEL 7 , jsou nainstalovány pouze základní funkce/software, předejdete tak nechtěným rizikům a zranitelnostem. I když se jedná o minimální instalaci, před instalací Hadoopu bude provedeno několik iterací bezpečnostního auditu, a to i po sestavení clusteru, než se cluster přesune do provozu/produkce.