Hadoop priekšnoteikumu un drošības sacietēšanas iestatīšana - 2. daļa


Hadoop Cluster Building ir soli pa solim process, kurā process sākas ar nepieciešamo serveru iegādi, uzstādīšanu plauktiņā, kabeļu uzstādīšanu utt. Un ievietošanu Datacentrā. Tad mums jāinstalē OS, to var izdarīt, izmantojot kickstart reāllaika vidē, ja klastera lielums ir liels. Kad OS ir instalēta, mums jāsagatavo serveris Hadoop instalēšanai un serveri jāsagatavo atbilstoši organizācijas drošības politikām.

  • Hadoop servera izvietošanas paraugprakse CentOS/RHEL 7 - 1. daļa

Šajā rakstā mēs iepazīsimies ar Cloudera ieteiktajiem OS līmeņa priekšnosacījumiem. Turklāt mēs esam izcēluši dažus svarīgus padomus par drošības sacietēšanu saskaņā ar NVS serveru standartu. Šīs drošības sacietēšana var būt atšķirīga atbilstoši prasībām.

Cloudera Hadoop priekšnosacījumu iestatīšana

Šeit mēs apspriedīsim Cloudera ieteiktos OS līmeņa priekšnosacījumus.

Pēc noklusējuma Linux mašīnās ir iespējota caurspīdīga milzīga lapa (THP), kas slikti mijiedarbojas ar Hadoop darba slodzēm, un tas pasliktina kopas kopējo veiktspēju. Tāpēc mums tas ir jāatspējo, lai sasniegtu optimālu veiktspēju, izmantojot šādu atbalss komandu.

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

Pēc noklusējuma vm.swappiness vērtība ir 30 vai 60 lielākajai daļai Linux mašīnu.

# sysctl vm.swappiness

Hadoop serveriem nav ieteicams izmantot lielāku ātrumu, jo tas var izraisīt ilgstošas atkritumu savākšanas pauzes. Ar augstāku mainīguma vērtību datus var saglabāt kešatmiņā, lai mainītu atmiņu, pat ja mums ir pietiekami daudz atmiņas. Samazinot ātrumu, fiziskā atmiņa var saturēt vairāk atmiņas lapu.

# sysctl vm.swappiness=1

Vai arī varat atvērt failu /etc/sysctl.conf un beigās pievienot "vm.swappiness = 1" .

vm.swappiness=1

Katram Hadoop serverim būs sava atbildība par to, ka tajā darbojas vairāki pakalpojumi (dēmoni). Visi serveri bieži sazināsies savā starpā dažādiem mērķiem.

Piemēram, Datanode nosūta sirdsdarbību Namenode ik pēc 3 sekundēm, lai Namenode pārliecinātos, ka Datanode ir dzīvs.

Ja visa saziņa notiek starp dēmoniem dažādos serveros, izmantojot ugunsmūri, tas Hadoop būs papildu slogs. Tāpēc vislabāk ir atspējot ugunsmūri atsevišķos klastera serveros.

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

Ja mēs paturēsim iespējotu SELinux, tas radīs problēmas, instalējot Hadoop. Tā kā Hadoop ir klastera skaitļošana, Cloudera Manager sasniegs visus klastera serverus, lai instalētu Hadoop un tā pakalpojumus, un tas vajadzības gadījumā izveidos nepieciešamos pakalpojumu direktorijus.

Ja SELinux ir iespējots, tas neļaus Cloudera Manager pārvaldīt instalēšanu, kā vēlas. Tātad, SELinux iespējošana būs šķērslis Hadoop un tas radīs veiktspējas problēmas.

SELinux statusu var pārbaudīt, izmantojot tālāk norādīto komandu.

# sestatus

Tagad atveriet failu/etc/selinux/config un atspējojiet SELINUX, kā parādīts.

SELinux=disabled

Pēc SELinux atspējošanas sistēma jāpārstartē, lai tā būtu aktīva.

# reboot

Hadoop klasterī visiem serveriem jābūt laika sinhronizētiem, lai izvairītos no pulksteņa nobīdes kļūdām. RHEL/CentOS 7 hronogrāfs ir iebūvēts tīkla pulksteņa/laika sinhronizācijai, taču Cloudera iesaka izmantot NTP.

Mums jāinstalē un jākonfigurē NTP. Pēc instalēšanas pārtrauciet ‘chronyd’ un atspējojiet. Tā kā, ja serverī darbojas gan ntpd, gan chronyd, Cloudera Manager apsvērs chronyd laika sinhronizācijai, tad tas radīs kļūdu pat tad, ja mums ir laiks sinhronizēts caur ntp.

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

Kā mēs jau minējām iepriekš, mums nav nepieciešams hronīds aktīvs, jo mēs izmantojam ntpd. Pārbaudiet hronona statusu, ja tas darbojas, apturiet un atspējojiet. Pēc noklusējuma chronyd tiek apturēts, ja vien mēs to neuzsākam pēc OS instalēšanas, tikai mums ir jāatspējo drošākai pusei.

# systemctl status chronyd
# systemctl disable chronyd

Mums ir jāiestata resursdatora nosaukums ar FQDN (Fully Qualified Domain Name). Katram serverim jābūt unikālam kanoniskajam nosaukumam. Lai atrisinātu resursdatora nosaukumu, mums ir jākonfigurē DNS vai/etc/hosts. Šeit mēs konfigurēsim/etc/hosts.

Katra servera IP adrese un FQDN jāievada visu serveru mapē/etc/hosts. Tad tikai Cloudera Manager var sazināties ar visiem serveriem ar tā resursdatora nosaukumu.

# hostnamectl set-hostname master1.linux-console.net

Pēc tam konfigurējiet failu/etc/hosts. Piemēram: - Ja mums ir 5 mezglu kopas ar 2 meistariem un 3 darbiniekiem, mēs varam konfigurēt/etc/hosts, kā norādīts zemāk.

Tā kā Hadoop sastāv no Java, visiem resursdatoriem Java jāinstalē ar atbilstošu versiju. Šeit mums būs OpenJDK. Pēc noklusējuma Cloudera Manager instalēs OracleJDK, taču Cloudera iesaka izmantot OpenJDK.

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

Hadoop drošība un sacietēšana

Šajā sadaļā mēs apskatīsim Harden Hadoop vides drošību ...

Automātiski uzstādot “autofs”, iespējams automātiski uzstādīt fiziskas ierīces, piemēram, USB, CD/DVD. Lietotājs ar fizisku piekļuvi var pievienot savu USB vai jebkuru datu nesēju, lai piekļūtu ievietotajiem datiem. Izmantojiet tālāk norādītās komandas, lai pārbaudītu, vai tā ir atspējota vai nē, ja tā nav atspējota.

# systemctl disable autofs
# systemctl is-enabled autofs

Grub konfigurācijas failā ir kritiska informācija par sāknēšanas iestatījumiem un akreditācijas dati, lai atbloķētu sāknēšanas opcijas. Grub konfigurācijas fails “grub.cfg” atrodas/boot/grub2, un tas ir saistīts kā /etc/grub2.conf un nodrošina, ka grub.cfg pieder root lietotājam.

# cd /boot/grub2

Izmantojiet zemāk esošo komandu, lai pārbaudītu, vai Uid un Gid ir 0/root, un ‘grupai’ vai ‘citai’ nedrīkst būt nekādas atļaujas.

# stat /boot/grub2/grub.cfg

Izmantojiet zemāk esošo komandu, lai noņemtu atļaujas citiem lietotājiem un grupām.

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

Šis iestatījums ļauj izvairīties no citas neatļautas servera pārstartēšanas. ti, servera pārstartēšanai ir nepieciešama parole. Ja tas nav iestatīts, nesankcionēti lietotāji var palaist serveri un veikt izmaiņas sāknēšanas nodalījumos.

Izmantojiet zemāk esošo komandu, lai iestatītu paroli.

# grub2-mkpasswd-pbkdf2

Pievienojiet iepriekš izveidoto paroli failā /etc/grub.d/01_users.

Pēc tam atkārtoti ģenerējiet grub konfigurācijas failu.

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

Prelink ir programmatūra, kas var palielināt servera neaizsargātību, ja ļaunprātīgi lietotāji var apdraudēt tādas parastās bibliotēkas kā libc.

Izmantojiet zemāk esošo komandu, lai to noņemtu.

# yum remove prelink

Mums vajadzētu apsvērt iespēju atspējot dažus pakalpojumus/protokolus, lai izvairītos no iespējamiem uzbrukumiem.

# systemctl disable <service name>

  • Atspējot tīkla pakalpojumus - pārliecinieties, ka tīkla pakalpojumi - nav iespējota maksa, dienas laiks, izmetums, atbalss un laiks. Šie tīkla pakalpojumi ir paredzēti atkļūdošanai un testēšanai, ieteicams tos atspējot, tādējādi samazinot attālo uzbrukumu.
  • Atspējot TFTP un FTP - abi protokoli neatbalstīs datu vai akreditācijas datu konfidencialitāti. Labākā prakse nav servera, ja vien tas nav skaidri pieprasīts. Pārsvarā šie protokoli ir instalēti un iespējoti failu serveros.
  • Atspējot DHCP - DHCP ir protokols, kas dinamiski piešķirs IP adresi. Lai izvairītos no iespējamiem uzbrukumiem, ieteicams to atspējot, ja vien tas nav DHCP serveris.
  • Atspējot HTTP - HTTP ir protokols, ko var izmantot tīmekļa satura mitināšanai. Papildus galvenajiem/pārvaldības serveriem (kur jākonfigurē WebUI pakalpojumiem, piemēram, CM, Hue utt.), Mēs varam atspējot HTTP citos darbinieku mezglos, lai izvairītos no iespējamiem uzbrukumiem.

Kopsavilkums

Mēs esam izgājuši servera sagatavošanu, kas sastāv no Cloudera Hadoop priekšnosacījumiem un drošības uzlabošanas. Cloudera definētie OS līmeņa priekšnosacījumi ir obligāti, lai vienmērīgi instalētu Hadoop. Parasti, izmantojot CIS etalonu, tiks sagatavots cietināšanas skripts, kas tiks izmantots reāllaika revīzijai un neatbilstību novēršanai.

CentOS/RHEL 7 minimālā instalācijā ir instalētas tikai pamatfunkcijas/programmatūra, tādējādi izvairoties no nevēlama riska un ievainojamības. Lai gan tā ir minimāla instalēšana, pirms Hadoop instalēšanas tiks veiktas vairākas atkārtotas drošības revīzijas, pat pēc klastera izveidošanas, pirms klastera pārvietošanas uz darbību/ražošanu.