Menyediakan prasyarat Hadoop dan pengerasan keselamatan - Bahagian 2

Menyediakan prasyarat Hadoop dan pengerasan keselamatan - Bahagian 2

Bangunan kluster Hadoop adalah proses langkah demi langkah di mana proses bermula dari membeli pelayan yang diperlukan, dipasang ke rak, kabel, dll. dan meletakkan di datacentre. Kemudian kita perlu memasang OS, ia boleh dilakukan dengan menggunakan kickstart dalam persekitaran masa nyata jika saiz kluster besar. Setelah OS dipasang, maka kita perlu menyediakan pelayan untuk pemasangan Hadoop dan kita perlu menyediakan pelayan mengikut dasar keselamatan organisasi.

Keperluan

  • Amalan Terbaik untuk Menggunakan Hadoop Server di CentOS/RHEL 7 - Bahagian 1

Dalam artikel ini, kami akan melalui prasyarat peringkat OS yang disyorkan oleh Cloudera. Juga, kami telah menyerlahkan beberapa petua pengerasan keselamatan penting mengikut CIS Benchmark untuk pelayan pengeluaran. Pengerasan keselamatan ini boleh berbeza mengikut keperluan.

Menyediakan prasyarat Cloudera Hadoop

Di sini, kami akan membincangkan prasyarat peringkat OS yang disyorkan oleh Cloudera.

1. Lumpuhkan halaman besar telus

Secara lalai, Halaman besar telus (THP) didayakan dalam mesin linux yang tidak berinteraksi dengan baik Hadoop beban kerja dan ia merendahkan prestasi keseluruhan kluster. Oleh itu, kita perlu melumpuhkan ini untuk mencapai prestasi yang optimum menggunakan arahan echo berikut.

# echo never>/sys/kernel/mm/transparent_hugepage/enabled # echo never>/sys/kernel/mm/transparent_hugepage/defrag 
Lumpuhkan halaman besar telus

2. Tukar Swappiness VM

Secara lalai, VM.swappiness nilai adalah 30 atau 60 Untuk kebanyakan mesin Linux.

# SYSCTL VM.swappiness 
Semak VM Swappiness

Mempunyai nilai yang lebih tinggi daripada swappiness tidak disyorkan untuk Hadoop pelayan kerana ia boleh menyebabkan kutipan sampah yang panjang menjeda. Dan, dengan nilai swappiness yang lebih tinggi, data dapat di -cache untuk menukar memori walaupun kita mempunyai memori yang cukup. Kurangkan nilai swappiness boleh membuat memori fizikal untuk mengandungi lebih banyak halaman ingatan.

# SYSCTL VM.Swappiness = 1 

Atau, anda boleh membuka fail /etc/sysctl.Conf dan tambah "Vm.Swappiness = 1 " pada akhir.

VM.Swappiness = 1 

3. Lumpuhkan firewall

Setiap pelayan Hadoop akan bertanggungjawab sendiri dengan pelbagai perkhidmatan (Daemons) berjalan pada itu. Semua pelayan akan berkomunikasi antara satu sama lain secara kerap untuk pelbagai tujuan.

Sebagai contoh, DataNode akan menghantar degupan jantung ke namenode selama setiap 3 saat sehingga Namenode akan memastikan bahawa DataNode hidup.

Sekiranya semua komunikasi berlaku antara daemon di seluruh pelayan yang berbeza melalui firewall, ia akan menjadi beban tambahan kepada Hadoop. Oleh itu, amalan terbaik untuk melumpuhkan firewall di pelayan individu dalam kelompok.

# iptables-Ave> ~/firewall.Peraturan # Systemctl Stop Firewalld # Systemctl Lumpuhkan Firewall 
Lumpuhkan firewall

4. Lumpuhkan Selinux

Sekiranya kita menyimpan Selinux diaktifkan, ia akan menyebabkan masalah semasa memasang Hadoop. Sebagai Hadoop adalah pengkomputeran kluster, Pengurus Cloudera akan sampai ke semua pelayan di kluster untuk memasang Hadoop dan perkhidmatannya dan ia akan mewujudkan direktori perkhidmatan yang diperlukan di mana sahaja diperlukan.

Sekiranya Selinux diaktifkan, ia tidak akan membiarkan Pengurus Cloudera memerintah pemasangan seperti yang diinginkan. Oleh itu, membolehkan Selinux akan menjadi penghalang kepada Hadoop dan ia akan menyebabkan masalah prestasi.

Anda boleh menyemak status Selinux dengan menggunakan arahan di bawah.

# Sestatus 
Semak status selinux

Sekarang, buka /etc/selinux/config fail dan lumpuhkan Selinux seperti yang ditunjukkan.

Selinux = dilumpuhkan 
Lumpuhkan Selinux

Setelah melumpuhkan Selinux, anda perlu reboot sistem untuk menjadikannya aktif.

# reboot 

5. Pasang perkhidmatan NTP

Dalam Kluster Hadoop, Semua pelayan mestilah Masa disegerakkan Untuk mengelakkan kesilapan mengimbangi jam. The RHEL/CENTOS 7 mempunyai Chronyd terbina untuk penyegerakan jam/masa rangkaian, tetapi Cloudera mengesyorkan untuk digunakan NTP.

Kita perlu memasang NTP dan konfigurasikannya. Setelah dipasang, hentikan 'Chronyd'Dan lumpuhkan. Kerana, jika pelayan mempunyai kedua -duanya ntpd dan Chronyd berjalan, pengurus Cloudera akan mempertimbangkan Chronyd Untuk penyegerakan masa, maka ia akan membuang ralat walaupun kita mempunyai masa yang disegerakkan melalui NTP.

# YUM -y Pasang NTP # Systemctl Mula NTPD # SystemCtl Enable NTPD # Systemctl Status NTPD 
Semak status NTP

6. Lumpuhkan Chonyd

Seperti yang kita nyatakan di atas, kita tidak perlu Chronyd aktif seperti yang kita gunakan ntpd. Periksa status Chronyd, Sekiranya ia berjalan berhenti dan lumpuhkan. Secara lalai, Chronyd dihentikan kecuali sehingga kita memulakannya selepas pemasangan OS, hanya kita perlu melumpuhkan untuk sisi yang lebih selamat.

# Systemctl Status Chonyd # Systemctl Lumpuhkan Chonyd 
Lumpuhkan Chonyd

7. Tetapkan FQDN (nama domain yang berkelayakan)

Kita mesti menetapkan Nama Host dengan FQDN (Nama domain yang berkelayakan sepenuhnya). Setiap pelayan harus mempunyai nama kanonik yang unik. Untuk menyelesaikan nama hos, sama ada kita perlu mengkonfigurasi DNS atau /etc/hos. Di sini, kita akan mengkonfigurasi /etc/hos.

Alamat IP dan FQDN bagi setiap pelayan harus dimasukkan /etc/hos dari semua pelayan. Kemudian hanya Pengurus Cloudera dapat menyampaikan semua pelayan dengan nama hosnya.

# hostnamectl set-hostname master1.Tecmint.com 

Seterusnya, konfigurasikan /etc/hos fail. Contohnya: - Jika kita mempunyai 5 kluster nod dengan 2 tuan dan 3 pekerja, kita boleh mengkonfigurasi /etc/hos seperti di bawah.

Konfigurasikan nama host

8. Memasang Kit Pembangunan Java (JDK)

Sebagai Hadoop diperbuat daripada Java, Semua tuan rumah harus mempunyai Java dipasang dengan versi yang sesuai. Di sini kita akan mempunyai OpenJDK. Secara lalai, Pengurus Cloudera akan memasang OracleJDK Tetapi, Cloudera mengesyorkan mempunyai OpenJDK.

# yum -y pasang java -1.8.0-OpenJDK-Devel # Java -Version 
Semak versi Java

Keselamatan dan pengerasan Hadoop

Dalam bahagian ini, kami akan mengeras keselamatan persekitaran Hadoop ..

1. Lumpuhkan automounting

Automounting 'Autofs'Membolehkan pemasangan peranti fizikal automatik seperti USB, CD/DVD. Pengguna dengan akses fizikal boleh melampirkan USB mereka atau mana -mana medium storan untuk mengakses data sisipan. Gunakan arahan di bawah untuk mengesahkan sama ada ia dilumpuhkan atau tidak, jika tidak melumpuhkannya.

# Systemctl Lumpuhkan Autofs # SystemCtl IS-Enabled Autofs 
Lumpuhkan automounting

2. Tetapan boot selamat

The grub Fail konfigurasi mengandungi maklumat kritikal tetapan boot dan kelayakan untuk membuka kunci pilihan boot. Fail konfigurasi grub 'grub.cfg' bertempat di /boot/grub2 dan ia dikaitkan sebagai /etc/grub2.Conf dan pastikan grub.cfg dimiliki oleh pengguna root.

# cd /boot /grub2 
Semak fail grub

Gunakan arahan di bawah untuk memeriksa Uid dan Gid kedua -duanya 0/root dan 'kumpulan'Atau'yang lain'Tidak boleh mempunyai kebenaran.

# stat/boot/grub2/grub.cfg 
Semak statistik fail grub

Gunakan arahan di bawah untuk menghapuskan kebenaran dari yang lain dan kumpulan.

# chmod og-rwx/boot/grub2/grub.cfg 
Keluarkan kebenaran fail grub

3. Tetapkan kata laluan bootloader

Tetapan ini mengelakkan reboot yang tidak dibenarkan oleh pelayan. iaitu, ia memerlukan kata laluan untuk reboot pelayan. Sekiranya tidak ditetapkan, pengguna yang tidak dibenarkan boleh boot pelayan dan boleh membuat perubahan pada partition boot.

Gunakan arahan di bawah untuk menetapkan kata laluan.

# GRUB2-MKPASSWD-PBKDF2 
Buat kata laluan bootloader

Tambahkan kata laluan yang dibuat di atas ke /etc/grub.D/01_USERS fail.

Tambahkan kata laluan grub ke fail

Seterusnya, menghasilkan semula fail konfigurasi grub.

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

4. Keluarkan alat Prelink

Prelink adalah program perisian yang dapat meningkatkan kelemahan dalam pelayan jika pengguna berniat jahat dapat berkompromi dengan perpustakaan biasa seperti libc.

Gunakan arahan di bawah untuk mengeluarkannya.

# yum keluarkan prelink 

5. Lumpuhkan perkhidmatan yang tidak diingini

Kita harus mempertimbangkan melumpuhkan beberapa perkhidmatan/protokol untuk mengelakkan serangan yang berpotensi.

# Systemctl melumpuhkan  
  • Lumpuhkan perkhidmatan rangkaian - Pastikan Perkhidmatan Rangkaian - Caj, Siang, Buang, Echo, Masa Tidak Diaktifkan. Perkhidmatan rangkaian ini adalah untuk debug dan ujian, disarankan untuk melumpuhkan yang dapat meminimumkan serangan jauh.
  • Lumpuhkan TFTP & FTP - Kedua -dua protokol itu tidak akan menyokong kerahsiaan data atau kelayakan. Amalan terbaik tidak ada di pelayan melainkan jika diperlukan secara eksplisit. Kebanyakannya protokol ini dipasang dan didayakan pada fileServers.
  • Lumpuhkan DHCP - DHCP adalah protokol yang akan memperuntukkan alamat IP secara dinamik. Disyorkan untuk melumpuhkan melainkan jika ia adalah pelayan DHCP untuk mengelakkan serangan yang berpotensi.
  • Lumpuhkan http - HTTP adalah protokol yang boleh digunakan untuk menjadi tuan rumah kandungan web. Selain daripada pelayan tuan/pengurusan (di mana webui perkhidmatan hendaklah dikonfigurasikan seperti CM, Hue, dll), kita boleh melumpuhkan HTTP pada nod pekerja lain yang boleh mengelakkan serangan yang berpotensi.

Ringkasan

Kami telah melalui penyediaan pelayan yang terdiri daripada Cloudera Hadoop pra-syarat dan beberapa pengerasan keselamatan. Tahap OS prasyarat yang ditakrifkan oleh Cloudera adalah wajib untuk pemasangan lancar Hadoop. Biasanya, skrip pengerasan akan disediakan dengan menggunakan penanda aras CIS dan digunakan untuk mengaudit dan memperbaiki ketidakpatuhan dalam masa nyata.

Dalam pemasangan minimum Centos/RHEL 7, Hanya fungsi/perisian asas yang dipasang, ini akan mengelakkan risiko dan kelemahan yang tidak diingini. Walaupun ia adalah pemasangan minimum pelbagai lelaran pengauditan keselamatan akan dilakukan sebelum memasang Hadoop, walaupun selepas membina kluster, sebelum memindahkan kluster ke dalam operasi/pengeluaran.