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

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

Edificio de clúster de Hadoop es un proceso paso a paso donde el proceso comienza al comprar los servidores requeridos, montando en el estante, cableado, etc. y colocarse en el centro de datos. Entonces necesitamos instalar el sistema operativo, se puede hacer usando Kickstart en el entorno en tiempo real si el tamaño del clúster es grande. Una vez instalado el sistema operativo, necesitamos preparar el servidor para la instalación de Hadoop y necesitamos preparar los servidores de acuerdo con las políticas de seguridad de la organización.

Requisitos

  • Las mejores prácticas para implementar el servidor Hadoop en CentOS/RHEL 7 - Parte 1

En este artículo, pasaremos por requisitos previos de nivel del sistema operativo recomendado por Cloudera. Además, hemos destacado algunos consejos importantes de endurecimiento de seguridad según el Punto de referencia cis para servidores de producción. Estos endurecimiento de seguridad pueden ser diferentes de acuerdo con los requisitos.

Configuración de los requisitos previos de Cloudera Hadoop

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

1. Desactivar la gran página transparente

Por defecto, Enorme página transparente (THP) está habilitado en máquinas Linux que interactúan mal Hadoop cargas de trabajo y degrada el rendimiento general del clúster. Por lo tanto, debemos deshabilitar esto para lograr un rendimiento óptimo utilizando el siguiente comando de eco.

# echo nunca>/sys/kernel/mm/transparent_hugePage/habilitado # eco nunca>/sys/kernel/mm/transparent_hugePage/defrag 
Desactivar la gran página transparente

2. Cambiar la muestra de VM

Por defecto, el VM.mancha el valor es 30 o 60 Para la mayoría de las máquinas Linux.

# SYSCTL VM.mancha 
Verifique la muestra de VM

Tener un valor más alto de mancha no se recomienda para Hadoop servidores porque puede causar pausas de recolección de basura largas. Y, con el mayor valor de intercambio, los datos se pueden almacenar en caché para intercambiar memoria incluso si tenemos suficiente memoria. Baje 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.confusión y añadir "VM.Swappiness = 1 " al final.

VM.Swappiness = 1 

3. Deshabilitar el firewall

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

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

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

# iptables-Save> ~/Firewall.Reglas # SystemCTL Stop Firewalld # SystemCTL DISHAT Firewall 
Deshabilitar el firewall

4. Deshabilitar Selinux

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

Si Selinux habilita, no permitirá a Cloudera Manager gobernar la instalación como desee. Entonces, habilitar a Selinux será un obstáculo para Hadoop y causará problemas de rendimiento.

Puede verificar el estado de Selinux mediante el siguiente comando.

# sestatus 
Verifique el estado de Selinux

Ahora, abra el /etc/selinux/config archivo y deshabilitar Selinux como se muestra.

Selinux = discapacitado 
Deshabilitar Selinux

Después de deshabilitar Selinux, debe reiniciar el sistema para que se actúe activo.

# reiniciar 

5. Instalar servicios NTP

En Clúster de hadoop, Todos los servidores deberían ser Tiempo sincronizado Para evitar errores de compensación de reloj. El RHEL/CENTOS 7 esta teniendo cronyd incorporado para el reloj de red/sincronización del tiempo, pero Cloudera recomienda usar NTP.

Necesitamos instalar NTP y configurarlo. Una vez instalado, detente 'cronyd'Y deshabilitar. Porque, si un servidor tiene ambos NTPD y cronyd Ejecutando, el gerente de Cloudera considerará cronyd Para la sincronización del tiempo, entonces arrojará un error incluso si tenemos el tiempo sincronizado a través de NTP.

# yum -y instalación ntp # systemCtl iniciar ntpd # systemCTL Habilitar NTPD # systemCtl status ntpd 
Verifique el estado de NTP

6. Deshabilitar Chronyd

Como mencionamos anteriormente, no necesitamos cronyd activo como estamos usando NTPD. Verifique el estado de cronyd, Si está en funcionamiento, detener y deshabilitar. Por defecto, cronyd se detiene a menos que hasta que lo iniciemos después de la instalación del sistema operativo, solo necesitamos deshabilitar por un lado más seguro.

# systemCTL status chronyd # systemCtl deshabilitar Chronyd 
Deshabilitar Chronyd

7. Establecer fqdn (nombre de dominio totalmente calificado)

Tenemos que configurar el nombre de host con FQDN (Nombre de dominio completo). Cada servidor debería tener un nombre canónico único. Para resolver el nombre de host, necesitamos configurar el DNS o /etc/huéspedes. Aquí, vamos a configurar /etc/huéspedes.

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

# hostnamectl set-hostname maestro1.tecmenta.comunicarse 

A continuación, configurar /etc/huéspedes archivo. Por ejemplo: - Si tenemos 5 clúster de nodo con 2 maestros y 3 trabajadores, podemos configurar el /etc/huéspedes como a continuación.

Configurar los nombres de host

8. Instalación de un kit de desarrollo Java (JDK)

Como Hadoop se compone de Java, Todos los anfitriones deberían tener Java instalado con la versión apropiada. Aquí vamos a tener Abrejdk. Por defecto, Gerente de Cloudera instalara Oraclejdk Pero, Cloudera recomienda tener Abrejdk.

# yum -y instalar java -1.8.0-openjdk-devel # java -version 
Verifique la versión de Java

Seguridad y endurecimiento de Hadoop

En esta sección, vamos a endurecer la seguridad ambiental de Hadoop ..

1. Desactivar automoggying

Automuntado 'autofs'Permite el montaje automático de dispositivos físicos como USB, CD/DVD. El usuario con acceso físico puede adjuntar 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 lo desactive.

# SystemCTL Deshabilit AutOfs # SystemCTL AutOfs habilitado para IS 
Desactivar automoggying

2. Configuración segura de arranque

El comida El archivo de configuración contiene información crítica de la configuración y las credenciales de arranque para desbloquear las opciones de arranque. El archivo de configuración grub 'comida.CFG' situado en /Boot/Grub2 y ha sido vinculado como /etc/grub2.confusión y asegurar comida.CFG es propiedad de Root User.

# CD /Boot /Grub2 
Verifique los archivos de grub

Utilice el siguiente comando para verificar Uid y Aturdir son ambos 0/root y 'grupo' o 'otro'No debería tener ningún permiso.

# stat/boot/grub2/grub.CFG 
Verifique la estadística del archivo GRUB

Use el siguiente comando a continuación para eliminar los permisos de otros y grupos.

# chmod og-rwx/boot/grub2/grub.CFG 
Eliminar el permiso del archivo grub

3. Establezca la contraseña del cargador de arranque

Esta configuración evita otros reiniciados 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 hacer cambios en las particiones de arranque.

Use el siguiente comando a continuación para establecer la contraseña.

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

Agregue la contraseña creada anteriormente a /etc/comida.D/01_USERS archivo.

Agregue la contraseña de grub al archivo

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

# grub2-mkconfig>/boot/grub2/grub.CFG 
Generar configuración de grub

4. Eliminar la herramienta Prelink

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

Use el siguiente comando para eliminarlo.

# yum eliminar prelink 

5. Deshabilitar servicios no deseados

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

# SystemCTL Disable  
  • Desactivar los servicios de red - Asegúrese de que los servicios de red: cargos, diurno, descarte, eco, tiempo no están habilitados. Estos servicios de red son para la depuración y las pruebas, se recomienda deshabilitar lo que puede minimizar el ataque remoto.
  • Deshabilitar TFTP y FTP - Ambos protocolo no respaldarán la confidencialidad de los datos o las credenciales. Es la mejor práctica no tener en el servidor a menos que se requiera explícitamente. La mayoría de los protocolos se instalan y habilitan en los servidores de archivos.
  • Deshabilitar DHCP - DHCP es el protocolo que asignará dinámicamente la dirección IP. Se recomienda deshabilitar a menos que sea un servidor DHCP para evitar ataques potenciales.
  • Deshabilitar http - HTTP es el protocolo que se puede usar para alojar contenido web. Además de los servidores maestro/de administración (donde la webui de los servicios debe configurarse como CM, Hue, etc.), podemos deshabilitar HTTP en otros nodos de trabajadores que pueden evitar los posibles ataques.

Resumen

Hemos pasado por la preparación del servidor que consiste en Prerrequisitos de Cloudera Hadoop y un poco de endurecimiento de seguridad. Los requisitos previos del nivel del sistema operativo definidos por Cloudera son obligatorios para la instalación suave de Hadoop. Por lo general, se preparará un script de endurecimiento con el uso del punto de referencia cis y se usará para auditar y remediar el incumplimiento en tiempo real.

En una instalación mínima de CentOS/RHEL 7, Solo se instalan funcionalidades/software básicos, esto evitará el riesgo y las vulnerabilidades no deseadas. A pesar de que es una instalación mínima que se realizarán múltiples iteraciones de auditoría de seguridad antes de instalar Hadoop, incluso después de construir el clúster, antes de mover el clúster a operación/producción.