Konfigurowanie warunków wstępnych Hadoop i utwardzania bezpieczeństwa - część 2
- 693
- 20
- Tacjana Karpiński
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/defragWyłą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.ZakochanieSprawdź 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.
# sestatusSprawdź status SELINUX
Teraz otwórz /etc/selinux/config plik i wyłącz Selinux jak pokazano.
SELINUX = wyłączonyWyłą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 NTPDSprawdź 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 chronydWyłą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ów8. 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 -versionSprawdź 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 AutoMsWyłą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 /grub2Sprawdź 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.CFGSprawdź statystykę pliku GRUB
Użyj poniższego polecenia, aby usunąć uprawnienia z innych i grupowych.
# chmod Og-rwx/boot/grub2/grub.CFGUsuń 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-Pbkdf2Utwórz hasło Bootloader
Dodaj wyżej wymyślone hasło do /etc/grub.D/01_USERS plik.
Dodaj hasło do plik do plikuNastępnie ponownie generuj plik konfiguracyjny GRUB.
# Grub2-MkConfig>/boot/Grub2/Grub.CFGWygeneruj 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.
- « Ubuntu 20.10 wydane, teraz dostępne do pobrania
- Jak zainstalować klaster pojedynczego węzła Hadoop (pseudonode) w Centos 7 »