Konfigurowanie warunków wstępnych Hadoop i utwardzania bezpieczeństwa - część 2

Konfigurowanie warunków wstępnych Hadoop i utwardzania bezpieczeństwa - część 2

Budynek klastra Hadoop to proces krok po kroku, w którym proces zaczyna się od zakupu wymaganych serwerów, zamontowania w stojaku, okablowania itp. i umieszczanie w centrum danych. Następnie musimy zainstalować system operacyjny, można to zrobić za pomocą Kickstart w środowisku w czasie rzeczywistym, jeśli rozmiar klastra jest duży. Po zainstalowaniu systemu operacyjnego musimy przygotować serwer do instalacji Hadoop i musimy przygotować serwery zgodnie z zasadami bezpieczeństwa organizacji.

Wymagania

  • Najlepsze praktyki wdrażania serwera Hadoop na CentOS/RHEL 7 - Część 1

W tym artykule przejdziemy przez warunki wstępne na poziomie systemu operacyjnego zalecane przez Cloudera. Podkreśliliśmy także kilka ważnych wskazówek dotyczących bezpieczeństwa według Benchmark CIS dla serwerów produkcyjnych. Te hartowanie bezpieczeństwa może być różne w zależności od wymagań.

Konfigurowanie warunków wstępnych Cloudera Hadoop

Tutaj omówimy warunki wstępne na poziomie OS zalecane przez Cloudera.

1. Wyłącz przezroczystą ogromną stronę

Domyślnie, Przezroczysta ogromna strona (THP) jest włączony w maszynach Linux, które słabo wchodzą w interakcje Hadoop obciążenia i degraduje ogólną wydajność klastra. Musimy więc to wyłączyć, aby osiągnąć optymalną wydajność za pomocą następującego polecenia Echo.

# echo nigdy>/sys/jądro/mm/przezroczysta_hugePage/enabled # echo nigdy>/sys/jądro/mm/przezront_hugePage/defrag 
Wyłącz przezroczystą ogromną stronę

2. Zmień zamiatanie VM

Domyślnie, Vm.Zakochanie wartosc jest 30 Lub 60 dla większości maszyn Linux.

# Sysctl Vm.Zakochanie 
Sprawdź walut VM

Mając wyższą wartość Zakochanie nie jest zalecane Hadoop serwery, ponieważ mogą powodować długą kolekcję śmieci przerwy. I przy wyższej wartości wymiotów dane można buforować, aby zamienić pamięć, nawet jeśli mamy wystarczającą pamięć. Niższa wartość zamiatania może sprawić, że pamięć fizyczna zawierała więcej stron pamięci.

# Sysctl Vm.Swapsiness = 1 

Lub możesz otworzyć plik /etc/sysctl.conf i dodaj „Vm.Swappiness = 1 " na końcu.

Vm.Swapsiness = 1 

3. Wyłącz zaporę ogniową

Każdy serwer Hadoop będzie miał własną odpowiedzialność z wieloma usługami (Demony) Bieganie na tym. Wszystkie serwery będą się ze sobą komunikować często w różnych celach.

Na przykład, DataNode wyśle ​​bicie serca do nazwy na co 3 sekundy, aby Namenode upewni się, że DataNode żyje.

Jeśli cała komunikacja nastąpi między demonami na różnych serwerach za pośrednictwem zapory, będzie to dodatkowe obciążenie dla Hadoop. Dlatego najlepszą praktyką jest wyłączenie zapory na poszczególnych serwerach w klastrze.

# iptables-save> ~/zapora ogniowa.Zasady # Systemctl Stop Firewalld # Systemctl Wyłącz zaporę ogniową 
Wyłącz zaporę ogniową

4. Wyłącz Selinux

Jeśli zatrzymamy Selinux włączone, spowoduje to problemy podczas instalacji Hadoop. Jak Hadoop to przetwarzanie klastrów, Menedżer Cloudera dotrze do wszystkich serwerów w klastrze, aby zainstalować Hadoop i jego usługi, a także stworzy niezbędne katalogi usług.

Jeśli Selinux włączy, nie pozwoli Cloudera Manager rządzić instalacją, jak chce. Zatem włączenie Selinux będzie przeszkodą dla Hadoop i spowoduje problemy z wydajnością.

Możesz sprawdzić status Selinux Korzystając z poniższego polecenia.

# sestatus 
Sprawdź status SELINUX

Teraz otwórz /etc/selinux/config plik i wyłącz Selinux jak pokazano.

SELINUX = wyłączony 
Wyłącz Selinux

Po wyłączeniu Selinux musisz ponownie uruchomić system, aby był aktywny.

# ponowne uruchomienie 

5. Zainstaluj usługi NTP

W Klaster Hadoop, Wszystkie serwery powinny być Czas synchronizowany Aby uniknąć błędów przesunięcia zegara. RHEL/CENTOS 7 ma Chronyd wbudowane dla synchronizacji zegara/czasu sieci, ale Cloudera zaleca użycie NTP.

Musimy zainstalować NTP i skonfiguruj to. Po zainstalowaniu zatrzymajChronyd'i wyłącz. Ponieważ jeśli serwer ma jedno i drugie ntpd I Chronyd Bieganie, Cloudera Manager rozważy Chronyd W przypadku synchronizacji czasu rzuci to błąd, nawet jeśli zsynchronizujemy czas przez NTP.

# yum -y instaluj ntp # Systemctl start ntpd # Systemctl Włącz NTPD # Systemctl Status NTPD 
Sprawdź status NTP

6. Wyłącz Chonyd

Jak wspomnialiśmy powyżej, nie potrzebujemy Chronyd aktywne, ponieważ używamy ntpd. Sprawdź status Chronyd, Jeśli działa Zatrzymaj i wyłącz. Domyślnie, Chronyd jest zatrzymany, chyba że dopóki nie rozpoczniemy go po instalacji systemu operacyjnego, po prostu musimy wyłączyć bezpieczniejszą stronę.

# SystemCtl Status Chronyd # Systemctl wyłącz chronyd 
Wyłącz Chonyd

7. Ustaw fqdn (w pełni kwalifikowana nazwa domeny)

Musimy ustawić Nazwa hosta z Fqdn (W pełni kwalifikowana nazwa domeny). Każdy serwer powinien mieć unikalną nazwę kanoniczną. Aby rozwiązać nazwę hosta, albo musimy skonfigurować DNS, albo /etc/hosts. Tutaj skonfigurujemy /etc/hosts.

Adres IP i FQDN każdego serwera powinny być wprowadzone /etc/hosts wszystkich serwerów. Tylko Menedżer Cloudera może komunikować wszystkie serwery z nazwą hosta.

# hostnamectl set-hostname master1.Tecmint.com 

Następnie skonfiguruj /etc/hosts plik. Na przykład: - Jeśli mamy 5 klastrów węzłów z 2 mistrzami i 3 pracownikami, możemy skonfigurować /etc/hosts jak poniżej.

Skonfiguruj nazwy hostów

8. Instalowanie zestawu programistycznego Java (JDK)

Jak Hadoop jest zrobione z Jawa, Wszyscy gospodarze powinni mieć Jawa Zainstalowane z odpowiednią wersją. Tutaj będziemy OpenJdk. Domyślnie, Menedżer Cloudera zainstaluje OracleJdk Ale Cloudera zaleca posiadanie OpenJdk.

# Yum -y instaluj java -1.8.0-OPENJDK-DEVEL # java -version 
Sprawdź wersję Java

Hadoop Security and Harting

W tej sekcji będziemy Harten Hadoop Environment Security…

1. Wyłącz automounting

Automounturing 'Autofs„Umożliwia automatyczne montaż urządzeń fizycznych, takich jak USB, CD/DVD. Użytkownik z fizycznym dostępem może dołączyć swój USB lub dowolne medium pamięci do dostępu do danych wstawienia. Użyj poniższych poleceń, aby sprawdzić, czy jest on wyłączony, czy nie, jeśli nie wyłącznie wyłącznie.

# SystemCtl Wyłącz AutoMs # Systemctl IS AutoMs AutoMs 
Wyłącz automounting

2. Bezpieczne ustawienia rozruchu

żarcie Plik konfiguracyjny zawiera krytyczne informacje o ustawieniach rozruchu i poświadczeniach, aby odblokować opcje rozruchu. Plik konfiguracyjny GRUB ”żarcie.CFG' zlokalizowany w /boot/grub2 i jest to powiązane jako /etc/grub2.conf i zapewnić żarcie.CFG jest własnością użytkownika root.

# cd /boot /grub2 
Sprawdź pliki GRUB

Użyj poniższego polecenia, aby sprawdzić UID I Kołowacizna są oba 0/root I 'Grupa' Lub 'Inny„Nie powinien mieć żadnego pozwolenia.

# stat/boot/grub2/grub.CFG 
Sprawdź statystykę pliku GRUB

Użyj poniższego polecenia, aby usunąć uprawnienia z innych i grupowych.

# chmod Og-rwx/boot/grub2/grub.CFG 
Usuń zgodę pliku Gruba

3. Ustaw hasło Bootloader

To ustawienie pozwala uniknąć innych nieautoryzowanych ponownych uruchomienia serwera. tj. Wymaga hasła do ponownego uruchomienia serwera. Jeśli nie jest ustawiony, nieautoryzowani użytkownicy mogą uruchomić serwer i mogą wprowadzać zmiany w partycjach rozruchowych.

Użyj poniższego polecenia, aby ustawić hasło.

# Grub2-Mkpasswd-Pbkdf2 
Utwórz hasło Bootloader

Dodaj wyżej wymyślone hasło do /etc/grub.D/01_USERS plik.

Dodaj hasło do plik do pliku

Następnie ponownie generuj plik konfiguracyjny GRUB.

# Grub2-MkConfig>/boot/Grub2/Grub.CFG 
Wygeneruj konfigurację Gruba

4. Usuń narzędzie do Prelink

PRELINK to program, który może zwiększyć podatność na serwerze, jeśli złośliwe użytkownicy mogą zagrozić wspólnymi bibliotekami, takimi jak Libc.

Użyj poniższego polecenia, aby je usunąć.

# mniam Usuń preelink 

5. Wyłącz niechciane usługi

Powinniśmy rozważyć wyłączenie niektórych usług/protokołów, aby uniknąć potencjalnych ataków.

# systemCtl wyłącz  
  • Wyłącz usługi sieciowe - Upewnij się, że usługi sieciowe - opłaty, dzień, odrzucanie, echo, czas nie są włączone. Te usługi sieciowe służą do debugowania i testowania, zaleca się wyłączenie, co może zminimalizować atak zdalny.
  • Wyłącz TFTP i FTP - Oba protokół nie będzie wspierać poufności danych lub poświadczeń. Najlepszą praktyką jest nie mieć na serwerze, chyba że jest to wymagane jawnie. Przeważnie te protokoły są instalowane i włączone w programach FileServers.
  • Wyłącz DHCP - DHCP to protokół, który dynamicznie przydzieli adres IP. Zaleca się wyłączenie, chyba że jest to serwer DHCP, aby uniknąć potencjalnych ataków.
  • Wyłącz HTTP - HTTP to protokół, którego można użyć do hostowania treści internetowych. Oprócz serwerów Master/Management (gdzie należy skonfigurować WebUI usług, takie jak CM, Hue itp.), Możemy wyłączyć HTTP na innych węzłach pracowniczych, które mogą uniknąć potencjalnych ataków.

Streszczenie

Przeszliśmy przygotowanie serwera, z którego składa się Wymagania wstępne Cloudera Hadoop i trochę utwardzania bezpieczeństwa. Wymagania wstępne poziomu systemu operacyjnego zdefiniowane przez Cloudera są obowiązkowe do płynnej instalacji Hadoop. Zwykle skrypt stwardnienia jest przygotowany przy użyciu Benchmark CIS i wykorzystywany do kontroli i naprawy niezgodności w czasie rzeczywistym w czasie rzeczywistym.

W minimalnej instalacji Centos/Rhel 7, Instalowane są tylko podstawowe funkcje/oprogramowanie, co uniknie niechcianego ryzyka i luk w zabezpieczeniach. Mimo że jest to minimalna instalacja wiele iteracji kontroli bezpieczeństwa zostanie przeprowadzonych przed zainstalowaniem Hadoop, nawet po zbudowaniu klastra, przed przeniesieniem klastra do działania/produkcji.