Configuration de Hadoop avant les requis et le durcissement de la sécurité - Partie 2

Configuration de Hadoop avant les requis et le durcissement de la sécurité - Partie 2

Bâtiment de cluster Hadoop est un processus étape par étape où le processus commence par l'achat des serveurs requis, le montage dans le rack, le câblage, etc. et placer dans le centre de données. Ensuite, nous devons installer le système d'exploitation, cela peut être fait en utilisant Kickstart dans l'environnement en temps réel si la taille du cluster est grande. Une fois le système d'exploitation installé, nous devons préparer le serveur pour l'installation de Hadoop et nous devons préparer les serveurs en fonction des politiques de sécurité de l'organisation.

Exigences

  • Meilleures pratiques pour le déploiement du serveur Hadoop sur Centos / Rhel 7 - Partie 1

Dans cet article, nous passerons par les pré-requis au niveau de l'OS recommandés par Cloudera. De plus, nous avons mis en évidence quelques conseils de durcissement de sécurité importants selon le CIS Benchmark pour les serveurs de production. Ces durcissement de sécurité peuvent être différents en fonction des exigences.

Configuration de Cloudera Hadoop Pre-Requisites

Ici, nous discuterons des pré-requis au niveau du système d'exploitation recommandés par Cloudera.

1. Désactiver une énorme page transparente

Par défaut, Page énorme transparente (THP) est activé dans des machines Linux qui interagissent mal avec Hadoop les charges de travail et il dégrade les performances globales du cluster. Nous devons donc désactiver cela afin d'obtenir des performances optimales en utilisant la commande ECHO suivante.

# echo never> / sys / noyau / mm / transparent_hugepage / activé # echo ne jamais> / sys / noyau / mm / transparent_hugepage / defrag 
Désactiver une énorme page transparente

2. Changer la machine virtuelle VM

Par défaut, le machine virtuelle.swapposité La valeur est 30 ou 60 Pour la plupart des machines Linux.

# VM sysctl.swapposité 
Vérifiez la VM Swappiness

Avoir une valeur plus élevée de swapposité n'est pas recommandé pour Hadoop serveurs car il peut provoquer de longues pauses de collecte des ordures. Et, avec la valeur de swappacité plus élevée, les données peuvent être mises en cache pour échanger de la mémoire même si nous avons suffisamment de mémoire. Abaisser la valeur de swappiness peut faire de la mémoire physique pour contenir plus de pages de mémoire.

# VM sysctl.swappiness = 1 

Ou, vous pouvez ouvrir le fichier / etc / sysctl.confli et ajouter "VM.swappiness = 1 " à la fin.

machine virtuelle.swappiness = 1 

3. Désactiver le pare-feu

Chaque serveur Hadoop aura sa propre responsabilité avec plusieurs services (démons) courir sur ça. Tous les serveurs communiqueront entre eux de manière fréquente à diverses fins.

Par exemple, Code de données enverra un battement de cœur à Namenode pendant toutes les 3 secondes pour que Namenode s'assurera que le Code de données est vivant.

Si toute la communication se produit entre les démons à travers différents serveurs via le pare-feu, ce sera un fardeau supplémentaire pour Hadoop. Il est donc de la meilleure pratique de désactiver le pare-feu dans les serveurs individuels en cluster.

# iptables-save> ~ / pare-feu.Règles # SystemCTL Stop Firewalld # SystemCTL Désactiver le pare-feu 
Désactiver le pare-feu

4. Désactiver SELINUX

Si nous gardons le Selinux activé, il entraînera des problèmes lors de l'installation Hadoop. Comme Hadoop est un calcul de cluster, Cloudera Manager Atterira tous les serveurs du cluster pour installer Hadoop et ses services et il créera les répertoires de service nécessaires partout où il est nécessaire.

Si SELINUX a activé, il ne permettra pas à Cloudera Manager pour gouverner l'installation comme elle le souhaite. Ainsi, l'activation de Selinux sera un obstacle à Hadoop et cela entraînera des problèmes de performance.

Vous pouvez vérifier l'état de Selinux en utilisant la commande ci-dessous.

# Sestatus 
Vérifiez l'état de SELINUX

Maintenant, ouvrez le / etc / selinux / config dossier et désactiver Selinux comme montré.

Selinux = handicapé 
Désactiver SELINUX

Après avoir désactivé Selinux, vous devez redémarrer le système pour le rendre actif.

# Redémarrer 

5. Installer les services NTP

Dans Cluster Hadoop, Tous les serveurs doivent être Temps synchronisé Pour éviter les erreurs de décalage d'horloge. Le Rhel / centos 7 est ayant chronyd Intruit pour la synchronisation de l'horloge / temps du réseau, mais Cloudera recommande d'utiliser NTP.

Nous devons installer NTP et le configurer. Une fois installé, arrêtez-vouschronyd'et désactiver. Parce que, si un serveur a les deux NTPD et chronyd Courir, Cloudera Manager envisagera chronyd Pour la synchronisation du temps, alors il lancera une erreur même si nous avons le temps synchronisé via NTP.

# yum -y install ntp # systemctl start ntpd # systemctl activer ntpd # statut systemctl status ntpd 
Vérifier l'état du NTP

6. Désactiver Chronyd

Comme nous l'avons mentionné ci-dessus, nous n'avons pas besoin chronyd actif comme nous utilisons NTPD. Vérifiez l'état de chronyd, S'il fonctionne, s'arrête et désactiver. Par défaut, chronyd est arrêté à moins que nous le démarrons après l'installation du système d'exploitation, nous devons simplement désactiver le côté plus sûr.

# SystemCTL Status Chronyd # SystemCTL Disable Chronyd 
Désactiver Chronyd

7. Définir FQDN (nom de domaine entièrement qualifié)

Nous devons définir le nom d'hôte avec Fqdn (Nom de domaine complet). Chaque serveur doit avoir un nom canonique unique. Pour résoudre le nom d'hôte, soit nous devons configurer le DNS ou / etc / hôtes. Ici, nous allons configurer / etc / hôtes.

L'adresse IP et le FQDN de chaque serveur doivent être entrés dans / etc / hôtes de tous les serveurs. Alors seulement Cloudera Manager peut communiquer tous les serveurs avec son nom d'hôte.

# hostnamectl set-hostname maître1.Tecmint.com 

Ensuite, configurez / etc / hôtes déposer. Par exemple: - Si nous avons un cluster de 5 nœuds avec 2 maîtres et 3 travailleurs, nous pouvons configurer le / etc / hôtes comme ci-dessous.

Configurer les noms d'hôte

8. Installation d'un kit de développement Java (JDK)

Comme Hadoop est constitué de Java, Tous les hôtes devraient avoir Java installé avec la version appropriée. Ici nous allons avoir Openjdk. Par défaut, Cloudera Manager va installer Oraclejdk Mais, Cloudera recommande d'avoir Openjdk.

# yum -y installer java-1.8.0-openjdk-devel # java -version 
Vérifiez la version Java

Sécurité et durcissement de Hadoop

Dans cette section, nous allons durcir la sécurité de l'environnement Hadoop…

1. Désactiver la constante automobile

Automatiquement 'autof'Permet le montage automatique des appareils physiques comme USB, CD / DVD. L'utilisateur ayant un accès physique peut attacher son support USB ou tout milieu de stockage pour accéder aux données d'insertion. Utilisez les commandes ci-dessous pour vérifier si elle est désactivée ou non, sinon le désactiver.

# SystemCTL Désactiver AutoFS # SystemCTL IS-ALATIVE AUTOFS 
Désactiver la constante automobile

2. Secure Paramètres de démarrage

Le ver Le fichier de configuration contient des informations critiques des paramètres de démarrage et des informations d'identification pour déverrouiller les options de démarrage. Le fichier de configuration grub 'ver.CFG' situé à / boot / grub2 Et il a été lié comme / etc / grub2.confli et assurer ver.CFG appartient à l'utilisateur racine.

# CD / boot / grub2 
Vérifiez les fichiers GRUB

Utilisez la commande ci-dessous pour vérifier Uid et Gid sont les deux 0 / root et 'groupe' ou 'autre'ne devrait pas avoir d'autorisation.

# stat / boot / grub2 / grub.CFG 
Vérifier la statistique du fichier de grub

Utilisez la commande ci-dessous pour supprimer les autorisations de l'autre et groupe.

# chmod og-rwx / boot / grub2 / grub.CFG 
Supprimer l'autorisation du fichier de grub

3. Définir le mot de passe du chargeur de démarrage

Ce paramètre évite d'autres redémarrages non autorisés du serveur. c'est-à-dire qu'il nécessite un mot de passe pour redémarrer le serveur. S'il n'est pas défini, les utilisateurs non autorisés peuvent démarrer le serveur et apporter des modifications aux partitions de démarrage.

Utilisez la commande ci-dessous pour définir le mot de passe.

# grub2-mkpasswd-pbkdf2 
Créer un mot de passe de chargeur de démarrage

Ajouter le mot de passe créé ci-dessus à / etc / grub.D / 01_USERS déposer.

Ajouter un mot de passe Grub au fichier

Ensuite, réinterrelez le fichier de configuration de Grub.

# grub2-mkconfig> / boot / grub2 / grub.CFG 
Générer une configuration de grub

4. Supprimer l'outil Prelink

Pré-lilink est un logiciel qui peut augmenter la vulnérabilité d'un serveur si les utilisateurs malveillants peuvent compromettre les bibliothèques communes telles que libc.

Utilisez la commande ci-dessous pour le supprimer.

# yum supprimez prelink 

5. Désactiver les services indésirables

Nous devons envisager de désactiver certains services / protocoles pour éviter les attaques potentielles.

# SystemCTL Désactiver  
  • Désactiver les services réseau - Assurez-vous que les services réseau - frais, jour, défaussez, écho, le temps n'est pas activé. Ces services de réseau sont destinés à déboguer et à tester, il est recommandé de désactiver ce qui peut minimiser l'attaque distante.
  • Désactiver TFTP et FTP - Le protocole ne soutiendra pas la confidentialité des données ou des informations d'identification. Il est de la meilleure pratique de ne pas avoir dans le serveur à moins que cela ne soit requis explicitement. La plupart des protocoles sont installés et activés sur les serveurs de fichiers.
  • Désactiver le DHCP - DHCP est le protocole qui allouera dynamiquement l'adresse IP. Il est recommandé de désactiver à moins qu'il s'agisse d'un serveur DHCP pour éviter les attaques potentielles.
  • Désactiver http - HTTP est le protocole qui peut être utilisé pour héberger du contenu Web. Outre les serveurs de maîtrise / gestion (où les webui des services doivent être configurés comme CM, Hue, etc.), nous pouvons désactiver HTTP sur d'autres nœuds de travailleurs qui peuvent éviter les attaques potentielles.

Résumé

Nous avons suivi la préparation du serveur qui se compose de Cloudera Hadoop pré-requis Et un durcissement de sécurité. Le niveau de système d'exploitation pré-requis défini par Cloudera est obligatoire pour l'installation fluide de Hadoop. Habituellement, un script de durcissement sera préparé avec l'utilisation de la référence CIS et utilisé pour auditer et corriger la non-conformité en temps réel.

Dans une installation minimale de Centos / Rhel 7, Seules les fonctionnalités / logiciels de base sont installés, cela évitera les risques et les vulnérabilités indésirables. Même s'il s'agit d'une installation minimale, plusieurs itérations de l'audit de sécurité seront effectuées avant d'installer Hadoop, même après la construction du cluster, avant de déplacer le cluster en fonctionnement / production.