Weboldal keresés

A Hadoop előfeltételeinek beállítása és a biztonság megerősítése – 2. rész


A Hadoop Cluster Building egy lépésről lépésre zajló folyamat, ahol a folyamat a szükséges szerverek megvásárlásával, a rackbe való felszereléssel, kábelezéssel stb. és az adatközpontba való elhelyezéssel kezdődik. Ezután telepítenünk kell az operációs rendszert, ezt a valós idejű környezetben a kickstart segítségével megtehetjük, ha nagy a klaszter mérete. Az operációs rendszer telepítése után fel kell készítenünk a szervert a Hadoop telepítésére, és fel kell készítenünk a szervereket a Szervezet biztonsági szabályzatának megfelelően.

Követelmények

  • A Hadoop Server telepítésének bevált gyakorlatai CentOS/RHEL 7 rendszeren – 1. rész

Ebben a cikkben a Cloudera által javasolt operációs rendszer-szintű előfeltételeket tekintjük át. Emellett kiemeltünk néhány fontos biztonsági szigorítási tippet a CIS-benchmark szerint az éles kiszolgálókhoz. Ezek a biztonsági keményítések a követelményektől függően eltérőek lehetnek.

A Cloudera Hadoop beállítása Előfeltételek

Itt megvitatjuk a Cloudera által javasolt operációs rendszer-szintű előfeltételeket.

1. Tiltsa le az Átlátszó hatalmas oldalt

Alapértelmezés szerint az Transparent Huge Page (THP) engedélyezve van azokon a Linux-gépeken, amelyek rosszul működnek együtt a Hadoop munkaterhelésekkel, és rontja a Cluster általános teljesítményét. Tehát ezt le kell tiltanunk az optimális teljesítmény elérése érdekében a következő echo paranccsal.

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 

2. Módosítsa a virtuális gépek cseréjét

Alapértelmezés szerint a vm.swappiness érték 30 vagy 60 a legtöbb Linux-gépen.

sysctl vm.swappiness

A cserelehetőség magasabb értéke nem javasolt Hadoop-szervereknél, mert ez hosszadalmas szemétgyűjtési szüneteket okozhat. És a magasabb csereértékkel az adatok gyorsítótárazhatók a memória cseréjéhez, még akkor is, ha elegendő memóriánk van. A felcserélhetőség értékének csökkentése több memóriaoldalt tartalmazhat a fizikai memóriában.

sysctl vm.swappiness=1

Vagy megnyithatja a /etc/sysctl.conf fájlt, és a végére hozzáadhatja a "vm.swappiness=1" fájlt.

vm.swappiness=1

3. Tiltsa le a tűzfalat

Minden Hadoop-kiszolgálónak saját felelőssége lesz, mivel több szolgáltatás (démon) fut rajta. Az összes szerver gyakran kommunikál egymással különböző célok érdekében.

Például a Datanode 3 másodpercenként szívverést küld a Namenode-nak, hogy a Namenode megbizonyosodjon arról, hogy a Datanode életben van.

Ha az összes kommunikáció a démonok között a tűzfalon keresztül történik különböző szervereken keresztül, az extra terhet jelent a Hadoop számára. Ezért a legjobb gyakorlat, ha letiltja a tűzfalat a fürt egyes kiszolgálóin.

iptables-save > ~/firewall.rules
systemctl stop firewalld
systemctl disable firewall

4. Tiltsa le a SELinuxot

Ha engedélyezve hagyjuk a SELinuxot, az problémákat okoz a Hadoop telepítése során. Mivel a Hadoop egy fürtalapú számítástechnika, a Cloudera Manager eléri a fürt összes kiszolgálóját a Hadoop és szolgáltatásainak telepítéséhez, és szükség esetén létrehozza a szükséges szolgáltatási címtárakat.

Ha a SELinux engedélyezve van, akkor nem engedi, hogy a Cloudera Manager tetszés szerint irányítsa a telepítést. Tehát a SELinux engedélyezése akadályt jelent a Hadoop számára, és teljesítménybeli problémákat okoz.

Az alábbi paranccsal ellenőrizheti a SELinux állapotát.

sestatus

Most nyissa meg az /etc/selinux/config fájlt, és tiltsa le a SELINUX funkciót az ábra szerint.

SELinux=disabled

A SELinux letiltása után újra kell indítania a rendszert, hogy aktiválja.

reboot

5. Telepítse az NTP-szolgáltatásokat

A Hadoop Clusterben az összes kiszolgálónak időszinkronizáltnak kell lennie, hogy elkerülje az óraeltolódási hibákat. Az RHEL/CentOS 7 beépített chronyd-ot tartalmaz a hálózati óra/idő szinkronizálásához, de a Cloudera az NTP használatát javasolja.

Telepítenünk kell az NTPet és konfigurálnunk kell. A telepítés után állítsa le a „chronyd” alkalmazást, és tiltsa le. Mert ha egy kiszolgálón az ntpd és a chronyd is fut, a Cloudera Manager a chronyd elemet veszi figyelembe az időszinkronizáláshoz, és akkor is hibát fog kiadni, ha ntp-n keresztül szinkronizált időnk van.

yum -y install ntp
systemctl start ntpd
systemctl enable ntpd
systemctl status ntpd

6. A Chronyd letiltása

Ahogy fentebb említettük, nincs szükségünk aktív chronyd-ra, mivel az ntpd-t használjuk. Ellenőrizze a chronyd állapotát, ha fut, állítsa le és tiltsa le. Alapértelmezés szerint a chronyd le van állítva, hacsak az operációs rendszer telepítése után el nem indítjuk, csak le kell tiltanunk a biztonságosabb oldal érdekében.

systemctl status chronyd
systemctl disable chronyd

7. Állítsa be az FQDN-t (Fullly Qualified Domain Name)

A gazdanevet az FQDN (Fully Qualified Domain Name) értékkel kell beállítanunk. Minden szervernek egyedi kanonikus névvel kell rendelkeznie. A gazdagépnév feloldásához vagy a DNS-t vagy a /etc/hosts-t kell konfigurálnunk. Itt az /etc/hosts paramétert fogjuk konfigurálni.

Minden szerver IP-címét és teljes tartománynevét meg kell adni az összes szerver /etc/hosts mappájában. Ekkor csak a Cloudera Manager tud kommunikálni az összes szerverrel a gazdagépnevével.

hostnamectl set-hostname master1.linux-console.net

Ezután állítsa be az /etc/hosts fájlt. Például: – Ha 5 csomópontfürttel rendelkezünk 2 fővel és 3 dolgozóval, az /etc/hosts fájlt az alábbiak szerint konfigurálhatjuk.

8. Java Development Kit (JDK) telepítése

Mivel a Hadoop Javából épül fel, minden gazdagépen a Java megfelelő verzióval kell telepítve lennie. Itt lesz az OpenJDK. Alapértelmezés szerint a Cloudera Manager telepíti az OracleJDK-t, de a Cloudera az OpenJDK használatát javasolja.

yum -y install java-1.8.0-openjdk-devel
java -version

Hadoop biztonság és keményítés

Ebben a részben a Harden Hadoop környezetbiztonsággal foglalkozunk…

1. Kapcsolja ki az automatikus rögzítést

Az „autofs” automatikus csatlakoztatása lehetővé teszi fizikai eszközök, például USB, CD/DVD automatikus csatlakoztatását. A fizikai hozzáféréssel rendelkező felhasználó csatlakoztathatja USB-jét vagy bármilyen tárolóeszközt, hogy hozzáférjen a beillesztett adatokhoz. Használja az alábbi parancsokat annak ellenőrzésére, hogy le van-e tiltva vagy sem, ha nem, tiltsa le.

systemctl disable autofs
systemctl is-enabled autofs

2. Biztonságos rendszerindítási beállítások

A grub konfigurációs fájl kritikus információkat tartalmaz a rendszerindítási beállításokról és a rendszerindítási beállítások feloldásához szükséges hitelesítési adatokról. A „grub.cfg” grub konfigurációs fájl a /boot/grub2 címen található, és az /etc/grub2.conf néven van összekapcsolva, és győződjön meg róla, hogy A grub.cfg a root felhasználó tulajdona.

cd /boot/grub2

Az alábbi paranccsal ellenőrizze, hogy az Uid és a Gid egyaránt 0/root és 'group' vagy ' >egyéb" nem rendelkezhet semmilyen engedéllyel.

stat /boot/grub2/grub.cfg

Az alábbi paranccsal távolíthatja el az engedélyeket a többitől és a csoporttól.

chmod og-rwx /boot/grub2/grub.cfg

3. Állítsa be a Bootloader jelszót

Ezzel a beállítással elkerülhető a kiszolgáló egyéb jogosulatlan újraindítása. azaz a szerver újraindításához jelszó szükséges. Ha nincs beállítva, az illetéktelen felhasználók elindíthatják a kiszolgálót, és módosíthatják a rendszerindító partíciókat.

Használja az alábbi parancsot a jelszó beállításához.

grub2-mkpasswd-pbkdf2

Adja hozzá a fent létrehozott jelszót az /etc/grub.d/01_users fájlhoz.

Ezután generálja újra a grub konfigurációs fájlt.

grub2-mkconfig > /boot/grub2/grub.cfg

4. Távolítsa el a Prelink Tool eszközt

A Prelink egy szoftverprogram, amely növelheti a kiszolgáló sebezhetőségét, ha rosszindulatú felhasználók feltörhetik az általános könyvtárakat, például a libc-t.

Az alábbi parancs segítségével távolítsa el.

yum remove prelink

5. Tiltsa le a nem kívánt szolgáltatásokat

Meg kell fontolnunk bizonyos szolgáltatások/protokollok letiltását az esetleges támadások elkerülése érdekében.

systemctl disable <service name>
  • Hálózati szolgáltatások letiltása – Győződjön meg arról, hogy a hálózati szolgáltatások – díjak, nappali, eldobás, visszhang, idő nincs engedélyezve. Ezek a hálózati szolgáltatások hibakeresésre és tesztelésre szolgálnak, ajánlott letiltani, ami minimalizálhatja a távoli támadást.
  • TFTP és FTP letiltása – Egyik protokoll sem támogatja az adatok vagy hitelesítő adatok bizalmas kezelését. A legjobb gyakorlat, ha nincs a szerveren, kivéve, ha kifejezetten kötelező. Ezek a protokollok többnyire a fájlszervereken vannak telepítve és engedélyezve.
  • DHCP letiltása – A DHCP az a protokoll, amely dinamikusan osztja ki az IP-címet. A lehetséges támadások elkerülése érdekében javasolt letiltani, hacsak nem DHCP-kiszolgálóról van szó.
  • HTTP letiltása – A HTTP az a protokoll, amely webtartalom tárolására használható. A Master/Management szervereken kívül (ahol a szolgáltatások WebUI-ját kell konfigurálni, mint például a CM, Hue stb.), letilthatjuk a HTTP-t más worker csomópontokon, ami elkerülheti a lehetséges támadásokat.

Összegzés

Végigmentünk a szerver-előkészítésen, amely a Cloudera Hadoop előfeltételekből és bizonyos biztonsági szigorításokból áll. A Cloudera által meghatározott operációs rendszer szintű előfeltételek kötelezőek a Hadoop zökkenőmentes telepítéséhez. Általában a CIS Benchmark használatával keményítő szkriptet készítenek, és valós időben használják fel a meg nem felelés ellenőrzésére és orvoslására.

A CentOS/RHEL 7 minimális telepítése során csak az alapvető funkciók/szoftverek vannak telepítve, így elkerülhető a nem kívánt kockázat és a sebezhetőség. Annak ellenére, hogy minimális telepítésről van szó, a Hadoop telepítése előtt többször meg kell ismételni a biztonsági auditálást, még a fürt felépítése után is, mielőtt a fürt működésbe/gyártásba kerül.