GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configuración de requisitos previos de Hadoop y fortalecimiento de la seguridad:parte 2

Creación de clústeres de Hadoop es un proceso paso a paso donde el proceso comienza con la compra de los servidores necesarios, el montaje en el bastidor, 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 en 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

  • Prácticas recomendadas para implementar el servidor Hadoop en CentOS/RHEL 7:parte 1

En este artículo, repasaremos los requisitos previos a nivel del sistema operativo recomendados por Cloudera . Además, hemos destacado algunos consejos importantes sobre el fortalecimiento de la seguridad de acuerdo con el CIS Benchmark. para servidores de producción. Estos endurecimientos de seguridad pueden ser diferentes según los requisitos.

Configurar los requisitos previos de Cloudera Hadoop

Aquí, analizaremos los requisitos previos a nivel del sistema operativo recomendados por Cloudera .

1. Desactivar página enorme transparente

De forma predeterminada, Página enorme transparente (THP ) está habilitado en máquinas Linux que interactúan mal con Hadoop cargas de trabajo y degrada el rendimiento general de Cluster. Por lo tanto, debemos deshabilitar esto para lograr un rendimiento óptimo con el siguiente comando de eco.

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

2. Cambiar el intercambio de máquinas virtuales

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

# sysctl vm.swappiness

Tener un mayor valor de intercambio no se recomienda para Hadoop servidores porque puede causar largas pausas en la recolección de basura. Y, con el valor de capacidad de intercambio más alto, los datos se pueden almacenar en caché para intercambiar memoria incluso si tenemos suficiente memoria. Reducir el valor de swappiness 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 agrega "vm.swappiness=1" al final.

vm.swappiness=1

3. Desactivar cortafuegos

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

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

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 Cluster.

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

4. Deshabilitar SELinux

Si mantenemos el SELinux habilitado, causará problemas al instalar Hadoop . Como Hadoop es un clúster de computación, 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 controle la instalación como quiera. Por lo tanto, habilitar SELinux será un obstáculo para Hadoop y causará problemas de rendimiento.

Puede comprobar el estado de SELinux usando el siguiente comando.

# sestatus

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

SELinux=disabled

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

# reboot

5. Instalar servicios NTP

En clúster de Hadoop , todos los servidores deben estar sincronizados para evitar errores de desplazamiento del reloj. El RHEL/CentOS 7 está teniendo chronyd incorporado para la sincronización de hora/reloj de red, pero Cloudera recomienda usar NTP .

Necesitamos instalar NTP y configurarlo. Una vez instalado, detenga 'chronyd ' y deshabilitar. Porque, si un servidor que tiene ambos ntpd y cronyd ejecutándose, Cloudera Manager considerará chronyd para la sincronización de la hora, arrojará un error incluso si tenemos la hora sincronizada a través de ntp.

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

6. Deshabilitar Chronyd

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

# systemctl status chronyd
# systemctl disable chronyd

7. Establecer FQDN (Nombre de dominio completo)

Tenemos que configurar el hostname con FQDN (Nombre de dominio completo ). Cada servidor debe tener un nombre canónico único. Para resolver el nombre de host, necesitamos 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 expediente. 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.

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

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

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

Seguridad y endurecimiento de Hadoop

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

1. Desactivar montaje automático

Automontaje '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, desactívelo.

# systemctl disable autofs
# systemctl is-enabled autofs

2. Configuración de arranque seguro

La comida El archivo de configuración contiene información crítica sobre 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 de grub.cfg es propiedad del usuario root.

# cd /boot/grub2

Use el siguiente comando para verificar Uid y Gid ambos son 0/raíz y 'grupo ' o 'otro ' no debería tener ningún permiso.

# stat /boot/grub2/grub.cfg

Use el siguiente comando para eliminar permisos de otros y grupos.

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

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 realizar cambios en las particiones de inicio.

Utilice el siguiente comando para establecer la contraseña.

# grub2-mkpasswd-pbkdf2

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

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

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

4. Quitar herramienta de enlace previo

Preenlace 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 remove prelink

5. Deshabilitar servicios no deseados

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

# systemctl disable <service name>
  • Desactivar 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 para minimizar el ataque remoto.
  • Deshabilitar TFTP y FTP – Tanto el protocolo no admitirá la confidencialidad de los datos ni de las credenciales. Es una buena práctica no tener en el servidor a menos que se requiera explícitamente. La mayoría de estos protocolos están instalados y habilitados en 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 posibles ataques.
  • Deshabilitar HTTP – HTTP es el protocolo que se puede utilizar para alojar contenido web. Además de los servidores maestros/de administración (donde se configurará la WebUI de los servicios como CM, Hue, etc.), podemos deshabilitar HTTP en otros nodos de trabajo que pueden evitar posibles ataques.

Resumen

Hemos realizado la preparación del servidor, que consta de requisitos previos de Cloudera Hadoop. y algo de refuerzo de la seguridad. Los requisitos previos del nivel del 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 de CIS Benchmark y se utilizará 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á riesgos y vulnerabilidades no deseados. Aunque se trata de una instalación mínima, se realizarán varias iteraciones de auditoría de seguridad antes de instalar Hadoop, incluso después de construir el clúster, antes de pasar el clúster a operación/producción.


Cent OS
  1. Configuración de NTP en Centos y Ubuntu

  2. Configuración de NTP en Centos y Ubuntu

  3. Configuración de un servidor y cliente NFS en CentOS 7.2

  4. Reforzando la seguridad SSL en Apache, Dovecot y Postfix

  5. Instalación y configuración de Php y Nginx en Ubuntu 20.04

Cómo instalar y configurar Cloudera Manager en CentOS/RHEL 7 – Parte 3

Configuración de requisitos previos de Hadoop y fortalecimiento de la seguridad:parte 2

¿Qué es la gestión de la automatización y la configuración con CHEF? Parte 1

Cómo instalar y configurar Hive con alta disponibilidad:parte 7

Configurar la base de datos y el usuario MySQL de cPanel

Descripción general de los tipos de bases de datos distribuidas y la seguridad