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.