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 le placement 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 d’Hadoop et nous devons préparer les serveurs conformément aux politiques de sécurité de l’organisation.
Demandes
Dans cet article, nous allons passer en revue les pré-requis au niveau du système d’exploitation recommandés par Cloudera. En outre, nous avons mis en évidence quelques conseils importants sur le renforcement de la sécurité selon le Benchmark CIS pour les serveurs de production. Ces durcissements de sécurité peuvent être différents selon les besoins.
Configuration des prérequis Cloudera Hadoop
Ici, nous discuterons des pré-requis au niveau du système d’exploitation recommandés par Cloudera.
1. Désactivez la grande page transparente
Par défaut, Grande page transparente (THP) est activé sur les machines Linux qui interagissent mal avec Hadoop charges de travail et cela dégrade les performances globales de Cluster. Nous devons donc désactiver cela afin d’obtenir des performances optimales en utilisant les éléments suivants commande echo.
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag
2. Modifier la permutation des VM
Par défaut, le vm.swappiness La valeur est 30 ou 60 pour la plupart des machines Linux.
# sysctl vm.swappiness
Avoir une valeur plus élevée de swappiness n’est pas recommandé pour Hadoop serveurs, car cela peut entraîner de longues pauses de récupération de place. Et, avec la valeur de swappiness plus élevée, les données peuvent être mises en cache pour permuter la mémoire même si nous avons suffisamment de mémoire. Réduire la valeur de permutation peut faire en sorte que la mémoire physique contienne plus de pages de mémoire.
# sysctl vm.swappiness=1
Ou, vous pouvez ouvrir le fichier /etc/sysctl.conf et ajouter "vm.swappiness=1"
à la fin.
vm.swappiness=1
3. Désactivez le pare-feu
Chaque serveur Hadoop aura sa propre responsabilité avec plusieurs services (démons) fonctionnant là-dessus. Tous les serveurs communiqueront entre eux de manière fréquente à des fins diverses.
Par exemple, Datanode enverra un battement de cœur à Namenode toutes les 3 secondes afin que Namenode s’assurera que le Datanode est vivant.
Si toutes les communications se produisent entre les démons sur différents serveurs via le pare-feu, ce sera un fardeau supplémentaire pour Hadoop. Il est donc recommandé de désactiver le pare-feu dans les serveurs individuels du cluster.
# iptables-save > ~/firewall.rules # systemctl stop firewalld # systemctl disable firewall
4. Désactivez SELinux
Si nous gardons le SELinux activé, cela causera des problèmes lors de l’installation Hadoop. Comme Hadoop est un cluster computing, Gestionnaire Cloudera atteindra tous les serveurs du cluster pour installer Hadoop et ses services et il créera les répertoires de services nécessaires chaque fois que nécessaire.
Si SELinux est activé, il ne permettra pas à Cloudera Manager de diriger l’installation comme il le souhaite. Ainsi, l’activation de SELinux sera un obstacle pour Hadoop et entraînera des problèmes de performances.
Vous pouvez vérifier l’état de SELinux en utilisant la commande ci-dessous.
# sestatus
Maintenant, ouvrez le / etc / selinux / config fichier et désactiver SELINUX comme montré.
SELinux=disabled
Après avoir désactivé SELinux, vous devez redémarrer le système pour le rendre actif.
# reboot
5. Installez 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 intégré pour la synchronisation de l’horloge / de l’heure du réseau, mais Cloudera recommande d’utiliser NTP.
Nous devons installer NTP et configurez-le. Une fois installé, arrêtez ‘chronyd‘et désactiver. Parce que, si un serveur ayant les deux ntpd et chronyd en cours d’exécution, Cloudera Manager envisagera chronyd pour la synchronisation de l’heure, cela générera une erreur même si nous avons synchronisé l’heure via ntp.
# yum -y install ntp # systemctl start ntpd # systemctl enable ntpd # systemctl status ntpd
6. Désactivez Chronyd
Comme nous l’avons mentionné ci-dessus, nous n’avons pas besoin chronyd actif comme nous l’utilisons ntpd. Vérifiez l’état de chronyd, s’il est en cours d’exécution, arrêtez et désactivez. Par défaut, chronyd est arrêté à moins que nous ne le démarrions après l’installation du système d’exploitation, il suffit de le désactiver pour un côté plus sûr.
# systemctl status chronyd # systemctl disable chronyd
7. Définissez le nom de domaine complet (nom de domaine complet)
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, nous devons soit configurer le DNS, soit / etc / hosts. Ici, nous allons configurer / etc / hosts.
L’adresse IP et le FQDN de chaque serveur doivent être saisis dans / etc / hosts de tous les serveurs. Alors seulement Gestionnaire Cloudera peut communiquer tous les serveurs avec son nom d’hôte.
# hostnamectl set-hostname master1.tecmint.com
Ensuite, configurez / etc / hosts fichier. Par exemple: – Si nous avons un cluster de 5 nœuds avec 2 maîtres et 3 travailleurs, nous pouvons configurer le / etc / hosts comme ci-dessous.
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, Gestionnaire Cloudera va installer OracleJDK mais, Cloudera recommande d’avoir OpenJDK.
# yum -y install java-1.8.0-openjdk-devel # java -version
Sécurité et renforcement Hadoop
Dans cette section, nous allons aborder la sécurité de l’environnement Harden Hadoop…
1. Désactivez le montage automatique
Montage automatique ‘autofs‘permet le montage automatique de périphériques physiques tels que USB, CD / DVD. Les utilisateurs disposant d’un accès physique peuvent connecter leur clé USB ou tout autre support de stockage pour accéder aux données d’insertion. Utilisez les commandes ci-dessous pour vérifier s’il est désactivé ou non, sinon le désactiver.
# systemctl disable autofs # systemctl is-enabled autofs
2. Paramètres de démarrage sécurisé
le ver Le fichier de configuration contient des informations critiques sur les paramètres de démarrage et les informations d’identification pour déverrouiller les options de démarrage. Le fichier de configuration grub ‘grub.cfg‘ situé à / boot / grub2 et il a été lié comme /etc/grub2.conf et assurer grub.cfg appartient à l’utilisateur root.
# cd /boot/grub2
Utilisez la commande ci-dessous pour vérifier Uid et Gid sont les deux 0 / racine et ‘groupe‘ ou ‘autre‘ne devrait avoir aucune permission.
# stat /boot/grub2/grub.cfg
Utilisez la commande ci-dessous pour supprimer les autorisations des autres et du groupe.
# chmod og-rwx /boot/grub2/grub.cfg
3. Définissez le mot de passe du chargeur de démarrage
Ce paramètre évite tout autre redémarrage non autorisé 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
Ajoutez le mot de passe créé ci-dessus à /etc/grub.d/01_users fichier.
Ensuite, générez à nouveau le fichier de configuration grub.
# grub2-mkconfig > /boot/grub2/grub.cfg
4. Retirez l’outil Prelink
Prelink est un logiciel qui peut augmenter la vulnérabilité d’un serveur si des utilisateurs malveillants peuvent compromettre des bibliothèques courantes telles que libc.
Utilisez la commande ci-dessous pour le supprimer.
# yum remove prelink
5. Désactivez les services indésirables
Nous devrions envisager de désactiver certains services / protocoles pour éviter des attaques potentielles.
# systemctl disable <service name>
- Désactiver les services réseau – Assurez-vous que les services réseau – les frais, la journée, l’élimination, l’écho, l’heure ne sont pas activés. Ces services réseau sont destinés au débogage et aux tests, il est recommandé de les désactiver, ce qui peut minimiser l’attaque à distance.
- Désactiver TFTP et FTP – Le protocole ne prendra pas en charge la confidentialité des données ou des informations d’identification. Il est préférable de ne pas avoir dans le serveur à moins que cela ne soit explicitement requis. La plupart de ces protocoles sont installés et activés sur les serveurs de fichiers.
- Désactiver DHCP – DHCP est le protocole qui attribuera dynamiquement l’adresse IP. Il est recommandé de désactiver sauf s’il s’agit 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 maîtres / de gestion (où l’interface utilisateur Web des services doit être configurée comme CM, Hue, etc.), nous pouvons désactiver HTTP sur d’autres nœuds de travail, ce qui peut éviter les attaques potentielles.
Sommaire
Nous avons passé en revue la préparation du serveur qui consiste en Pré-requis Cloudera Hadoop et un certain renforcement de la sécurité. Les prérequis au niveau du système d’exploitation définis par Cloudera sont obligatoires pour une installation fluide de Hadoop. Habituellement, un script de durcissement sera préparé avec l’utilisation du Benchmark CIS et utilisé pour auditer et corriger les non-conformités 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 vulnérabilités indésirables. Même s’il s’agit d’une installation minimale, plusieurs itérations d’audit de sécurité seront effectuées avant d’installer Hadoop, même après la création du cluster, avant de déplacer le cluster en opération / production.
.