GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengontrol Keamanan MongoDB Anda

Peretas menjadi lebih canggih, dan mereka tahu cara mengeksploitasi kerentanan. Jika Anda memiliki data sensitif di database MongoDB Anda, sangat penting untuk memperhatikan keamanan dengan serius. Tapi bagaimana caranya? Jangan khawatir! Tutorial ini telah membantu Anda!

Dalam tutorial ini, Anda akan belajar melindungi database MongoDB dan menangkal peretas dengan menyiapkan langkah-langkah keamanan.

Baca terus dan mulai kendalikan keamanan MongoDB Anda!

Prasyarat

  • Tutorial ini akan menjadi demonstrasi langsung. Untuk mengikuti, pastikan Anda memiliki yang berikut:
  • MongoDB terinstal di mesin Linux Anda.
  • Pengguna non-root dengan sudo hak istimewa.

Membuat Pengguna Administratif Khusus

MongoDB tidak memiliki sistem otentikasi bawaan. Secara default, siapa pun yang memiliki akses ke database memiliki hak administratif penuh — terlalu berbahaya! Bagaimana cara mengamankan database Anda? Anda akan membuat pengguna dengan hak administratif dan mengunci database untuk pengguna administratif tersebut.

Pengaturan ini memungkinkan Anda untuk memberikan satu titik akses pengguna dengan hak administratif sambil membatasi apa yang dapat dilakukan setiap pengguna dalam database. Misalnya, pengembang harus memiliki akses hanya baca ke database, sementara administrator dapat membuat dan mengedit data.

1. Buka terminal Anda dan jalankan mongo perintah di bawah ini tanpa argumen. Perintah ini memungkinkan Anda terhubung ke shell MongoDB Anda sebagai pengguna admin default.

Pengguna admin ini sangat kuat karena memiliki akses baca/tulis penuh ke semua database di server, dan sebaiknya hindari penggunaan pengguna ini untuk pekerjaan sehari-hari.

mongo

Anda akan mendapatkan peringatan yang menyatakan Kontrol akses tidak diaktifkan …., seperti yang ditunjukkan di bawah ini.

Peringatan ini menunjukkan bahwa siapa pun yang dapat mengakses server MongoDB dapat melakukan tindakan yang mereka inginkan dengan database. Tindakan ini termasuk tetapi tidak terbatas pada menghapus, menjatuhkan, memperbarui basis data.

Peringatan ini muncul karena Anda belum mengaktifkan kontrol akses. Jangan khawatir tentang itu, untuk saat ini. Anda akan mempelajari cara mengaktifkan kontrol akses di bagian berikut.

2. Selanjutnya, jalankan show dbs perintah untuk menampilkan semua database di server, termasuk admin database yang tidak boleh dilihat oleh pengguna biasa.

show dbs

3. Jalankan use admin perintah di bawah ini untuk beralih ke database admin karena fokus Anda adalah membuat pengguna administratif khusus. Perintah ini mengubah konteks database Anda saat ini untuk menggunakan database admin, seperti yang ditunjukkan di bawah ini.

MongoDB menggunakan database admin untuk menyimpan aturan kontrol akses dan menyediakan otentikasi bawaan, nama pengguna, dan kata sandi untuk pengguna dan peran mereka. Anda tidak dapat menghapus atau mengganti nama database admin karena ini penting untuk fungsionalitas database.

use admin

4. Sekarang, salin dan tempel kode di bawah ini ke shell mongo dan tekan Enter. Kode ini membuat pengguna bernama AdminATA , dengan sandi LDWbPf6Fy9Ezs3Mv , tetapi Anda dapat menggunakan kredensial yang berbeda sesuai keinginan.

Pengguna baru ini telah membaca/menulis (readWriteAnyDatabase ) akses ke semua database dan akses admin ke semua koleksi. Tetapi pengguna ini tidak memiliki hak istimewa untuk menjatuhkan/menghapus basis data dan tidak dapat melepaskan atau mengubah hak istimewa pengguna lain.

Setelah menjalankan perintah dan Anda mendapatkan kesalahan, periksa kembali kode Anda dan coba lagi.

# The db.createUser() method creates a new user on the current database, with the privileges specified by roles.
db.createUser(
{
# Specifying the username AdminATA, but you can enter whatever username you like
user: "AdminATA",
# The passwordPrompt() method is a universal helper function 
# that tells the MongoDB shell to prompt you for a password for the AdminATA user.
pwd: passwordPrompt(),
# Specifying  the roles you want your AdminATA user to have.
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

5. Berikan kata sandi yang aman saat diminta, seperti yang ditunjukkan di bawah ini, dan tekan Enter.

Di bawah, Anda dapat melihat Pengguna yang berhasil ditambahkan pesan. Keluaran ini mengonfirmasi bahwa Anda berhasil membuat pengguna dengan hak administratif dan membatasinya pada hak istimewa yang paling sedikit diperlukan.

Pada titik ini, Anda sudah memiliki pengguna administratif bernama AdminATA yang dapat melakukan semua yang Anda butuhkan di database tanpa memberikan akses ke semua orang.

6. Terakhir, jalankan perintah exit untuk meninggalkan shell mongo.

exit

Menambahkan Keamanan dengan Mengaktifkan Otentikasi

Sekarang Anda memiliki pengguna administratif, Anda akan menambahkan lapisan keamanan lain dengan mengaktifkan otentikasi. Melakukannya memberikan akses basis data ke pengguna dengan kredensial yang benar saja.

Otentikasi mengacu pada proses memvalidasi koneksi, biasanya dengan memberikan nama pengguna dan kata sandi atau menggunakan token otentikasi. Otentikasi memastikan bahwa Anda adalah yang Anda katakan dan bukan penipu yang mencoba mengakses sumber daya.

1. Aktifkan otentikasi dengan mengedit file konfigurasi MongoDB dengan yang berikut ini, dan simpan perubahannya:

  • Buka /etc/mongod.conf file di editor teks favorit Anda. /etc/mongod.conf file berisi konfigurasi cluster MongoDB Anda.
  • Cari dan batalkan komentar pada #security direktif dengan menghapus # simbol di depan direktif, seperti yang ditunjukkan di bawah ini. Arahan ini memberitahu MongoDB untuk mencari pengaturan keamanan di file konfigurasi.
  • Tambahkan baris baru di bawah keamanan arahan yang mengatakan otorisasi:diaktifkan . Perhatikan bahwa otorisasi:diaktifkan garis diindentasi (memiliki dua spasi di awal), seperti yang ditunjukkan di bawah ini.

2. Selanjutnya, jalankan systemctl berikut ini perintah untuk me-restart server MongoDB agar perubahan diterapkan.

sudo systemctl restart mongod

3. Terakhir, jalankan perintah di bawah ini untuk melihat status layanan MongoDB Anda.

sudo systemctl status mongod

Di bawah, Anda dapat melihat baris yang mengatakan Aktif:aktif (berjalan) dalam teks hijau, yang menunjukkan server MongoDB Anda sedang berjalan dan siap menerima koneksi.

Menguji apakah Otentikasi Berfungsi

Anda baru saja mengaktifkan otentikasi, tetapi bagaimana Anda tahu itu berfungsi? Anda akan masuk ke pengguna administratif untuk menguji dan memastikan autentikasi Anda berfungsi dengan melihat database.

1. Jalankan perintah berikut untuk mengakses mongo shell seperti yang Anda lakukan di bagian "Membuat Pengguna Administratif Khusus" (langkah pertama).

mongo

Seperti yang Anda lihat di bawah, Anda tidak lagi menerima Kontrol akses tidak diaktifkan… peringatan tentang mengaktifkan otentikasi. Sebagai gantinya, Anda akan mendapatkan pesan yang memberi tahu Anda versi server MongoDB dan shell MongoDB Anda.

2. Selanjutnya, jalankan kembali show dbs perintah untuk memeriksa apakah Anda masih dapat mengakses database.

show dbs

Perintah harus menunjukkan kepada Anda semua database, bahkan database admin. Tetapi seperti yang Anda lihat di bawah, tidak ada yang muncul. Mengapa? Melihat daftar database adalah hak istimewa yang disediakan hanya untuk pengguna administratif.

Anda belum mengautentikasi mongo shell Anda untuk menggunakan peran Admin, jadi Anda tidak diizinkan untuk melihat daftar database.

Dengan otentikasi diaktifkan, koneksi akan gagal jika seseorang mencoba mengakses database menggunakan string koneksi yang tidak berisi kredensial yang benar.

Mengotentikasi string koneksi adalah bagian inti dari keamanan MongoDB, dan Anda harus menerapkan otentikasi di semua lapisan aplikasi. Semua koneksi ke MongoDB harus menggunakan string otentikasi yang terdiri dari kredensial. Kredensial ini mencakup nama pengguna dan sandi yang benar.

3. Jalankan exit perintah untuk keluar dari shell MongoDB.

exit

4. Sekarang, jalankan perintah di bawah ini untuk masuk ke shell MongoDB dengan nama pengguna administratif yang baru Anda buat (-u ) dan sandi (-p ). Ganti AdminATA dengan nama pengguna yang Anda buat di bagian “Membuat Pengguna Administratif Khusus” (langkah empat).

--authenticationDatabase parameter memberitahu shell MongoDB untuk mengautentikasi terhadap admin basis data.

mongo -u AdminATA -p --authenticationDatabase admin

5. Berikan kata sandi Anda untuk pengguna administratif Anda saat diminta.

6. Terakhir, jalankan kembali show dbs perintah untuk mencoba dan melihat apakah Anda dapat melihat semua database.

show dbs

Kali ini, seperti yang Anda lihat di bawah, daftar database muncul karena Anda adalah pengguna admin.

Kesimpulan

Dalam tutorial ini, Anda mempelajari cara menghubungkan untuk membuat pengguna administratif dan mengaktifkan otentikasi. Anda telah belajar untuk mengendalikan keamanan MongoDB Anda dan membatasi siapa yang dapat mengakses database di server Anda.

Pada titik ini, Anda harus memutuskan apakah siapa yang dapat mengakses apa. Jadi apa selanjutnya untuk Anda? Mungkin mempelajari cara menggunakan wadah MongoDB dengan aman?


Linux
  1. Bagaimana Anda Dapat Melindungi Komputer Anda?

  2. Cara Membuat Cadangan Database Anda Melalui Panel Kontrol Plesk

  3. Cara Membuat Database Baru atau Pengguna Database di Control Panel Plesk

  1. Bagaimana cara menambahkan pengguna ke desktop Linux Anda

  2. Cara Membuat Database &Koleksi di MongoDB

  3. Pengontrol Kecerahan – Kendalikan Penuh Kecerahan Monitor Anda

  1. Keamanan CI/CD - Cara Mengamankan Pipeline CI/CD Anda

  2. Cara Menetapkan Pengguna ke Database MySQL di cPanel

  3. Cara Membuat Pengguna Database MySQL di cPanel