Configuración de requisitos previos de Hadoop y refuerzo de la seguridad-Parte 2

Configuración de requisitos previos de Hadoop y refuerzo de la seguridad-Parte 2

Hadoop Cluster Building. es un proceso paso a paso en el que el proceso comienza desde la compra de los servidores necesarios, el montaje en el rack, el cableado, etc. y la colocación en el centro de datos. Luego, necesitamos instalar el sistema operativo, se puede hacer usando kickstart en el entorno de tiempo real si el tamaño del clúster es grande. Una vez instalado el sistema operativo, debemos preparar el servidor para la instalación de Hadoop y debemos preparar los servidores de acuerdo con las políticas de seguridad de la organización.

Requisitos

  • Mejores prácticas para implementar Hadoop Server en CentOS/RHEL 7-Parte 1

En este artículo, repasaremos los requisitos previos a nivel de sistema operativo recomendados por Cloudera. Además, hemos destacado algunos consejos importantes sobre el refuerzo de la seguridad de acuerdo con CIS Benchmark. para servidores de producción. Este endurecimiento de la seguridad puede ser diferente según los requisitos.

Configuración de los requisitos previos de Cloudera Hadoop

Aquí, discutiremos los requisitos previos de nivel de sistema operativo recomendados por Cloudera.

1. Desactivar la página enorme transparente

De forma predeterminada, la página enorme transparente. ( THP. está habilitada en máquinas Linux que interactúan mal con Hadoop. cargas de trabajo y degrada el rendimiento general de Cluster. Así que necesitamos deshabilitar esto para lograr un rendimiento óptimo usando el siguiente comando echo.

# echo never>/sys/kernel/mm/transparent_hugepage/enabled # echo never>/sys/kernel/mm/transparent_hugepage/defrag  Deshabilitar la página transparente transparente  Desactivar la página enorme transparente Desactivar la página enorme transparente 2. Cambiar el intercambio de VM

De forma predeterminada, vm.swappiness. el valor es 30. o 60. para la mayoría de las máquinas Linux.

# sysctl vm.swappiness  Comprobar el intercambio de VM  Comprobar intercambio de VM Compruebe VM Swappiness freestar.config.enabled_slots.push

No se recomienda tener un valor más alto de swappiness. para Servidores Hadoop. porque puede provocar pausas prolongadas en la recolección de basura. Y, con el valor de intercambio más alto, los datos se pueden almacenar en caché para intercambiar memoria incluso si tenemos suficiente memoria. Bajar el valor de intercambio puede hacer que la memoria física contenga más páginas de memoria.

# sysctl vm.swappiness = 1

O puede abrir el archivo /etc/sysctl.conf. y agregar “vm.swappiness = 1” al final.

vm.swappiness = 1 3. Deshabilitar el firewall

Cada servidor Hadoop tendrá su propia responsabilidad con múltiples servicios ( demonios. en ejecución en ese. Todos los servidores se comunicarán entre sí de manera frecuente para diversos fines.

Por ejemplo, Datanode. enviará un latido a Namenode cada 3 segundos para que Namenode. se asegurará de que Datanode. esté activo.

Si toda la comunicación ocurre entre los demonios a través de diferentes servidores a través del Firewall, será una carga adicional para Hadoop. Por lo tanto, es una buena práctica deshabilitar el firewall en los servidores individuales en el Cluster.

# iptables-save> ~/firewall.rules # systemctl detener firewalld # systemctl deshabilitar el firewall  Desactivar Firewall  Desactivar firewall Deshabilitar Firewall 4. Deshabilitar SELinux

Si mantenemos el SELinux. habilitado, causará problemas al instalar Hadoop. Como Hadoop. es una computación en clúster, Cloudera Manager. llegará a todos los servidores del clúster para instalar Hadoop y sus servicios y creará los directorios de servicios necesarios donde sea necesario.

Si SELinux está habilitado, no permitirá que Cloudera Manager gobierne la instalación como quiera. Entonces, habilitar SELinux será un obstáculo para Hadoop y causará problemas de rendimiento.

Puede verificar el estado de SELinux. usando el siguiente comando.

# sestatus  Verificar el estado de SELinux  Verificar el estado de SELinux Verificar el estado de SELinux

Ahora, abra el archivo /etc/selinux/config. y deshabilite SELINUX. como se muestra.

SELinux = disabled Desactivar SELinux Deshabilitar SELinux Deshabilitar SELinux

Después de deshabilitar SELinux, debe reiniciar el sistema para activarlo.

# reboot 5. Instale los servicios NTP

En Hadoop Cluster. todos los servidores deben estar sincronizados por hora. para evitar errores de compensación del reloj. El RHEL/CentOS 7. tiene chronyd. incorporado para la sincronización del reloj/hora de la red, pero Cloudera recomienda usar NTP.

Necesitamos instalar NTP. y configurarlo. Una vez instalado, detenga “ chronyd. y desactívelo. Porque, si un servidor tiene ntpd. y chronyd. en ejecución, Cloudera Manager considerará chronyd. para la sincronización de la hora, entonces arrojará un error incluso si tenemos tiempo sincronizado a través de ntp.

# yum-y install ntp # systemctl start ntpd # systemctl enable ntpd # systemctl status ntpd  Verificar estado de NTP  Verificar estado NTP Verificar el estado de NTP 6. Desactivar Chronyd

Como mencionamos anteriormente, no es necesario que chronyd. esté activo ya que estamos usando ntpd. Compruebe el estado de chronyd. si se está ejecutando, deténgalo y desactívelo. Por defecto, chronyd. se detiene a menos que lo iniciemos después de la instalación del sistema operativo, solo necesitamos deshabilitarlo para un lado más seguro.

# systemctl status chronyd # systemctl deshabilitar chronyd  Desactivar Chronyd Deshabilitar Chronyd Deshabilitar Chronyd 7. Establecer FQDN (Nombre de dominio completo)

Tenemos que establecer el nombre de host. con FQDN. ( Nombre de dominio completo. . Cada servidor debe tener un nombre canónico único. Para resolver el nombre de host, debemos configurar el DNS o /etc/hosts. Aquí, vamos a configurar /etc/hosts.

La dirección IP y el FQDN de cada servidor deben ingresarse en /etc/hosts. de todos los servidores. Entonces solo Cloudera Manager. puede comunicar todos los servidores con su nombre de host.

# hostnamectl set-hostname master1.tecmint.com

A continuación, configure /etc/hosts. archivo. Por ejemplo:-Si tenemos un clúster de 5 nodos con 2 maestros y 3 trabajadores, podemos configurar /etc/hosts. como se muestra a continuación.

 Configurar nombres de host  Configurar nombres de host Configurar nombres de host 8. Instalar un Java Development Kit (JDK)

Como Hadoop. se compone de Java. todos los hosts deben tener Java. instalado con la versión adecuada. Aquí vamos a tener OpenJDK. De forma predeterminada, Cloudera Manager. instalará OracleJDK. pero Cloudera recomienda tener OpenJDK.

# yum-y install java-1.8.0-openjdk-devel # java-version  Verificar la versión de Java  Verificar la versión de Java Verificar la versión de Java

Seguridad y refuerzo de Hadoop

En esta sección, iremos a la seguridad del entorno Harden Hadoop…

1. Desactivar el montaje automático

El montaje automático ‘ autofs. permite el montaje automático de dispositivos físicos como USB, CD/DVD. El usuario con acceso físico puede conectar su USB o cualquier medio de almacenamiento para acceder a los datos de inserción. Use los siguientes comandos para verificar si está deshabilitado o no, si no, deshabilítelo.

# systemctl deshabilite autofs # systemctl está habilitado autofs Desactivar automounting  Desactivar el montaje automático Desactivar el montaje automático 2. Configuración de arranque seguro

El archivo de configuración grub. contiene información crítica de la configuración de arranque y las credenciales para desbloquear las opciones de arranque. El archivo de configuración de grub ‘ grub.cfg. ubicado en /boot/grub2. y se ha vinculado como /etc/grub2.conf. y asegúrese grub.cfg. es propiedad del usuario root.

# cd/boot/grub2 Verificar archivos Grub Verificar archivos Grub Verificar Grub Archivos

Utilice el siguiente comando para comprobar que Uid. y Gid. son 0/root. y ‘ grupo. u ‘ otros. no deberían tener ningún permiso.

# stat/boot/grub2/grub.cfg Verificar estadísticas del archivo Grub Verificar estadísticas del archivo Grub Comprobar las estadísticas del archivo Grub

Utilice el siguiente comando para eliminar los permisos de otros y grupos.

# chmod og-rwx/boot/grub2/grub.cfg  Eliminar el permiso del archivo Grub  Eliminar el permiso de G rub File Eliminar el permiso del archivo Grub 3. Establecer la contraseña del cargador de arranque

Esta configuración evita otros reinicios no autorizados del servidor. es decir, requiere una contraseña para reiniciar el servidor. Si no está configurado, los usuarios no autorizados pueden iniciar el servidor y pueden realizar cambios en las particiones de inicio.

Utilice el siguiente comando para establecer la contraseña.

# grub2-mkpasswd-pbkdf2 Crear contraseña de cargador de arranque  Crear contraseña de cargador de arranque Cree una contraseña de cargador de arranque

Agregue la contraseña creada anteriormente en el archivo /etc/grub.d/01_users.

 Agregar contraseña de Grub al archivo Agregar contraseña de Grub al archivo Add Grub Password to File

A continuación, vuelva-generar el archivo de configuración de grub.

# grub2-mkconfig>/boot/grub2/grub.cfg  Generar configuración de Grub  Generar configuración de Grub Generar configuración de Grub 4 . Remove Prelink Tool

Prelink. es un programa de software que puede aumentar la vulnerabilidad en un servidor si los usuarios malintencionados pueden comprometer bibliotecas comunes como libc.

Utilice el siguiente comando para eliminarlo.

# yum remove prelink 5. Deshabilitar servicios no deseados

Deberíamos considerar deshabilitar algunos servicios/protocolos para evitar posibles ataques.

# systemctl deshabilitar

  • Deshabilitar servicios de red -Asegúrese de que los servicios de red-cargos, día, descarte, eco, tiempo no estén habilitados. Estos servicios de red son para depuración y prueba, se recomienda deshabilitarlos, lo que puede minimizar el ataque remoto.
  • Deshabilitar TFTP y FTP. ambos protocolos no admitirán la confidencialidad de los datos. o credenciales. Es una buena práctica no tener en el servidor a menos que se requiera explícitamente. La mayoría de estos protocolos se instalan y habilitan en servidores de archivos.
  • Deshabilitar DHCP. DHCP es el protocolo que asignará dinámicamente la dirección IP. Se recomienda deshabilitarlo a menos que sea un servidor DHCP para evitar posibles ataques.
  • Deshabilitar HTTP. HTTP es el protocolo que se puede usar para alojar contenido web. Además de los servidores Master/Management (donde la WebUI de los servicios debe configurarse como CM, Hue, etc.), podemos deshabilitar HTTP en otros nodos trabajadores que pueden evitar los posibles ataques.

Resumen

Hemos pasado por la preparación del servidor, que consta de Prerrequisitos de Cloudera Hadoop. y algo de refuerzo de la seguridad. Los requisitos previos del nivel de sistema operativo definidos por Cloudera son obligatorios para la instalación sin problemas de Hadoop. Por lo general, se preparará un script de refuerzo con el uso del CIS Benchmark y se utilizará para auditar y remediar el incumplimiento en tiempo real.