Configurando pré -requisitos do Hadoop e endurecimento de segurança - Parte 2
- 1712
- 326
- Wendell Legros
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/defragDesative 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.SwappinessVerifique 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 firewallDesative 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.
# sestatusVerifique o status do Selinux
Agora, abra o /etc/Selinux/Config arquivar e desativar Selinux como mostrado.
Selinux = desativadoDesative 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 ntpdVerifique 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 ChronydDesative 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 host8. 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 -versionVerifique 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 AutofsDesative 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 /GRUB2Verifique 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.cfgVerifique 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.cfgRemova 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-PBKDF2Crie uma senha de bootloader
Adicione a senha criada acima em /etc/grub.d/01_users arquivo.
Adicione a senha do grub ao arquivoEm seguida, re-genera o arquivo de configuração do GRUB.
# GRUB2-MKCONFIG>/BOOT/GRUB2/GRUB.cfgGerar 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.
- « Ubuntu 20.10 lançado, agora disponível para download
- Como instalar o hadoop single node cluster (pseudonode) no CentOS 7 »