GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Einrichten von Hadoop-Voraussetzungen und Sicherheitshärtung – Teil 2

Hadoop-Cluster-Erstellung ist ein schrittweiser Prozess, der mit dem Kauf der erforderlichen Server, der Montage im Rack, der Verkabelung usw. und der Platzierung im Rechenzentrum beginnt. Dann müssen wir das Betriebssystem installieren, dies kann mit Kickstart in der Echtzeitumgebung erfolgen, wenn die Clustergröße groß ist. Sobald das Betriebssystem installiert ist, müssen wir den Server für die Hadoop-Installation vorbereiten und wir müssen die Server gemäß den Sicherheitsrichtlinien der Organisation vorbereiten.

Anforderungen

  • Best Practices für die Bereitstellung von Hadoop Server auf CentOS/RHEL 7 – Teil 1

In diesem Artikel gehen wir die von Cloudera empfohlenen Voraussetzungen auf Betriebssystemebene durch . Außerdem haben wir einige wichtige Tipps zur Sicherheitshärtung gemäß dem CIS-Benchmark hervorgehoben für Produktionsserver. Diese Sicherheitshärtung kann je nach Anforderung unterschiedlich sein.

Voraussetzungen für Cloudera Hadoop einrichten

Hier werden wir die von Cloudera empfohlenen Voraussetzungen auf Betriebssystemebene besprechen .

1. Transparente Huge Page deaktivieren

Standardmäßig Transparent Huge Page (THP ) ist auf Linux-Rechnern aktiviert, die schlecht mit Hadoop interagieren Workloads und verschlechtert die Gesamtleistung des Clusters. Daher müssen wir dies deaktivieren, um mit dem folgenden echo-Befehl eine optimale Leistung zu erzielen.

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

2. Ändern Sie die VM-Auslagerung

Standardmäßig ist die vm.swappiness Wert ist 30 oder 60 für die meisten Linux-Rechner.

# sysctl vm.swappiness

Einen höheren Wert für Austauschfähigkeit haben wird für Hadoop nicht empfohlen Server, da dies zu längeren Pausen bei der Garbage Collection führen kann. Und mit dem höheren Auslagerungswert können Daten im Auslagerungsspeicher zwischengespeichert werden, selbst wenn wir über genügend Speicher verfügen. Ein niedrigerer Auslagerungswert kann dazu führen, dass der physische Speicher mehr Speicherseiten enthält.

# sysctl vm.swappiness=1

Oder Sie können die Datei /etc/sysctl.conf öffnen und fügen Sie "vm.swappiness=1" hinzu am Ende.

vm.swappiness=1

3. Firewall deaktivieren

Jeder Hadoop-Server hat seine eigene Verantwortung mit mehreren Diensten (Daemons ) läuft darauf. Alle Server werden häufig für verschiedene Zwecke miteinander kommunizieren.

Beispiel:Datenknoten sendet alle 3 Sekunden einen Herzschlag an Namenode, sodass Namenode stellt sicher, dass der Datanode lebt.

Wenn die gesamte Kommunikation zwischen den Daemons über verschiedene Server hinweg über die Firewall erfolgt, bedeutet dies eine zusätzliche Belastung für Hadoop. Daher empfiehlt es sich, die Firewall auf den einzelnen Servern im Cluster zu deaktivieren.

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

4. SELinux deaktivieren

Wenn wir die SELinux beibehalten aktiviert ist, führt dies zu Problemen bei der Installation von Hadoop . Als Hadoop ist ein Cluster-Computing, Cloudera Manager erreicht alle Server im Cluster, um Hadoop und seine Dienste zu installieren, und erstellt bei Bedarf die erforderlichen Dienstverzeichnisse.

Wenn SELinux aktiviert ist, kann Cloudera Manager die Installation nicht nach Belieben steuern. Die Aktivierung von SELinux stellt also ein Hindernis für Hadoop dar und führt zu Leistungsproblemen.

Sie können den Status von SELinux prüfen indem Sie den folgenden Befehl verwenden.

# sestatus

Öffnen Sie nun die /etc/selinux/config Datei und deaktivieren Sie SELINUX wie abgebildet.

SELinux=disabled

Nach dem Deaktivieren von SELinux müssen Sie das System neu starten, um es zu aktivieren.

# reboot

5. NTP-Dienste installieren

Im Hadoop-Cluster , sollten alle Server Zeitsynchronisiert sein Takt-Offset-Fehler zu vermeiden. Das RHEL/CentOS 7 hat chronyd eingebaut für Netzwerkuhr/Zeitsynchronisierung, aber Cloudera empfiehlt die Verwendung von NTP .

Wir müssen NTP installieren und konfigurieren Sie es. Stoppen Sie nach der Installation ‘chronyd ‘ und deaktivieren. Denn wenn ein Server sowohl ntpd und chronyd ausgeführt wird, berücksichtigt Cloudera Manager chronyd für die Zeitsynchronisierung, dann wird ein Fehler ausgegeben, selbst wenn wir die Zeit über NTP synchronisiert haben.

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

6. Chronyd deaktivieren

Wie oben erwähnt, brauchen wir chronyd nicht aktiv, da wir ntpd verwenden . Überprüfen Sie den Status von chronyd , wenn es läuft, stoppen und deaktivieren. Standardmäßig chronyd wird angehalten, es sei denn, bis wir es nach der Installation des Betriebssystems starten, müssen wir es nur zur Sicherheit deaktivieren.

# systemctl status chronyd
# systemctl disable chronyd

7. FQDN (Fully Qualified Domain Name) festlegen

Wir müssen den Hostnamen festlegen mit FQDN (Vollqualifizierter Domänenname ). Jeder Server sollte einen eindeutigen kanonischen Namen haben. Um den Hostnamen aufzulösen, müssen wir entweder den DNS oder /etc/hosts konfigurieren . Hier konfigurieren wir /etc/hosts .

IP-Adresse und FQDN jedes Servers sollten in /etc/hosts eingetragen werden aller Server. Dann nur Cloudera Manager kann alle Server mit seinem Hostnamen kommunizieren.

# hostnamectl set-hostname master1.tecmint.com

Als nächstes konfigurieren Sie /etc/hosts Datei. Beispiel:– Wenn wir einen 5-Knoten-Cluster mit 2 Mastern und 3 Workern haben, können wir /etc/hosts konfigurieren wie unten.

8. Installieren eines Java Development Kit (JDK)

Als Hadoop besteht aus Java , sollten alle Hosts Java haben mit der entsprechenden Version installiert. Hier haben wir OpenJDK . Standardmäßig Cloudera Manager installiert OracleJDK Cloudera empfiehlt jedoch, OpenJDK zu verwenden .

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

Hadoop-Sicherheit und -Härtung

In diesem Abschnitt gehen wir auf die Sicherheit der Hadoop-Umgebung ein …

1. Automatisches Mounten deaktivieren

Automatisches Mounten von ‘autofs ‘ ermöglicht das automatische Mounten von physischen Geräten wie USB, CD/DVD. Benutzer mit physischem Zugriff können ihren USB-Stick oder ein beliebiges Speichermedium anschließen, um auf Einfügedaten zuzugreifen. Verwenden Sie die folgenden Befehle, um zu überprüfen, ob es deaktiviert ist oder nicht, wenn nicht, deaktivieren Sie es.

# systemctl disable autofs
# systemctl is-enabled autofs

2. Sichere Starteinstellungen

Der grub Konfigurationsdatei enthält wichtige Informationen zu Starteinstellungen und Anmeldeinformationen zum Entsperren von Startoptionen. Die Grub-Konfigurationsdatei „grub.cfg ‘ befindet sich unter /boot/grub2 und es wurde als /etc/grub2.conf verlinkt und stellen Sie grub.cfg sicher gehört dem Root-Benutzer.

# cd /boot/grub2

Verwenden Sie den folgenden Befehl, um Uid zu überprüfen und Gid sind beide 0/root und ‘Gruppe “ oder „Andere ’ sollte keine Berechtigung haben.

# stat /boot/grub2/grub.cfg

Verwenden Sie den folgenden Befehl, um Berechtigungen von anderen und Gruppen zu entfernen.

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

3. Legen Sie das Bootloader-Passwort fest

Diese Einstellung verhindert andere nicht autorisierte Neustarts des Servers. dh, es erfordert ein Passwort, um den Server neu zu starten. Wenn es nicht gesetzt ist, können nicht autorisierte Benutzer den Server booten und Änderungen an den Boot-Partitionen vornehmen.

Verwenden Sie den folgenden Befehl, um das Passwort festzulegen.

# grub2-mkpasswd-pbkdf2

Fügen Sie das oben erstellte Passwort zu /etc/grub.d/01_users hinzu Datei.

Als nächstes generieren Sie die Grub-Konfigurationsdatei neu.

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

4. Prelink-Tool entfernen

Vorverlinkung ist ein Softwareprogramm, das die Anfälligkeit eines Servers erhöhen kann, wenn böswillige Benutzer gängige Bibliotheken wie libc kompromittieren können .

Verwenden Sie den folgenden Befehl, um es zu entfernen.

# yum remove prelink

5. Unerwünschte Dienste deaktivieren

Wir sollten erwägen, einige Dienste/Protokolle zu deaktivieren, um potenzielle Angriffe zu vermeiden.

# systemctl disable <service name>
  • Netzwerkdienste deaktivieren – Stellen Sie sicher, dass die Netzwerkdienste – Gebühren, Tag, Verwerfen, Echo, Zeit nicht aktiviert sind. Diese Netzwerkdienste dienen zum Debuggen und Testen. Es wird empfohlen, sie zu deaktivieren, um den Remote-Angriff zu minimieren.
  • TFTP und FTP deaktivieren – Beide Protokolle unterstützen die Vertraulichkeit der Daten oder Anmeldeinformationen nicht. Es hat sich bewährt, es nicht auf dem Server zu haben, es sei denn, es ist ausdrücklich erforderlich. Meistens werden diese Protokolle auf Fileservern installiert und aktiviert.
  • DHCP deaktivieren – DHCP ist das Protokoll, das die IP-Adresse dynamisch zuweist. Es wird empfohlen, dies zu deaktivieren, es sei denn, es handelt sich um einen DHCP-Server, um potenzielle Angriffe zu vermeiden.
  • HTTP deaktivieren – HTTP ist das Protokoll, das zum Hosten von Webinhalten verwendet werden kann. Abgesehen von Master-/Verwaltungsservern (wo WebUI von Diensten wie CM, Hue usw. konfiguriert werden sollen) können wir HTTP auf anderen Worker-Knoten deaktivieren, wodurch potenzielle Angriffe vermieden werden können.

Zusammenfassung

Wir haben die Servervorbereitung durchlaufen, die aus den Cloudera Hadoop-Voraussetzungen besteht und einige Sicherheitshärtungen. Die von Cloudera definierten Voraussetzungen auf Betriebssystemebene sind für die reibungslose Installation von Hadoop obligatorisch. Normalerweise wird ein Härtungsskript unter Verwendung des CIS-Benchmarks erstellt und verwendet, um die Nichteinhaltung in Echtzeit zu prüfen und zu beheben.

In einer Minimalinstallation von CentOS/RHEL 7 , werden nur grundlegende Funktionalitäten/Software installiert, wodurch unerwünschte Risiken und Schwachstellen vermieden werden. Auch wenn es sich um eine minimale Installation handelt, werden vor der Installation von Hadoop mehrere Iterationen der Sicherheitsüberprüfung durchgeführt, selbst nach dem Aufbau des Clusters, bevor der Cluster in Betrieb/Produktion verschoben wird.


Cent OS
  1. Einstellen von NTP auf Centos und Ubuntu

  2. Einstellen von NTP auf Centos und Ubuntu

  3. Top 7 Tipps zur Sicherheitshärtung für CentOS 8 / RHEL 8 Server

  4. Einrichten eines NFS-Servers und -Clients unter CentOS 7.2

  5. Installieren und Einrichten von Grafana unter Linux

So installieren und konfigurieren Sie Cloudera Manager auf CentOS/RHEL 7 – Teil 3

Einrichten von Hadoop-Voraussetzungen und Sicherheitshärtung – Teil 2

Was ist Automatisierungs- und Konfigurationsmanagement mit CHEF – Teil 1

So installieren und konfigurieren Sie Hive mit Hochverfügbarkeit – Teil 7

Einrichten der cPanel-MySQL-Datenbank und des Benutzers

Übersicht über verteilte Datenbanktypen und Sicherheit