Einrichten von Hadoop -Voraussetzungen und Sicherheitshärten - Teil 2

Einrichten von Hadoop -Voraussetzungen und Sicherheitshärten - Teil 2

Hadoop -Clustergebäude ist ein Schritt -für -Schritt. und in Rechenzentre platzieren. Dann müssen wir das Betriebssystem installieren, es kann mit Kickstart in der Echtzeitumgebung erfolgen, wenn die Clustergröße groß ist. Sobald das Betriebssystem installiert wurde, müssen wir den Server für die Hadoop -Installation vorbereiten und die Server gemäß den Sicherheitsrichtlinien der Organisation vorbereiten.

Anforderungen

  • Best Practices für die Bereitstellung des Hadoop -Servers auf CentOS/RHEL 7 - Teil 1

In diesem Artikel werden wir Voraussetzungen auf OS-Ebene durchlaufen, die von empfohlen werden Cloudera. Außerdem haben wir einige wichtige Sicherheitshärtungstipps gemäß dem hervorgehoben CIS -Benchmark Für Produktionsserver. Diese Sicherheitshärtung kann je nach Anforderungen unterschiedlich sein.

Cloudera Hadoop-Voraussetzungen einrichten

Hier werden wir die Voraussetzungen auf OS-Ebene besprechen, die von empfohlen werden Cloudera.

1. Deaktivieren Sie transparente riesige Seite

Standardmäßig, Transparent riesige Seite (Thp) ist in Linux -Maschinen aktiviert, die schlecht interagieren mit Hadoop Workloads und es verschlechtert die Gesamtleistung von Cluster. Daher müssen wir dies deaktivieren, um mithilfe des folgenden Echo -Befehls eine optimale Leistung zu erzielen.

# Echo Never>/sys/kernel/mm/transparent_hugepage/enabled # echo Never>/sys/kernel/mm/transparent_hugepage/Defrag 
Deaktivieren Sie transparente riesige Seite

2. VM -Swappiness ändern

Standardmäßig die VM.Tupfer Wert ist 30 oder 60 Für die meisten Linux -Maschinen.

# sysctl vm.Tupfer 
Überprüfen Sie den VM -Swappiness

Einen höheren Wert von haben Tupfer wird nicht empfohlen für Hadoop Server, weil es eine lange Müllsammlung verursachen kann. Und mit dem höheren Swappinesswert können Daten zwischengespeichert werden, um den Speicher auszutauschen, selbst wenn wir über genügend Speicher verfügen. Senken Sie den Swappinesswert können physischen Speicher erstellen, um mehr Speicherseiten zu enthalten.

# sysctl vm.Swappiness = 1 

Oder Sie können die Datei öffnen /etc/sysctl.Conf und fügen Sie hinzu "VM.Swappiness = 1 " Am Ende.

VM.Swappiness = 1 

3. Deaktivieren Sie die Firewall

Jeder Hadoop -Server hat seine eigene Verantwortung für mehrere Dienste (Daemons) darauf laufen. Alle Server werden häufig für verschiedene Zwecke miteinander kommunizieren.

Zum Beispiel, Datanode sendet einen Herzschlag für alle 3 Sekunden an Namenode Namenode wird sicherstellen, dass die Datanode ist am Leben.

Wenn die gesamte Kommunikation zwischen den Daemons über die Firewall hinweg verschiedene Server auftritt, wird dies für Hadoop eine zusätzliche Belastung sein. Es ist also Best Practice, die Firewall auf den einzelnen Servern in Cluster zu deaktivieren.

# Iptables-Save> ~/Firewall.Regeln # SystemCTL STOP Firewalld # SystemCTL Deaktivieren Sie die Firewall 
Deaktivieren Sie die Firewall

4. Deaktivieren Sie Selinux

Wenn wir die behalten Selinux Aktiviert wird es zu Problemen während der Installation verursacht Hadoop. Als Hadoop ist ein Cluster -Computing, Cloudera Manager Erreichen Sie alle Server im Cluster, um Hadoop und seine Dienste zu installieren, und erstellt bei Bedarf erforderliche Serviceverzeichnisse.

Wenn Selinux aktiviert ist, kann Cloudera Manager die Installation nicht so regieren, wie sie möchte. Das Aktivieren von SELinux ist also ein Hindernis für Hadoop und es wird Leistungsprobleme verursachen.

Sie können den Status von überprüfen Selinux Durch die Verwendung des folgenden Befehls.

# Sestatus 
Überprüfen Sie den Selinux -Status

Öffnen Sie nun die /etc/selinux/config Datei und Deaktivieren Selinux wie gezeigt.

Selinux = deaktiviert 
Deaktivieren Sie Selinux

Nach dem Deaktivieren von Selinux müssen Sie das System neu starten, um es aktiv zu machen.

# Neustart 

5. Installieren Sie NTP -Dienste

In Hadoop -Cluster, Alle Server sollten sein Zeit synchronisiert Um zu vermeiden, dass Taktversetzfehler. Der Rhel/Centos 7 hat Chronyd Eingebaut für die Netzwerkuhr/Zeitsynchronisation, Cloudera empfiehlt die Verwendung NTP.

Wir müssen installieren NTP und konfigurieren Sie es. Nach der Installation stoppen Sie 'Chronyd'und deaktivieren. Denn wenn ein Server beides hat NTPD Und Chronyd Laufen wird Cloudera Manager in Betracht ziehen Chronyd Für die Zeitsynchronisation wirft sie einen Fehler auf, auch wenn wir über NTP synchronisiert sind.

# yum -y -y Installation NTP # SystemCTL Start NTPD # SystemCTL Aktivieren Sie NTPD # SystemCTL Status NTPD 
Überprüfen Sie den NTP -Status

6. Chronyd deaktivieren

Wie wir oben erwähnt haben, brauchen wir nicht Chronyd aktiv, wie wir es verwenden NTPD. Überprüfen Sie den Status von Chronyd, Wenn es läuft und deaktiviert wird. Standardmäßig, Chronyd wird gestoppt, es sei denn, bis wir nach der Betriebssysteminstallation beginnen, müssen wir nur für die sicherere Seite deaktivieren.

# Systemctl Status Chronyd # SystemCTL Deaktivieren Sie Chronyd 
Chronyd deaktivieren

7. FQDN festlegen (voll qualifizierter Domainname)

Wir müssen die festlegen Hostname mit Fqdn (Voll qualifizierter Domainname). Jeder Server sollte einen eindeutigen kanonischen Namen haben. Um den Hostnamen zu beheben, müssen wir entweder den DNS oder die DNS konfigurieren oder /etc/hosts. Hier werden wir konfigurieren /etc/hosts.

IP -Adresse und FQDN jedes Servers sollten eingegeben werden /etc/hosts von allen Servern. Nur dann Cloudera Manager kann alle Server mit seinem Hostnamen kommunizieren.

# Hostnamectl Set-Hostname Master1.Tecmint.com 

Konfigurieren Sie als Nächstes /etc/hosts Datei. Zum Beispiel: - Wenn wir 5 Knotencluster mit 2 Master und 3 Arbeitern haben, können wir die konfigurieren /etc/hosts wie nachstehend.

Konfigurieren Sie Hostnamen

8. Installation eines Java -Entwicklungskits (JDK)

Als Hadoop es besteht aus Java, Alle Gastgeber sollten haben Java installiert mit der entsprechenden Version. Hier werden wir haben OpenJDK. Standardmäßig, Cloudera Manager wird installieren Oraclejdk Aber Cloudera empfiehlt OpenJDK.

# yum -y install Java -1.8.0-Openjdk-Devel # Java-Verssion 
Überprüfen Sie die Java -Version

Hadoop -Sicherheit und -härtung

In diesem Abschnitt werden wir die Sicherheit der Hadoop -Umwelt verhärten…

1. Automounting deaktivieren

Automounting 'Autofs'Ermöglicht die automatische Montage von physischen Geräten wie USB, CD/DVD. Der Benutzer mit physischem Zugriff kann den USB oder jedes Speichermedium für den Zugriff auf Dateneinfügungsdaten anschließen. Verwenden Sie die folgenden Befehle, um zu überprüfen, ob es deaktiviert ist oder nicht, wenn Sie es nicht deaktivieren.

# SystemCTL Deaktivieren autofs # SystemCTL IS-fähige AutoFs 
Automounting deaktivieren

2. Sicherheitseinstellungen sicherstellen

Der roden Die Konfigurationsdatei enthält kritische Informationen zu Starteinstellungen und Anmeldeinformationen zum Entsperren von Startoptionen. Die GRUB -Konfigurationsdatei 'roden.CFG' befindet sich /boot/grub2 und es wurde miteinander verbunden als /etc/grub2.Conf und sicherstellen roden.CFG befindet sich im Besitz des Root Users.

# cd /boot /grub2 
Überprüfen Sie Grub -Dateien

Verwenden Sie den folgenden Befehl, um zu überprüfen Uid Und Gid sind beide 0/root Und 'Gruppe' oder 'andere'sollte keine Erlaubnis haben.

# STAT/SOTOR/GRUB2/GRUB.CFG 
Überprüfen Sie die GRUB -Dateistatus

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

# chmod og-rwx/boot/grub2/grub.CFG 
Entfernen Sie die Erlaubnis der GRUB -Datei

3. Setzen Sie das Bootloader -Passwort

Diese Einstellung vermeidet andere nicht autorisierte Neustart des Servers. dh ein Passwort zum Neustart des Servers benötigt. Wenn es nicht festgelegt 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 
Erstellen Sie ein Bootloader -Passwort

Fügen Sie das oben erstellte Passwort ein /etc/grub.D/01_Users Datei.

Fügen Sie der Datei Grub -Passwort hinzu

Erstellen Sie als nächstes die GRUB-Konfigurationsdatei erneut.

# grub2-mkconfig>/boot/grub2/grub.CFG 
Generieren Sie die GRUB -Konfiguration

4. Entfernen Sie das Prelink -Werkzeug

Prelink ist ein Softwareprogramm, das die Verwundbarkeit in einem Server erhöhen kann, wenn böswillige Benutzer gemeinsame Bibliotheken wie z libc.

Verwenden Sie den folgenden Befehl, um es zu entfernen.

# Yum Prelink entfernen 

5. Deaktivieren Sie unerwünschte Dienste

Wir sollten in Betracht ziehen, einige Dienste/Protokolle zu deaktivieren, um potenzielle Angriffe zu vermeiden.

# Systemctl Deaktivieren  
  • Netzwerkdienste deaktivieren - Stellen Sie sicher. Diese Netzwerkdienste dienen zum Debuggen und Testen. Es wird empfohlen, zu deaktivieren, um den Remoteangriff minimieren zu können.
  • Deaktivieren Sie TFTP & FTP - Sowohl das Protokoll unterstützt die Vertraulichkeit der Daten oder Anmeldeinformationen nicht. Es ist die beste Praxis, nicht auf dem Server zu haben, es sei denn, dies ist explizit erforderlich. Meistens werden diese Protokolle auf Dateiserver installiert und aktiviert.
  • Deaktivieren Sie DHCP - DHCP ist das Protokoll, das die IP -Adresse dynamisch zuordnet. Es wird empfohlen, zu deaktivieren, es sei denn, es handelt sich um einen DHCP -Server, um potenzielle Angriffe zu vermeiden.
  • Deaktivieren Sie http - HTTP ist das Protokoll, mit dem Webinhalte gehostet werden können. Abgesehen von Master-/Management -Servern (wo Webui von Diensten wie CM, Hue usw. konfiguriert werden soll) können wir HTTP auf anderen Arbeiterknoten deaktivieren, die die potenziellen Angriffe vermeiden können.

Zusammenfassung

Wir haben die Servervorbereitung durchlaufen, die besteht Cloudera Hadoop-Voraussetzungen und einige Sicherheitshärten. Voraussetzungen der OS-Ebene, die von Cloudera definiert wurden, sind für die reibungslose Installation von Hadoop obligatorisch. Normalerweise wird ein Härtungsskript unter Verwendung des CIS-Benchmarks vorbereitet und zur Prüfung und Behebung der Nichteinhaltung der Echtzeit verwendet.

In einer minimalen Installation von CentOS/Rhel 7, Es werden nur grundlegende Funktionen/Software installiert. Dies vermeidet unerwünschtes Risiko und Schwachstellen. Auch wenn es sich um eine minimale Installation handelt, werden vor der Installation von Hadoop auch nach dem Erstellen des Clusters mehrere Iterationen der Sicherheitsprüfungen durchgeführt, bevor der Cluster in Betrieb/Produktion verschoben wird.