GNU/Linux >> Tutoriels Linux >  >> Cent OS

Configuration des prérequis Hadoop et renforcement de la sécurité – Partie 2

Création d'un 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 Datacenter. 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 conformément aux politiques de sécurité de l'organisation.

Exigences

  • Bonnes pratiques pour le déploiement d'un serveur Hadoop sur CentOS/RHEL 7 – Partie 1

Dans cet article, nous passerons 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 de renforcement de la sécurité selon le CIS Benchmark 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ésactiver 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 du cluster. Nous devons donc désactiver cela afin d'obtenir des performances optimales à l'aide de la commande echo suivante.

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

2. Modifier l'échange de 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 échanger de la mémoire même si nous avons suffisamment de mémoire. Réduire la valeur de swappines 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 ajoutez "vm.swappiness=1" à la fin.

vm.swappiness=1

3. Désactiver le pare-feu

Chaque serveur Hadoop aura sa propre responsabilité avec plusieurs services (démons ) en cours d'exécution sur cela. Tous les serveurs communiqueront entre eux de manière fréquente à des fins diverses.

Par exemple, Datanode enverra un battement de coeur à 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, cela représentera une charge supplémentaire pour Hadoop. Il est donc recommandé de désactiver le pare-feu sur les serveurs individuels du cluster.

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

4. Désactiver SELinux

Si nous gardons le SELinux activé, cela entraînera des problèmes lors de l'installation de Hadoop . En tant que Hadoop est un cluster informatique, Cloudera Manager atteindra tous les serveurs du cluster pour installer Hadoop et ses services et créera les répertoires de services nécessaires là où cela sera nécessaire.

Si SELinux est activé, il ne laissera pas Cloudera Manager gérer l'installation comme il le souhaite. Ainsi, l'activation de SELinux sera un obstacle pour Hadoop et cela 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 fichier /etc/selinux/config fichier et désactiver SELINUX comme indiqué.

SELinux=disabled

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

# reboot

5. Installer les services NTP

Dans Cluster Hadoop , tous les serveurs doivent être synchronisés pour éviter les erreurs de décalage d'horloge. Le RHEL/CentOS 7 a 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 à la fois ntpd et chronyde en cours d'exécution, Cloudera Manager prendra en compte chronyd pour la synchronisation de l'heure, une erreur sera générée même si l'heure est synchronisée via ntp.

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

6. Désactiver Chronyd

Comme nous l'avons mentionné ci-dessus, nous n'avons pas besoin de chronyd actif car nous utilisons ntpd . Vérifier le statut de chronyd , s'il est en cours d'exécution, arrêtez et désactivez. Par défaut, chronyd est arrêté sauf si nous le démarrons après l'installation du système d'exploitation, nous devons simplement le désactiver pour plus de sécurité.

# systemctl status chronyd
# systemctl disable chronyd

7. Définir FQDN (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 ou /etc/hosts . Ici, nous allons configurer /etc/hosts .

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

# hostnamectl set-hostname master1.tecmint.com

Ensuite, configurez /etc/hosts dossier. Par exemple :- Si nous avons un cluster de 5 nœuds avec 2 maîtres et 3 travailleurs, nous pouvons configurer le fichier /etc/hosts comme ci-dessous.

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

En tant que Hadoop est composé de Java , tous les hôtes doivent avoir Java installé avec la version appropriée. Ici, nous allons avoir OpenJDK . Par défaut, Cloudera Manager installera OracleJDK mais, Cloudera recommande d'avoir OpenJDK .

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

Sécurité et renforcement d'Hadoop

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

1. Désactiver le montage automatique

Montage automatique de 'autofs ‘ permet le montage automatique de périphériques physiques tels que USB, CD/DVD. L'utilisateur disposant d'un accès physique peut connecter sa clé USB ou tout 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 désactivez-le.

# systemctl disable autofs
# systemctl is-enabled autofs

2. Paramètres de démarrage sécurisé

La la bouffe 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é en tant que /etc/grub2.conf et assurez-vous que grub.cfg appartient à l'utilisateur root.

# cd /boot/grub2

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

# 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éfinir 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 dans /etc/grub.d/01_users fichier.

Ensuite, regénérez le fichier de configuration grub.

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

4. Supprimer l'outil de pré-lien

Pré-lien 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ésactiver les services indésirables

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

# systemctl disable <service name>
  • Désactiver les services réseau – Assurez-vous que les services réseau – frais, jour, rejet, écho, 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 – Tant le protocole ne prendra pas en charge la confidentialité des données ou des informations d'identification. Il est recommandé de ne pas en avoir dans le serveur, sauf si cela est explicitement requis. La plupart du temps, ces protocoles sont installés et activés sur les serveurs de fichiers.
  • Désactiver DHCP – DHCP est le protocole qui allouera 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ù WebUI des services doivent être configurés comme CM, Hue, etc.), nous pouvons désactiver HTTP sur d'autres nœuds de travail, ce qui peut éviter les attaques potentielles.

Résumé

Nous avons parcouru 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 renforcement sera préparé avec l'utilisation du Benchmark 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 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 exploitation/production.


Cent OS
  1. Configurer NTP sur Centos et Ubuntu

  2. Top 7 des conseils de renforcement de la sécurité pour le serveur CentOS 8 / RHEL 8

  3. Configuration d'un serveur et d'un client NFS sur CentOS 7.2

  4. Renforcement de la sécurité SSL dans Apache, Dovecot et Postfix

  5. Installation et configuration de Php et Nginx sur Ubuntu 20.04

Comment installer et configurer Cloudera Manager sur CentOS/RHEL 7 - Partie 3

Configuration des prérequis Hadoop et renforcement de la sécurité – Partie 2

Qu'est-ce que l'automatisation et la gestion de la configuration avec CHEF - Partie 1

Comment installer et configurer Hive avec une haute disponibilité – Partie 7

Configuration de la base de données MySQL cPanel et de l'utilisateur

Présentation des types de bases de données distribuées et de la sécurité