Halo, Sobat Jagoan! MongoDB merupakan salah satu jenis database NoSQL atau berbentuk dokumen. MongoDB yang dipasang di server berpotensi dihack orang yang tidak bertanggung jawab. Yang paling banyak dialami orang adalah kasus ransomware seperti mengenskripsi data di server dan meminta tebusan.
Secara default MongoDB tidak mengaktifkan fitur authentication dalam bentuk username password. Sehingga artikel kali ini membahas cara membuat username dan password di MongoDB server sekaligus memberikan role (hak akses) kepada user agar terhindar dari akses yang tidak sah.
Prasyarat
- Memiliki layanan VPS Ubuntu yang aktif
- Sudah menginstall MongoDB, kalau belum simak caranya pada panduan Cara Install MongoDB di VPS Ubuntu
Step 1: Buat Koneksi SSH pada Server MongoDB
Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.
Step 2: Membuat Username, Password, dan Role
Mulai session MongoDB:
mongosh
Selanjutnya masuk ke database ‘admin’ , default bawaan dari MongoDB yang memiliki akses semua database dengan role write dan read.
use admin

Lalu, jalankan perintah berikut untuk membuat username ‘admin’ dengan password ‘admin123’ dan memberikan role userAdminAnyDatabase yang bisa membuat, menghapus, dan mengelola user di semua database dan db: “admin” role ini berlaku di database admin, yang merupakan database khusus untuk administrasi MongoDB.
Kamu bisa sesuaikan ini dengan kebutuhan kamu ya.
db.createUser({ user: "admin", pwd: "admin123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

Lalu, tambahakan role readWriteAnyDatabase untuk bisa mengakses semua database.
db.grantRolesToUser('admin', [{ role: 'readWriteAnyDatabase', db: 'admin' }]);

Lalu, keluar dari session terminal MongoDB
exit
Step 3: Konfigurasi di File mongos.conf
Di terminal root, jalankan command berikut untuk mengaktifkan konfigurasi autentikasi.
sudo nano /etc/mongod.conf
Lalu edit baris security menjadi seperti berikut.
security:
authorization: enabled

CTRL+X, Y lalu ENTER untuk menyimpan perubahan.
Kemudaian restart MongoDB.
sudo systemctl restart mongod
Nah, kalau authorization sudah aktif sekarang kalau mau memulai session di MongoDB bukan lagi mongosh tapi jalankan command di bawah ini. Karena MongoDB akan menolak semua perintah penting kalau kamu belum login setelah authorization diaktifkan.
mongosh -u "admin" -p "admin123" --authenticationDatabase "admin"
Penjelasan:
- -u: username
- -p: password
- –authenticationDatabase: database tempat user disimpan (admin)
Troubleshooting
Kalau setelah memodifikasi mongod.conf lalu kamu periksa status MongoDB dan mengembalikan pesan berikut:
Error parsing YAML config file: yaml-cpp: error
Kemungkinan masalahnya karena kesalahan indentasi. YAML sangat sensitif terhadap spasi, dan penggunaan karakter tab dapat menyebabkan error. Pastikan kamu menggunakan spasi (bukan tab) untuk indentasi, dan periksa kembali penulisan key-value agar sesuai dengan struktur YAML yang benar.
Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!
Hai, Sob! Buat kamu yang udah kepo sama cara pantau monitoring kinerja VPS kamu, yuk ikutin tutorialnya dibawah ini.Tapi, sebenernya Read more
Hai, Sob, kamu suka bingung gimana caranya migrasi file server website ke VPS tanpa cPanel? Yuk, kamu harus banget pantengin Read more
Kamu ingin melakukan login SSH secara otomatis? Gak perlu bingung karena kamu bisa ikutin tutorial di bawah ini untuk melakukan Read more
Hai, Sob! Tahukah kamu, Mengamankan akses ke VPS kamu sangat penting tak terkecuali untuk akses dari SSH. Wah, gimana tuh Read more