GNU/Linux >> Belajar Linux >  >> Cent OS

Menyiapkan Prasyarat Hadoop dan Pengerasan Keamanan – Bagian 2

Bangunan Gugus Hadoop adalah proses langkah demi langkah dimana proses dimulai dari pembelian server yang dibutuhkan, pemasangan ke dalam rak, pemasangan kabel, dll dan penempatan di Pusat Data. Kemudian kita perlu menginstal OS, itu bisa dilakukan menggunakan kickstart di lingkungan real-time jika ukuran cluster besar. Setelah OS terinstal, maka kita perlu menyiapkan server untuk Instalasi Hadoop dan kita perlu menyiapkan server sesuai dengan kebijakan keamanan Organisasi.

Persyaratan

  • Praktik Terbaik untuk Menerapkan Server Hadoop di CentOS/RHEL 7 – Bagian 1

Dalam artikel ini, kita akan membahas prasyarat tingkat OS yang direkomendasikan oleh Cloudera . Selain itu, kami telah menyoroti beberapa kiat Pengerasan Keamanan yang penting menurut Tolok Ukur CIS untuk server Produksi. Pengerasan keamanan ini dapat berbeda sesuai dengan kebutuhan.

Menyiapkan Prasyarat Cloudera Hadoop

Di sini, kita akan membahas prasyarat tingkat OS yang direkomendasikan oleh Cloudera .

1. Nonaktifkan Halaman Besar Transparan

Secara default, Halaman Besar Transparan (THP ) diaktifkan di mesin Linux yang berinteraksi buruk dengan Hadoop beban kerja dan menurunkan kinerja keseluruhan Cluster. Jadi kita perlu menonaktifkan ini untuk mencapai kinerja yang optimal menggunakan perintah echo berikut.

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

2. Ubah VM Swappiness

Secara default, vm.swappiness nilainya 30 atau 60 untuk sebagian besar mesin Linux.

# sysctl vm.swappiness

Memiliki nilai swappiness higher yang lebih tinggi tidak disarankan untuk Hadoop server karena dapat menyebabkan jeda pengumpulan Sampah yang lama. Dan, dengan nilai swappiness yang lebih tinggi, data dapat di-cache untuk menukar memori meskipun kita memiliki cukup memori. Menurunkan nilai swappiness dapat membuat memori fisik berisi lebih banyak halaman memori.

# sysctl vm.swappiness=1

Atau, Anda dapat membuka file /etc/sysctl.conf dan tambahkan "vm.swappiness=1" di akhir.

vm.swappiness=1

3. Nonaktifkan Firewall

Setiap server Hadoop akan memiliki tanggung jawab sendiri dengan beberapa layanan (daemon ) berjalan di atasnya. Semua server akan sering berkomunikasi satu sama lain untuk berbagai tujuan.

Misalnya, Datanode akan mengirimkan detak jantung ke Namenode setiap 3 detik sehingga Namenode akan memastikan bahwa Datanode masih hidup.

Jika semua komunikasi terjadi antara daemon di server yang berbeda melalui Firewall, itu akan menjadi beban tambahan bagi Hadoop. Jadi, praktik terbaik adalah menonaktifkan firewall di masing-masing server di Cluster.

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

4. Nonaktifkan SELinux

Jika kita menyimpan SELinux diaktifkan, ini akan menyebabkan masalah saat memasang Hadoop . Sebagai Hadoop adalah komputasi cluster, Manajer Cloudera akan menjangkau semua server di cluster untuk menginstal Hadoop dan layanannya dan akan membuat direktori layanan yang diperlukan di mana pun diperlukan.

Jika SELinux diaktifkan, Cloudera Manager tidak akan mengatur instalasi seperti yang diinginkan. Jadi, mengaktifkan SELinux akan menjadi kendala bagi Hadoop dan akan menyebabkan masalah kinerja.

Anda dapat memeriksa status SELinux dengan menggunakan perintah di bawah ini.

# sestatus

Sekarang, buka /etc/selinux/config file dan nonaktifkan SELINUX seperti yang ditunjukkan.

SELinux=disabled

Setelah menonaktifkan SELinux, Anda perlu mem-boot ulang sistem untuk mengaktifkannya.

# reboot

5. Instal Layanan NTP

Di Kluster Hadoop , semua server harus Tersinkronisasi Waktu untuk menghindari kesalahan offset jam. RHEL/CentOS 7 sedang mengalami kronyd bawaan untuk sinkronisasi jam/waktu jaringan, tetapi Cloudera merekomendasikan untuk menggunakan NTP .

Kita perlu menginstal NTP dan konfigurasikan. Setelah terinstal, hentikan ‘chronyd ' dan nonaktifkan. Karena, jika server memiliki keduanya ntpd dan kronyd berjalan, Cloudera Manager akan mempertimbangkan chronyd untuk sinkronisasi waktu, maka akan menimbulkan kesalahan meskipun kita memiliki waktu yang disinkronkan melalui ntp.

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

6. Nonaktifkan Chronyd

Seperti yang kami sebutkan di atas, kami tidak membutuhkan chronyd aktif saat kami menggunakan ntpd . Periksa status kronyd , jika sedang berjalan, hentikan dan nonaktifkan. Secara default, chronyd dihentikan kecuali sampai kita memulainya setelah instalasi OS, kita hanya perlu menonaktifkan untuk sisi yang lebih aman.

# systemctl status chronyd
# systemctl disable chronyd

7. Setel FQDN (Nama Domain yang Sepenuhnya Memenuhi Syarat)

Kita harus menyetel nama host dengan FQDN (Nama Domain yang Sepenuhnya Memenuhi Syarat ). Setiap server harus memiliki nama Canonical yang unik. Untuk menyelesaikan nama host, kita perlu mengonfigurasi DNS atau /etc/hosts . Di sini, kita akan mengonfigurasi /etc/hosts .

Alamat IP dan FQDN setiap server harus dimasukkan di /etc/hosts dari semua server. Maka hanya Pengelola Cloudera dapat mengomunikasikan semua server dengan nama hostnya.

# hostnamectl set-hostname master1.tecmint.com

Selanjutnya, konfigurasikan /etc/hosts mengajukan. Contoh:– Jika kita memiliki 5 node cluster dengan 2 master dan 3 pekerja, kita dapat mengkonfigurasi /etc/hosts seperti di bawah ini.

8. Memasang Java Development Kit (JDK)

Sebagai Hadoop terdiri dari Jawa , semua host harus memiliki Java diinstal dengan versi yang sesuai. Di sini kita akan memiliki OpenJDK . Secara default, Pengelola Cloudera akan menginstal OracleJDK tetapi, Cloudera merekomendasikan untuk memiliki OpenJDK .

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

Keamanan dan Pengerasan Hadoop

Di bagian ini, kita akan membahas keamanan lingkungan Harden Hadoop…

1. Nonaktifkan Pemasangan Otomatis

Mengotomatiskan 'autofs ' memungkinkan pemasangan otomatis perangkat fisik seperti USB, CD/DVD. Pengguna dengan akses fisik dapat memasang USB atau media penyimpanan apa pun untuk mengakses data sisipan. Gunakan perintah di bawah ini untuk memverifikasi apakah itu dinonaktifkan atau tidak, jika tidak menonaktifkannya.

# systemctl disable autofs
# systemctl is-enabled autofs

2. Pengaturan Boot Aman

grub file konfigurasi berisi informasi penting tentang pengaturan boot dan kredensial untuk membuka kunci opsi boot. File konfigurasi grub ‘grub.cfg ‘ terletak di /boot/grub2 dan telah ditautkan sebagai /etc/grub2.conf dan pastikan grub.cfg dimiliki oleh pengguna root.

# cd /boot/grub2

Gunakan perintah di bawah ini untuk memeriksa Uid dan Berikan keduanya 0/root dan ‘grup ' atau 'lainnya ' seharusnya tidak memiliki izin apa pun.

# stat /boot/grub2/grub.cfg

Gunakan perintah di bawah ini untuk menghapus izin dari yang lain dan grup.

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

3. Setel Kata Sandi Bootloader

Pengaturan ini menghindari reboot server yang tidak sah lainnya. yaitu, Ini membutuhkan kata sandi untuk me-reboot server. Jika tidak disetel, pengguna yang tidak sah dapat mem-boot server dan dapat membuat perubahan pada partisi boot.

Gunakan perintah di bawah ini untuk mengatur kata sandi.

# grub2-mkpasswd-pbkdf2

Tambahkan kata sandi yang dibuat di atas ke /etc/grub.d/01_users berkas.

Selanjutnya, buat ulang file konfigurasi grub.

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

4. Hapus Alat Pratautan

Pratautan adalah program perangkat lunak yang dapat meningkatkan kerentanan di server jika pengguna jahat dapat membahayakan perpustakaan umum seperti libc .

Gunakan perintah di bawah ini untuk menghapusnya.

# yum remove prelink

5. Nonaktifkan Layanan yang Tidak Diinginkan

Kami harus mempertimbangkan untuk menonaktifkan beberapa layanan/protokol untuk menghindari potensi serangan.

# systemctl disable <service name>
  • Nonaktifkan Layanan Jaringan – Pastikan layanan jaringan – biaya, siang hari, buang, gema, waktu tidak diaktifkan. Layanan Jaringan ini untuk debugging dan pengujian, disarankan untuk menonaktifkan yang dapat meminimalkan serangan jarak jauh.
  • Nonaktifkan TFTP &FTP – Kedua protokol tidak akan mendukung kerahasiaan data atau kredensial. Ini adalah praktik terbaik untuk tidak memilikinya di server kecuali jika diperlukan secara eksplisit. Sebagian besar protokol ini diinstal dan diaktifkan di Fileservers.
  • Nonaktifkan DHCP – DHCP adalah protokol yang secara dinamis mengalokasikan alamat IP. Disarankan untuk menonaktifkan kecuali server DHCP untuk menghindari potensi serangan.
  • Nonaktifkan HTTP – HTTP adalah protokol yang dapat digunakan untuk meng-host konten web. Selain server Master/Manajemen (di mana WebUI layanan akan dikonfigurasi seperti CM, Hue, dll), kami dapat menonaktifkan HTTP pada node pekerja lain yang dapat menghindari potensi serangan.

Ringkasan

Kami telah melalui persiapan server yang terdiri dari Persyaratan Cloudera Hadoop dan beberapa pengerasan keamanan. Prasyarat tingkat OS yang ditentukan oleh Cloudera adalah wajib untuk kelancaran instalasi Hadoop. Biasanya, skrip pengerasan akan disiapkan dengan menggunakan Tolok Ukur CIS dan digunakan untuk mengaudit dan memulihkan ketidakpatuhan secara waktu nyata.

Dalam instalasi minimal CentOS/RHEL 7 , hanya fungsionalitas/perangkat lunak dasar yang diinstal, ini akan menghindari risiko dan kerentanan yang tidak diinginkan. Meskipun Instalasi Minimal, beberapa iterasi audit keamanan akan dilakukan sebelum menginstal Hadoop, bahkan setelah membangun cluster, sebelum memindahkan Cluster ke Operasi/Produksi.


Cent OS
  1. Menyiapkan Server NFS Dan Klien Pada CentOS 6.3

  2. Menyiapkan Server NFS Dan Klien Pada OpenSUSE 12.2

  3. Pengerasan VPN:Apa Itu dan Bagaimana Melakukannya

  1. Memperkuat keamanan SSL di Apache, Dovecot dan Postfix

  2. Menginstal dan mengatur Php dan Nginx di Ubuntu 20.04

  3. Kelola grup dan aturan keamanan

  1. Mengatur NTP Pada Centos dan Ubuntu

  2. Mengatur NTP Pada Centos dan Ubuntu

  3. 7 Tips Pengerasan Keamanan Teratas untuk Server CentOS 8 / RHEL 8