MongoDB

Bagaimana melindungi Pengaturan Kedudukan Replikasi MongoDB anda dari serangan “BOT” – dengan mengupayakan pengesahan

Written by Nagarajan P

| Nov 05, 2020

3 MIN READ

Pengesahan MongoDB adalah satu ciri keselamatan yang ada dalam kedua-dua edisi Community dan Enterprise. Dalam blog ini, kita akan lihat bagaimana untuk mengupayakan ciri ini pada nod Replikasi MongoDb dan melindungi data anda dari serangan BOT.

Pengenalan

Lebih 4000+ pangkalan data yang tidak dilindungi terdedah pada web awam baru-baru ini menjadi sasaran serangan automatik ‘meow’ yang memusnahkan data dengan sebarang penjelasan. Lebih daripada 97% darinya adalah pangkalan data Elastic dan MongoDB.
Salah satu cara untuk melindungi pangkalan data anda adalah dengan memastikan anda mempunyai mekanisma pengesahan yang baik.
Secara lalainya, tidak terdapat pengesahan di dalam MongoDB. Ini bermakna ia datang tanpa pengesahan. Jadi, kita harus mencipta pengguna dan peranan secara manual.
2020-08-17T05:19:45.763+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-08-17T05:19:45.763+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2020-08-17T05:19:45.763+0000 I CONTROL [initandlisten]
Terdapat banyak cara untuk membuat pengesahan MongoDB. Cara yang paling popular dan mudah adalah dengan mengupayakan pengesahan pada fail konfigurasi mongodb dan mengupayakannya.
Tetapi di dalam posting ini, saya akan menunjukkan bagaimana anda boleh mengupayakan pengesahan dan mencipta akaun pengguna dan mengesahkan pengguna tersebut untuk bersambung dengan nod Replikasi.
Ayuh kita mulakan…

Mengupayakan pengesahan pada MongoDB

Langkah: 1 – Cipta & buat Salinan keyfile:
Pertama, kita perlu menjana satu fail kunci bagi komunikasi dalaman antara nod replikasi. Set Replika dan kluster-kluster memerlukan pengesahan dalaman di antara ahli apabila akses kawalan diupayakan.

1. #generate Key file
2.
3. $mkdir /etc/mongodb/
4. cd /etc/mongodb/
5. $openssl rand -base64 756 > <path-to-keyfile>
6. $chmod 400 <path-to-keyfile>
7.
8. chown mongod:mongod <path-to-keyfile>

Buat salinan fail ini ke semua ahli set replika menggunakan ssh atau scp ke lokasi yang sama. Pastikan bahawa pengguna yang menjalankan instance ‘mongod’ adalah pemilik fail dan boleh mengakses keyfile tersebut. Di sini saya mendakwa ‘mongod’ sebagai pemilik saya.
Amalan terbaik adalah mengelak dari menyimpan keyfile dalam media storan yang boleh dengan mudah diputuskan sambungan dari perkakasan yang menjadi hos kepada instance mongod, seperti pemacu USB atau peranti storan disambung melalui rangkaian.
Langkah: 2 – Sambung MongoDB dan cipta pengguna admin dan sahkan
sambung ke instance mongodb secara lokal jika perkhidmatan diupayakan atau sambung dengan menggunakan fail konfigurasi.
1. mongo –port 27017
Cipta pengguna admin dengan peranannya. Di sini saya membuat pengguna saya sebagai “admin” dan kata laluan sebagai “password” dengan peranan root. Amalan yang baik adalah menjana log masuk pengguna dengan kata laluan yang kukuh yang mempunyai kombinasi {aksara + nombor + aksara khas}.

1. use admin
2. db.createUser(
3. {
4. user: “admin”,
5. pwd: “password”,
6. roles: [ { role: “root”, db: “admin” } ]
7. }
8. );
9. db.auth(“admin”, “password”)

Langkah 3 – Tambah keyfile, upayakan keizinan dan mula semula setiap ahli replikasi
Jadi, di langkah yang sebelumnya, kita telah melengkapkan pengguna dan kata laluan dan kita telah mengupayakan pengesahan kepada akaun pengguna tersebut. Kini, kita perlu mengupayakan keizinan dalam fail konfigurasi.
Edit fail konfigurasi mongodb dan upayakan ciri keselamatan dengan butiran keyfile yang telah kita buat dalam langkah 1.

1. #open config file
2.
3. $sudo vi /etc/mongod.conf
4.
5. #Enable Security
6. .
7. .
8. .
9. security:
10. authorization: enabled
11. keyFile: /etc/mongodb/mongodb-keyfile

Simpan fail konfigurasi dan mula semula instance mongodb. Lakukan perubahan ini dalam semua nod kedua yang lain juga. Ia akan memastikan komunikasi dalaman di antara nod replica yang telah diupayakan pengesahan.
1. $ sudo systemctl restart mongod
Itu sahaja! Kini pengesahan telah diupayakan dengan jayanya. Sambung dengan kelayakan pengguna anda untuk mengujinya. Juga, cipta akaun pengguna tambahan juga.
1. mongo hostname:port –authenticationDatabase “admin” -u “user” -p <password>

Rumusan

I hope this guide was useful to you. In this article we have seen how to set up MongoDB Replication with basic security using keyfile method for internal authentication between instances. For production deployment, it is recommended to upgrade key to X.509 certificate authentication. Stay tuned for my next article for more details.
Saya harap panduan ini berguna untuk anda. Di dalam artikel ini kita telah lihat bagaimana untuk membuat Replikasi MongoDB dengan keselamatan asas menggunakan kaedah keyfile bagi pengesahan dalaman di antara instance. Bagi mengatur kedudukan produksi, adalah disarankan untuk meningkatkan key ke sijil pengesahan X.509. Tunggu untuk artikel saya yang seterusnya dengan lebih butiran.


Go to Top