Configurando pré -requisitos do Hadoop e endurecimento de segurança - Parte 2

Configurando pré -requisitos do Hadoop e endurecimento de segurança - Parte 2

Construção de cluster Hadoop é um processo passo a passo em que o processo começa na compra dos servidores necessários, montando no rack, cabeamento, etc. e colocando em Datacentre. Então precisamos instalar o sistema operacional, isso pode ser feito usando o Kickstart no ambiente em tempo real se o tamanho do cluster for grande. Uma vez instalado o sistema operacional, precisamos preparar o servidor para a instalação do Hadoop e precisamos preparar os servidores de acordo com as políticas de segurança da organização.

Requisitos

  • Melhores práticas para implantar o Hadoop Server no CentOS/Rhel 7 - Parte 1

Neste artigo, passaremos por pré-requisitos no nível do OS recomendados por Cloudera. Além disso, destacamos algumas dicas importantes de endurecimento da segurança de acordo com o CIS Benchmark para servidores de produção. Esses endurecimento da segurança pode ser diferente de acordo com os requisitos.

Configurando pré-requisitos de Cloudera Hadoop

Aqui, discutiremos os pré-requisitos do nível do SO recomendados por Cloudera.

1. Desative uma página enorme transparente

Por padrão, Página enorme transparente (THP) está ativado em máquinas Linux que interagem mal com Hadoop Cargas de trabalho e degrada o desempenho geral do cluster. Portanto, precisamos desativar isso para alcançar o desempenho ideal usando o seguinte comando echo.

# echo nunca>/sys/kernel/mm/transparent_hugepage/habilitado # echo never>/sys/kernel/mm/transparent_hugepage/defrag 
Desative uma página enorme transparente

2. Altere o swappiness da VM

Por padrão, o vm.Swappiness valor é 30 ou 60 Para a maioria das máquinas Linux.

# sysctl vm.Swappiness 
Verifique o swappiness da VM

Tendo um valor mais alto de Swappiness não é recomendado para Hadoop servidores porque pode causar pausas longas de coleta de lixo. E, com o maior valor de swappiness, os dados podem ser armazenados em cache para trocar a memória, mesmo que tenhamos memória suficiente. Menor o valor do swappiness pode fazer memória física para conter mais páginas de memória.

# sysctl vm.Swappiness = 1 

Ou, você pode abrir o arquivo /etc/sysctl.conf e adicione "VM.Swappiness = 1 " no final.

vm.Swappiness = 1 

3. Desative o firewall

Cada servidor Hadoop estará tendo sua própria responsabilidade com vários serviços (Daemons) correndo nisso. Todos os servidores se comunicarão de maneira frequente para vários fins.

Por exemplo, DataNode enviará um batimento cardíaco para Namenode a cada 3 segundos para que Namenode garantirá que o DataNode Está vivo.

Se toda a comunicação acontecer entre os daemons em diferentes servidores via firewall, será um fardo extra para o Hadoop. Portanto, é uma prática recomendada para desativar o firewall nos servidores individuais em cluster.

# iptables-save> ~/firewall.Regras # SystemCtl Stop Firewalld # SystemCtl Desativar firewall 
Desative o firewall

4. Desative o Selinux

Se mantivermos o Selinux ativado, isso causará problemas ao instalar Hadoop. Como Hadoop é uma computação de cluster, Gerente de Cloudera chegará a todos os servidores do cluster para instalar o Hadoop e seus serviços e criará os diretórios de serviço necessários sempre que necessário.

Se o Selinux habilitado, não permitirá que o gerente de Cloudera governasse a instalação como deseja. Portanto, ativar o Selinux será um obstáculo ao Hadoop e causará problemas de desempenho.

Você pode verificar o status de Selinux usando o comando abaixo.

# sestatus 
Verifique o status do Selinux

Agora, abra o /etc/Selinux/Config arquivar e desativar Selinux como mostrado.

Selinux = desativado 
Desative o Selinux

Depois de desativar o Selinux, você precisa reiniciar o sistema para torná -lo ativo.

# reinício 

5. Instale os serviços NTP

Em Cluster Hadoop, Todos os servidores devem ser Tempo sincronizado Para evitar erros de deslocamento do relógio. O RHEL/CENTOS 7 está tendo Chronyd InBuilt for Network Clock/Time Syncronization, mas Cloudera recomenda usar Ntp.

Precisamos instalar Ntp e configure -o. Uma vez instalado, pare 'Chronyde desativar. Porque, se um servidor com os dois ntpd e Chronyd Running, o gerente de cloudera considerará Chronyd Para a sincronização do tempo, ele lançará um erro, mesmo se tivermos tempo sincronizado através do NTP.

# yum -y install ntp # SystemCtl Iniciar ntpd # SystemCtl Ativar NTPD # Systemctl Status ntpd 
Verifique o status do NTP

6. Desative Chronyd

Como mencionamos acima, não precisamos Chronyd ativo como estamos usando ntpd. Verifique o status de Chronyd, Se estiver parado e desativar. Por padrão, Chronyd é parado a menos que até que o iniciemos após a instalação do sistema operacional, apenas precisamos desativar o lado mais seguro.

# status SystemCtl Chronyd # SystemCtl Desativar Chronyd 
Desative Chronyd

7. Definir FQDN (nome de domínio totalmente qualificado)

Temos que definir o nome de anfitrião com Fqdn (Nome de domínio totalmente qualificado). Cada servidor deve estar tendo um nome canônico único. Para resolver o nome do host, precisamos configurar o DNS ou /etc/hosts. Aqui, vamos configurar /etc/hosts.

O endereço IP e o FQDN de cada servidor devem ser inseridos em /etc/hosts de todos os servidores. Então somente Gerente de Cloudera pode comunicar todos os servidores com seu nome de host.

# hostnamectl set-hostname mestre1.Tecmint.com 

Em seguida, configure /etc/hosts arquivo. Por exemplo: - Se tivermos 5 nós, cluster com 2 mestres e 3 trabalhadores, podemos configurar o /etc/hosts como abaixo.

Configure nomes de host

8. Instalando um kit de desenvolvimento Java (JDK)

Como Hadoop é feito de Java, Todos os anfitriões devem estar tendo Java instalado com a versão apropriada. Aqui vamos ter OpenJdk. Por padrão, Gerente de Cloudera instalará Oraclejdk Mas, Cloudera recomenda ter OpenJdk.

# yum -y install java -1.8.0-openjdk-devel # java -version 
Verifique a versão Java

Segurança e endurecimento do Hadoop

Nesta seção, iremos endurecer a segurança do ambiente Hadoop ..

1. Desative a automação

Automação 'Autofs'Permite montagem automática de dispositivos físicos como USB, CD/DVD. O usuário com acesso físico pode anexar seu USB ou qualquer meio de armazenamento ao acesso de dados de inserção. Use os comandos abaixo para verificar se está desativado ou não, se não desativar.

# SystemCtl Desativar Autofs # SystemCTL IS-habilitado Autofs 
Desative a automação

2. Configurações de inicialização segura

O grub O arquivo de configuração contém informações críticas de configurações e credenciais de inicialização para desbloquear opções de inicialização. O arquivo de configuração do grub 'grub.cfg' localizado em /bota/grub2 e está ligado como /etc/grub2.conf e garantir grub.cfg é de propriedade do usuário root.

# CD /BOOT /GRUB2 
Verifique os arquivos Grub

Use o comando abaixo para verificar Uid e Gid são ambos 0/raiz e 'grupo' ou 'outro'Não deve ter permissão.

# stat/boot/grub2/grub.cfg 
Verifique a estatística do arquivo grub

Use o comando abaixo para remover as permissões de outros e grupo.

# CHMOD OG-RWX/BOOT/GRUB2/GRUB.cfg 
Remova a permissão do arquivo Grub

3. Defina a senha do bootloader

Esta configuração evita outras reinicializações não autorizadas do servidor. ou seja, requer uma senha para reiniciar o servidor. Se não estiver definido, os usuários não autorizados podem inicializar o servidor e podem fazer alterações nas partições de inicialização.

Use o comando abaixo para definir a senha.

# GRUB2-MKPASSWD-PBKDF2 
Crie uma senha de bootloader

Adicione a senha criada acima em /etc/grub.d/01_users arquivo.

Adicione a senha do grub ao arquivo

Em seguida, re-genera o arquivo de configuração do GRUB.

# GRUB2-MKCONFIG>/BOOT/GRUB2/GRUB.cfg 
Gerar configuração do GRUB

4. Remova a ferramenta Prelink

Prelink é um programa de software que pode aumentar a vulnerabilidade em um servidor se usuários maliciosos puderem comprometer bibliotecas comuns, como libc.

Use o comando abaixo para removê -lo.

# yum remove o prelink 

5. Desativar serviços indesejados

Devemos considerar desativar alguns serviços/protocolos para evitar possíveis ataques.

# SystemCtl Desativar  
  • Desative os serviços de rede - Certifique -se de. Esses serviços de rede são para depuração e teste, é recomendável desativar o que pode minimizar o ataque remoto.
  • Desativar TFTP e FTP - Ambos o protocolo não apoiarão a confidencialidade dos dados ou credenciais. É prática recomendada não ter no servidor, a menos que seja necessário explicitamente. Principalmente esses protocolos são instalados e ativados em servidores de arquivos.
  • Desative o DHCP - DHCP é o protocolo que alocará dinamicamente o endereço IP. É recomendável desativar, a menos que seja um servidor DHCP para evitar possíveis ataques.
  • Desative http - HTTP é o protocolo que pode ser usado para hospedar conteúdo da web. Além dos servidores mestre/gerenciamento (onde a webui de serviços deve ser configurada como CM, Hue, etc.), podemos desativar o HTTP em outros nós do trabalhador, o que pode evitar os ataques em potencial.

Resumo

Passamos pela preparação do servidor que consiste em Cloudera Hadoop pré-requisitos e algum endurecimento de segurança. Os pré-requisitos do nível do sistema operacional definidos por Cloudera são obrigatórios para a instalação suave do Hadoop. Geralmente, um script de endurecimento será preparado com o uso do benchmark cis e usado para auditar e remediar a não conformidade em tempo real em tempo real.

Em uma instalação mínima de CENTOS/RHEL 7, Somente funcionalidades/software básicos são instalados, isso evitará riscos e vulnerabilidades indesejadas. Embora seja uma instalação mínima, várias iterações de auditoria de segurança serão feitas antes de instalar o Hadoop, mesmo após a construção do cluster, antes de mover o cluster para a operação/produção.