Cara Instal Database MongoDB pada Debian 8

Idcolo

 

MongoDB adalah database dokumen NoSQL yang bebas dan open source yang biasa digunakan dalam aplikasi web modern. Tutorial ini akan membantu Anda mengatur MongoDB di server Anda untuk digunakan dalam lingkungan aplikasi produksi. Anda akan menginstal MongoDB dan mengkonfigurasi aturan firewall untuk membatasi akses ke MongoDB.

 

Apa yang saya butuhkan ?

Untuk mengikuti panduan ini, ada beberapa hal yang harus anda penuhi, diantaranya :

  1. Satu server Debian 8, termasuk pengguna sudo non-root (user biasa).
  2. Seorang pengguna sudo non-root.

 

Langkah 1. Instal MongoDB

MongoDB sudah termasuk dalam repositori paket Debian, namun repositori MongoDB resmi memberikan versi paling mutakhir dan merupakan cara yang disarankan untuk menginstal perangkat lunak. Pada langkah ini, kami akan menambahkan repositori resmi ini ke server kami.

Debian memastikan keaslian paket perangkat lunak dengan memverifikasi bahwa mereka ditandatangani dengan kunci GPG, jadi kami harus mengimpor kunci untuk reparasi MongoDB resmi.

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Setelah berhasil mengimpor kunci, Anda akan melihat:

Output

gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Selanjutnya, kita harus menambahkan rincian repositori MongoDB sehingga kita bisa mengetahui darimana cara mendownload paketnya.

Terbitkan perintah berikut untuk membuat daftar file untuk MongoDB.

$ echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Setelah menambahkan rincian repositori, perbarui daftar paket:

$ sudo apt-get update

Sekarang instal paket MongoDB itu sendiri dengan perintah berikut:

$ sudo apt-get install -y mongodb-org

Ini menginstal versi stabil MongoDB terbaru, bersama dengan beberapa alat manajemen yang berguna untuk server MongoDB.

Setelah menginstal MongoDB, mulailah layanan ini, dan pastikan hal itu dimulai saat server Anda melakukan reboot:

$ sudo systemctl enable mongod.service
$ sudo systemctl start mongod

Kemudian gunakan systemctl untuk memeriksa apakah layanan telah dimulai dengan benar:

$ sudo systemctl status mongod

Anda harus melihat output berikut, menunjukkan bahwa layanan sedang berjalan:

Output

● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
   Active: active (running) since Tue 2017-02-28 19:51:51 UTC; 7s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 8958 (mongod)
   CGroup: /system.slice/mongod.service
           └─8958 /usr/bin/mongod --quiet --config /etc/mongod.conf

Feb 28 19:51:51 cart-61037 systemd[1]: Started High-performance, schema-free document-oriented database.

Sekarang MongoDB berhasil dipasang, mari kita amankan dengan firewall perangkat lunak.

 

 

Langkah 2. Mengamankan MongoDB dengan Firewall

Dalam kebanyakan kasus, MongoDB harus diakses hanya dari lokasi tepercaya tertentu, seperti server lain yang meng-host aplikasi. Untuk menyelesaikan tugas ini, Anda dapat mengizinkan akses pada port default MongoDB saat menentukan alamat IP dari server lain yang secara eksplisit akan diizinkan untuk terhubung. Kami akan menggunakan firewall iptables untuk menyiapkan peraturan ini, serta beberapa peraturan lainnya untuk mengamankan sistem.

Sebelum kita menulis peraturan, pasang paket iptables-persistent agar Anda dapat menyimpan peraturan yang Anda buat. Dengan cara ini aturan akan diterapkan setiap kali Anda me-restart server Anda. Jalankan perintah ini:

$ sudo apt-get install iptables-persistent

Selanjutnya, hapus peraturan yang ada yang mungkin ada, untuk jaga-jaga:

$ sudo iptables -F

Kemudian tambahkan aturan yang memungkinkan koneksi mapan untuk terus berbicara. Dengan cara ini koneksi SSH yang ada saat ini tidak akan terganggu:

$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Selanjutnya, pastikan akses SSH diperbolehkan:

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Jika Anda berencana untuk terhubung ke MongoDB dari server jauh, tambahkan peraturan ini yang akan memungkinkan akses ke port default MongoDB dari server aplikasi Anda:

$ sudo iptables -A INPUT -s your_other_server_ip -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -d your_other_server_ip -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

Selanjutnya, tambahkan rules yang memungkinkan lalu lintas pada perangkat loopback lokal:

$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT

Terakhir, ubah firewall policy untuk menjatuhkan semua lalu lintas lainnya:

$ sudo iptables -P INPUT DROP

Pastikan rules tadi berjalan dengan benar. Ketikan perintah dibawah ini untuk memastikanya.

$ sudo iptables -S

Anda akan melihat output yang mirip seperti ini:

Output
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s your_other_server_ip/32 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -d your_other_server_ip/32 -p tcp -m tcp --sport 27017 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

Terakhir, simpan rules:

$ netfilter-persistent save

 

Langkah 3 – Mengaktifkan Akses ke Server Eksternal (Opsional)

 

Versi MongoDB saat ini tidak menerima koneksi eksternal secara default. Jika Anda membatasi akses ke alamat IP tertentu dengan firewall, Anda dapat mengubah konfigurasi MongoDB untuk menerima koneksi jarak jauh.

Edit file konfigurasi MongoDB:

$ sudo nano /etc/mongod.conf

Cari bagian ini:

mongod.conf 

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

Mongo sedang mendengarkan alamat loopback lokal, jadi hanya akan menerima koneksi lokal. Ubah nilai bindIp sehingga menyertakan alamat IP dari server MongoDB Anda:

mongod.conf 

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1, your_server_ip

Simpan file dan keluar dari editor.

Kemudian restart MongoDB untuk menerapkan perubahan:

$ sudo systemctl restart mongod

Mesin remote Anda sekarang harus bisa terhubung. Namun, Anda mungkin juga ingin mengaktifkan otentikasi untuk mengamankan basis data Anda lebih jauh lagi.