GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configurazione dei prerequisiti Hadoop e rafforzamento della sicurezza – Parte 2

Costruzione del cluster Hadoop è un processo graduale in cui il processo inizia dall'acquisto dei server richiesti, dal montaggio nel rack, dal cablaggio, ecc. e dal posizionamento nel Datacenter. Quindi è necessario installare il sistema operativo, è possibile farlo utilizzando kickstart nell'ambiente in tempo reale se la dimensione del cluster è grande. Una volta installato il sistema operativo, dobbiamo preparare il server per l'installazione di Hadoop e dobbiamo preparare i server in base alle politiche di sicurezza dell'organizzazione.

Requisiti

  • Best practice per la distribuzione di Hadoop Server su CentOS/RHEL 7 – Parte 1

In questo articolo, esamineremo i prerequisiti a livello di sistema operativo consigliati da Cloudera . Inoltre, abbiamo evidenziato alcuni importanti suggerimenti per rafforzare la sicurezza secondo il CIS Benchmark per i server di produzione. Questi rafforzamenti di sicurezza possono essere diversi a seconda dei requisiti.

Configurazione dei prerequisiti di Cloudera Hadoop

Qui discuteremo i prerequisiti a livello di sistema operativo consigliati da Cloudera .

1. Disabilita la pagina enorme trasparente

Per impostazione predefinita, Pagina enorme trasparente (THP ) è abilitato nelle macchine Linux che interagiscono male con Hadoop carichi di lavoro e degrada le prestazioni complessive di Cluster. Quindi dobbiamo disabilitarlo per ottenere prestazioni ottimali usando il seguente comando echo.

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

2. Modifica scambio VM

Per impostazione predefinita, il vm.swappiness il valore è 30 o 60 per la maggior parte delle macchine Linux.

# sysctl vm.swappiness

Avere un valore maggiore di swappiness non è raccomandato per Hadoop server perché può causare lunghe pause di raccolta dei rifiuti. E, con il valore di swappiness più alto, i dati possono essere memorizzati nella cache per scambiare memoria anche se abbiamo memoria sufficiente. Abbassare il valore di swappiness può far sì che la memoria fisica contenga più pagine di memoria.

# sysctl vm.swappiness=1

Oppure puoi aprire il file /etc/sysctl.conf e aggiungi "vm.swappiness=1" alla fine.

vm.swappiness=1

3. Disattiva Firewall

Ogni server Hadoop avrà la propria responsabilità con più servizi (daemon ) in esecuzione su quello. Tutti i server comunicheranno tra loro in modo frequente per vari scopi.

Ad esempio, Datanode invierà un battito cardiaco a Namenode ogni 3 secondi in modo che Namenode farà in modo che il Datanode è vivo.

Se tutta la comunicazione avviene tra i demoni su server diversi tramite il firewall, sarà un onere aggiuntivo per Hadoop. Quindi è consigliabile disabilitare il firewall nei singoli server in Cluster.

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

4. Disabilita SELinux

Se manteniamo il SELinux abilitato, causerà problemi durante l'installazione di Hadoop . Come Hadoop è un cluster computing, Cloudera Manager raggiungerà tutti i server nel cluster per installare Hadoop e i suoi servizi e creerà le directory di servizio necessarie dove richiesto.

Se SELinux è abilitato, non consentirà a Cloudera Manager di governare l'installazione come desidera. Quindi, abilitare SELinux sarà un ostacolo per Hadoop e causerà problemi di prestazioni.

Puoi controllare lo stato di SELinux utilizzando il comando seguente.

# sestatus

Ora apri /etc/selinux/config file e disabilita SELINUX come mostrato.

SELinux=disabled

Dopo aver disabilitato SELinux, è necessario riavviare il sistema per renderlo attivo.

# reboot

5. Installa i servizi NTP

Nel cluster Hadoop , tutti i server devono essere sincronizzazione temporale per evitare errori di offset dell'orologio. RHEL/CentOS 7 sta avendo chronyd integrato per la sincronizzazione dell'ora/orologio di rete, ma Cloudera consiglia di utilizzare NTP .

Dobbiamo installare NTP e configuralo. Una volta installato, interrompi "chronyd ' e disabilita. Perché, se un server ha entrambi ntpd e cronide in esecuzione, Cloudera Manager considererà chronyd per la sincronizzazione dell'ora, verrà generato un errore anche se l'ora è sincronizzata tramite ntp.

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

6. Disattiva Chronyd

Come accennato in precedenza, non abbiamo bisogno di chronyd attivo poiché stiamo usando ntpd . Controlla lo stato di chronyd , se è in esecuzione, ferma e disattiva. Per impostazione predefinita, chronyd viene interrotto a meno che non lo avviiamo dopo l'installazione del sistema operativo, dobbiamo solo disabilitarlo per un lato più sicuro.

# systemctl status chronyd
# systemctl disable chronyd

7. Imposta FQDN (Fully Qualified Domain Name)

Dobbiamo impostare il nome host con FQDN (Nome di dominio completo ). Ogni server dovrebbe avere un nome canonico univoco. Per risolvere il nome host, dobbiamo configurare il DNS o /etc/hosts . Qui configureremo /etc/hosts .

L'indirizzo IP e l'FQDN di ciascun server devono essere inseriti in /etc/hosts di tutti i server. Quindi solo Cloudera Manager può comunicare a tutti i server con il suo hostname.

# hostnamectl set-hostname master1.tecmint.com

Quindi, configura /etc/hosts file. Ad esempio:– Se abbiamo un cluster a 5 nodi con 2 master e 3 worker, possiamo configurare /etc/hosts come di seguito.

8. Installazione di un Java Development Kit (JDK)

Come Hadoop è composto da Java , tutti gli host dovrebbero avere Java installato con la versione appropriata. Qui avremo OpenJDK . Per impostazione predefinita, Gestione Cloudera installerà OracleJDK ma Cloudera consiglia di avere OpenJDK .

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

Sicurezza e rafforzamento Hadoop

In questa sezione, andremo a rafforzare la sicurezza dell'ambiente Hadoop...

1. Disabilita il montaggio automatico

Montaggio automatico di "autofs ' consente il montaggio automatico di dispositivi fisici come USB, CD/DVD. L'utente con accesso fisico può collegare la propria USB o qualsiasi supporto di archiviazione per accedere ai dati inseriti. Utilizza i comandi seguenti per verificare se è disabilitato o meno, in caso contrario disabilitalo.

# systemctl disable autofs
# systemctl is-enabled autofs

2. Impostazioni di avvio sicuro

La larva il file di configurazione contiene informazioni critiche sulle impostazioni di avvio e le credenziali per sbloccare le opzioni di avvio. Il file di configurazione di grub 'grub.cfg ' situato in /boot/grub2 ed è stato collegato come /etc/grub2.conf e assicurati grub.cfg è di proprietà dell'utente root.

# cd /boot/grub2

Utilizza il comando seguente per controllare Uid e Gid sono entrambi 0/root e "gruppo ' o 'altro ' non dovrebbe avere alcun permesso.

# stat /boot/grub2/grub.cfg

Utilizza il comando seguente per rimuovere le autorizzazioni da altri e gruppi.

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

3. Imposta la password del bootloader

Questa impostazione evita altri riavvii non autorizzati del server. cioè, richiede una password per riavviare il server. Se non è impostato, gli utenti non autorizzati possono avviare il server e apportare modifiche alle partizioni di avvio.

Utilizzare il comando seguente per impostare la password.

# grub2-mkpasswd-pbkdf2

Aggiungi la password sopra creata in /etc/grub.d/01_users file.

Quindi, rigenera il file di configurazione di grub.

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

4. Rimuovi lo strumento Prelink

Prelink è un programma software che può aumentare la vulnerabilità in un server se utenti malintenzionati possono compromettere librerie comuni come libc .

Usa il comando seguente per rimuoverlo.

# yum remove prelink

5. Disattiva i servizi indesiderati

Dovremmo considerare la disabilitazione di alcuni servizi/protocolli per evitare potenziali attacchi.

# systemctl disable <service name>
  • Disabilita i servizi di rete – Garantire che i servizi di rete – addebiti, giorno, scarto, eco, ora non siano abilitati. Questi servizi di rete sono per il debug e il test, si consiglia di disabilitarli per ridurre al minimo l'attacco remoto.
  • Disabilita TFTP e FTP – Sia il protocollo non supporterà la riservatezza dei dati né le credenziali. È buona norma non avere nel server a meno che non sia richiesto esplicitamente. Per lo più questi protocolli sono installati e abilitati su Fileserver.
  • Disabilita DHCP – DHCP è il protocollo che allocherà dinamicamente l'indirizzo IP. Si consiglia di disabilitare a meno che non si tratti di un server DHCP per evitare potenziali attacchi.
  • Disabilita HTTP – HTTP è il protocollo che può essere utilizzato per ospitare contenuti web. Oltre ai server Master/Management (dove la WebUI dei servizi deve essere configurata come CM, Hue, ecc.), possiamo disabilitare HTTP su altri nodi di lavoro che possono evitare potenziali attacchi.

Riepilogo

Abbiamo esaminato la preparazione del server che consiste in Prerequisiti Cloudera Hadoop e un certo rafforzamento della sicurezza. I prerequisiti a livello di sistema operativo definiti da Cloudera sono obbligatori per la corretta installazione di Hadoop. Di solito, viene preparato uno script di rafforzamento con l'uso del benchmark CIS e utilizzato per verificare e correggere la non conformità in tempo reale.

In un'installazione minima di CentOS/RHEL 7 , sono installate solo funzionalità/software di base, ciò eviterà rischi e vulnerabilità indesiderati. Anche se si tratta di un'installazione minima, verranno eseguite più iterazioni del controllo di sicurezza prima di installare Hadoop, anche dopo aver creato il cluster, prima di spostare il cluster in Operazione/Produzione.


Cent OS
  1. Impostazione NTP su Centos e Ubuntu

  2. Configurazione di un server e client NFS su CentOS 6.3

  3. Configurazione di un server e client NFS su OpenSUSE 12.2

  4. Rafforzamento della sicurezza SSL in Apache, Dovecot e Postfix

  5. Installazione e configurazione di Grafana in Linux

Come installare e configurare Cloudera Manager su CentOS/RHEL 7 – Parte 3

Configurazione dei prerequisiti Hadoop e rafforzamento della sicurezza – Parte 2

Cos'è l'automazione e la gestione della configurazione con CHEF – Parte 1

Come installare e configurare Hive con disponibilità elevata – Parte 7

Configurazione del database e dell'utente MySQL di cPanel

Panoramica dei tipi di database distribuiti e della sicurezza