Configuració dels requisits previs i l'enduriment de la seguretat de Hadoop - Part 2


Hadoop Cluster Building és un procés pas a pas on el procés comença des de la compra dels servidors necessaris, el muntatge al bastidor, el cablejat, etc. i la col·locació al centre de dades. Aleshores hem d'instal·lar el sistema operatiu, es pot fer amb kickstart a l'entorn en temps real si la mida del clúster és gran. Un cop instal·lat el sistema operatiu, hem de preparar el servidor per a la instal·lació de Hadoop i hem de preparar els servidors d'acord amb les polítiques de seguretat de l'organització.

  • Pràctiques recomanades per implementar el servidor Hadoop a CentOS/RHEL 7 - Part 1

En aquest article, repassarem els requisits previs del nivell del sistema operatiu recomanats per Cloudera. A més, hem destacat alguns consells importants d'enduriment de la seguretat segons el Benchmark CIS per a servidors de producció. Aquests enduriments de seguretat poden ser diferents segons els requisits.

Configuració dels requisits previs de Cloudera Hadoop

Aquí parlarem dels requisits previs del nivell del sistema operatiu recomanats per Cloudera.

De manera predeterminada, Transparent Huge Page (THP) està habilitat a les màquines Linux que interactuen malament amb les càrregues de treball de Hadoop i degrada el rendiment global del Cluster. Per tant, hem de desactivar-ho per aconseguir un rendiment òptim mitjançant la següent comanda d'eco.

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

Per defecte, el valor de vm.swappiness és 30 o 60 per a la majoria de les màquines Linux.

# sysctl vm.swappiness

No es recomana tenir un valor d'intercanvi més alt per als servidors Hadoop perquè pot provocar llargues pauses de recollida d'escombraries. I, amb el valor d'intercanvi més alt, les dades es poden emmagatzemar a la memòria cau per intercanviar memòria encara que tinguem prou memòria. Baixar el valor d'intercanvi pot fer que la memòria física contingui més pàgines de memòria.

# sysctl vm.swappiness=1

O bé, podeu obrir el fitxer /etc/sysctl.conf i afegir \vm.swappiness=1\ al final.

vm.swappiness=1

Cada servidor Hadoop tindrà la seva pròpia responsabilitat amb diversos serveis (dimonis) que s'executen en això. Tots els servidors es comunicaran entre ells de manera freqüent per a diversos propòsits.

Per exemple, Datanode enviarà un batec cardíac a Namenode cada 3 segons perquè Namenode s'assegurarà que el Datanode estigui viu.

Si tota la comunicació es produeix entre els dimonis a través de diferents servidors mitjançant el tallafoc, serà una càrrega addicional per a Hadoop. Per tant, la millor pràctica és desactivar el tallafoc als servidors individuals del clúster.

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

Si mantenim el SELinux habilitat, provocarà problemes durant la instal·lació de Hadoop. Com que Hadoop és una informàtica de clúster, Cloudera Manager arribarà a tots els servidors del clúster per instal·lar Hadoop i els seus serveis i crearà directoris de serveis necessaris allà on sigui necessari.

Si SELinux està habilitat, no permetrà que Cloudera Manager governi la instal·lació com vulgui. Per tant, habilitar SELinux serà un obstacle per a Hadoop i provocarà problemes de rendiment.

Podeu comprovar l'estat de SELinux mitjançant l'ordre següent.

# sestatus

Ara, obriu el fitxer /etc/selinux/config i desactiveu SELINUX tal com es mostra.

SELinux=disabled

Després de desactivar SELinux, heu de reiniciar el sistema per activar-lo.

# reboot

A Hadoop Cluster, tots els servidors haurien d'estar sincronitzats amb l'hora per evitar errors de desplaçament del rellotge. El RHEL/CentOS 7 té Chronyd incorporat per a la sincronització del rellotge/hora de la xarxa, però Cloudera recomana utilitzar NTP.

Hem d'instal·lar NTP i configurar-lo. Un cop instal·lat, atureu chronyd i desactiveu-lo. Perquè, si un servidor que té ntpd i chronyd en execució, Cloudera Manager considerarà chronyd per a la sincronització de l'hora, llavors generarà un error encara que tinguem l'hora sincronitzada mitjançant ntp.

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

Com hem esmentat anteriorment, no necessitem chronyd active, ja que estem utilitzant ntpd. Comproveu l'estat de chronyd, si s'està executant, atureu-lo i desactiveu-lo. De manera predeterminada, chronyd s'atura tret que fins que l'iniciem després de la instal·lació del sistema operatiu, només hem de desactivar-lo per a un costat més segur.

# systemctl status chronyd
# systemctl disable chronyd

Hem d'establir el nom d'amfitrió amb FQDN (nom de domini totalment qualificat). Cada servidor hauria de tenir un nom canònic únic. Per resoldre el nom d'amfitrió, hem de configurar el DNS o /etc/hosts. Aquí, configurarem /etc/hosts.

L'adreça IP i el FQDN de cada servidor s'han d'introduir a /etc/hosts de tots els servidors. Aleshores, només Cloudera Manager pot comunicar tots els servidors amb el seu nom d'amfitrió.

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

A continuació, configureu el fitxer /etc/hosts. Per exemple: – Si tenim un clúster de 5 nodes amb 2 mestres i 3 treballadors, podem configurar el /etc/hosts com a continuació.

Com que Hadoop està format per Java, tots els amfitrions haurien de tenir Java instal·lat amb la versió adequada. Aquí tindrem OpenJDK. De manera predeterminada, Cloudera Manager instal·larà OracleJDK, però Cloudera recomana tenir OpenJDK.

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

Seguretat i enduriment Hadoop

En aquesta secció, anirem a Harden Hadoop entorn de seguretat...

El muntatge automàtic autofs permet el muntatge automàtic de dispositius físics com USB, CD/DVD. L'usuari amb accés físic pot connectar el seu USB o qualsevol mitjà d'emmagatzematge per accedir a les dades d'inserció. Utilitzeu les ordres següents per verificar si està desactivat o no, si no, desactiveu-lo.

# systemctl disable autofs
# systemctl is-enabled autofs

El fitxer de configuració de grub conté informació crítica sobre la configuració d'arrencada i les credencials per desbloquejar les opcions d'arrencada. El fitxer de configuració de grub grub.cfg situat a /boot/grub2 i s'ha enllaçat com a /etc/grub2.conf i assegureu-vos que grub.cfg és propietat de l'usuari root.

# cd /boot/grub2

Utilitzeu l'ordre següent per comprovar que Uid i Gid són 0/root i grup o altre no haurien de tenir cap permís.

# stat /boot/grub2/grub.cfg

Utilitzeu l'ordre següent per eliminar els permisos d'altres i del grup.

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

Aquesta configuració evita altres reinicis no autoritzats del servidor. és a dir, requereix una contrasenya per reiniciar el servidor. Si no està configurat, els usuaris no autoritzats poden arrencar el servidor i fer canvis a les particions d'arrencada.

Utilitzeu l'ordre següent per establir la contrasenya.

# grub2-mkpasswd-pbkdf2

Afegiu la contrasenya creada anteriorment al fitxer /etc/grub.d/01_users.

A continuació, torneu a generar el fitxer de configuració de grub.

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

Prelink és un programa de programari que pot augmentar la vulnerabilitat en un servidor si els usuaris maliciosos poden comprometre biblioteques comunes com libc.

Utilitzeu l'ordre següent per eliminar-lo.

# yum remove prelink

Hauríem de considerar la desactivació d'alguns serveis/protocols per evitar possibles atacs.

# systemctl disable <service name>

  • Desactiva els serveis de xarxa: assegureu-vos que els serveis de xarxa: càrrecs, dia, descartar, eco, hora no estiguin activats. Aquests serveis de xarxa són per a la depuració i la prova, es recomana desactivar la qual cosa pot minimitzar l'atac remot.
  • Desactiva TFTP i FTP: els dos protocols no admetran la confidencialitat de les dades ni de les credencials. És una bona pràctica no tenir-ho al servidor tret que es requereixi explícitament. La majoria d'aquests protocols s'instal·len i s'activen als servidors de fitxers.
  • Desactiva DHCP: DHCP és el protocol que assignarà dinàmicament l'adreça IP. Es recomana desactivar tret que sigui un servidor DHCP per evitar possibles atacs.
  • Desactiva HTTP: HTTP és el protocol que es pot utilitzar per allotjar contingut web. A part dels servidors mestres/de gestió (on s'han de configurar la WebUI dels serveis com CM, Hue, etc.), podem desactivar HTTP en altres nodes de treball que poden evitar possibles atacs.

Resum

Hem passat per la preparació del servidor que consisteix en els requisits previs de Cloudera Hadoop i una mica d'enduriment de seguretat. Els requisits previs del nivell del sistema operatiu definits per Cloudera són obligatoris per a una instal·lació correcta de Hadoop. Normalment, es prepararà un script d'enduriment amb l'ús del CIS Benchmark i s'utilitzarà per auditar i corregir l'incompliment en temps real.

En una instal·lació mínima de CentOS/RHEL 7, només s'instal·len funcionalitats/programari bàsics, això evitarà riscos i vulnerabilitats no desitjats. Tot i que és una instal·lació mínima, es faran múltiples iteracions d'auditoria de seguretat abans d'instal·lar Hadoop, fins i tot després de crear el clúster, abans de moure el clúster a Operació/Producció.