- vừa được xem lúc

Cách cài đặt và bảo mật MongoDB trên Ubuntu 22.04

0 0 12

Người đăng: DUY TRAN

Theo Viblo Asia

MongoDB là một cơ sở dữ liệu NoSQL hướng tài liệu phổ biến mã nguồn mở, cung cấp hiệu suất, khả năng mở rộng và linh hoạt cao. Nó được sử dụng rộng rãi trong các ứng dụng web hiện đại nhờ khả năng lưu trữ và quản lý các khối lượng lớn dữ liệu phi cấu trúc. MongoDB có thể được cài đặt trên nhiều hệ điều hành khác nhau, bao gồm Ubuntu 22.04.

Trong hướng dẫn này, chúng ta sẽ đi qua các bước để cài đặt và bảo mật MongoDB trên Ubuntu 22.04. Chúng ta sẽ đề cập đến quá trình cài đặt cho cả phiên bản Community và Enterprise của MongoDB. Ngoài ra, chúng ta sẽ đi qua quá trình bảo mật MongoDB với xác thực, mã hóa SSL/TLS và các quy tắc tường lửa.

Trong bài viết này, chúng ta sẽ đề cập đến các chủ đề sau:

  • Cài đặt MongoDB trên Ubuntu 22.04
  • Bảo mật MongoDB bằng mật khẩu
  • Kích hoạt xác thực cho MongoDB
  • Hạn chế truy cập đến MongoDB
  • Mở Cổng trong Tường Lửa với UFW

Điều kiện yêu cầu

Trước khi tiếp tục, hãy đảm bảo rằng bạn đã cài đặt Ubuntu 22.04 mới nhất và có một người dùng không phải là root với đặc quyền sudo. Hãy đảm bảo rằng hệ thống của bạn được cập nhật mới nhất bằng cách chạy lệnh sau:

sudo apt update -y && sudo apt upgrade -y sudo apt install gnupg2 -y

Sau khi hệ thống của bạn được cập nhật, chúng ta có thể tiến hành cài đặt MongoDB.

Bước 1: Cài đặt MongoDB

Việc cài đặt MongoDB trên Ubuntu là một quy trình đơn giản. Bạn có thể cài đặt thông qua trình quản lý gói của Ubuntu hoặc tải trực tiếp từ trang web của MongoDB.

Các bước sau đây sẽ cấu hình PPA chính thức của MongoDB trên hệ thống Ubuntu của bạn và cài đặt MongoDB:

  1. Import key GPG của MongoDB:
wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null 

Những lệnh này sẽ nhập key GPG cho kho lưu trữ MongoDB, được sử dụng để xác minh tính xác thực của các gói trong kho lưu trữ.

2.Thêm kho lưu trữ MongoDB vào trình quản lý gói của hệ thống của bạn:

sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list' 

Lệnh này sẽ thêm kho MongoDB vào danh sách các kho của trình quản lý gói trên hệ thống của bạn.

  1. Cập nhật danh sách các gói phần mềm có sẵn trong hệ thống bằng lệnh:
sudo apt update

Lệnh này sẽ cập nhật danh sách các gói phần mềm có sẵn để bao gồm các gói trong kho MongoDB.

  1. Cài đặt MongoDB:
sudo apt install mongodb-org 

Lệnh này sẽ cài đặt phiên bản ổn định mới nhất của MongoDB từ kho lưu trữ MongoDB.

  1. Lệnh này sẽ khởi động dịch vụ MongoDB.
sudo systemctl start mongod 

Bước này sẽ khởi động dịch vụ MongoDB.

Những bước trên sẽ cài đặt MongoDB thành công trên hệ thống Ubuntu.

Tiếp theo, điều quan trọng là bật xác thực cho cơ sở dữ liệu MongoDB. Điều này sẽ yêu cầu người dùng nhập tên người dùng và mật khẩu để truy cập cơ sở dữ liệu. Nếu không bật xác thực, bất kỳ ai có quyền truy cập vào máy chủ đều có thể xem và sửa đổi dữ liệu trong cơ sở dữ liệu.

Bước 2: Bảo mật MongoDB bằng mật khẩu.

Mặc định, MongoDB không yêu cầu mật khẩu để truy cập cơ sở dữ liệu. Tuy nhiên, nó được khuyến khích thiết lập mật khẩu để bảo vệ cơ sở dữ liệu và ngăn chặn truy cập trái phép.

1.Kết nối đến MongoDB shell:

mongosh

Lệnh này sẽ mở MongoDB shell, một giao diện dòng lệnh để tương tác với cơ sở dữ liệu.

  1. Đổi sang cơ sở dữ liệu admin bằng câu lệnh sau:
use admin 

Lệnh này sẽ chuyển sang cơ sở dữ liệu admin, được sử dụng để quản lý người dùng và vai trò trong cơ sở dữ liệu.

db.createUser({ user: "admin", pwd: "password", roles: [ { role: "root", db: "admin" } ]
})

Thay thế adminpassword bằng tên người dùng và mật khẩu mong muốn cho người dùng mới. Lệnh này sẽ tạo một người dùng mới với vai trò root trong cơ sở dữ liệu admin. Vai trò root có đầy đủ quyền truy cập vào tất cả các tài nguyên và chức năng của cơ sở dữ liệu.

  1. Lệnh này sẽ thoát khỏi MongoDB shell.
exit

Bước 3: Bật chức năng xác thực (authentication)

Mặc định, MongoDB không yêu cầu xác thực để truy cập cơ sở dữ liệu. Tuy nhiên, nên bật xác thực để bảo mật cơ sở dữ liệu và ngăn chặn truy cập trái phép.

Chúng ta cần tiến hành cấu hình cho MongoDB để bật tính năng xác thực. Các bước thực hiện như sau:

  1. Chỉnh sửa tệp cấu hình của MongoDB:
sudo nano /etc/mongod.conf 

Lệnh này sẽ mở tệp cấu hình của MongoDB trong trình chỉnh sửa văn bản Nano.

  1. Tìm đến phần bảo mật trong tệp cấu hình MongoDB và thêm các dòng sau:
security: authorization: enabled

Điều này sẽ kích hoạt tính năng xác thực cho MongoDB, yêu cầu người dùng xác thực bằng tên người dùng và mật khẩu để truy cập vào cơ sở dữ liệu.

3.Lưu thay đổi và thoát khỏi trình chỉnh sửa văn bản.

4.Lệnh này sẽ khởi động lại dịch vụ MongoDB để áp dụng các thay đổi cấu hình mới.

sudo systemctl restart mongod 

Lệnh này sẽ áp dụng các thay đổi cho cấu hình MongoDB và khởi động lại dịch vụ.

Bước 4: Hạn chế truy cập vào MongoDB

Mặc định, MongoDB cho phép kết nối từ bất kỳ địa chỉ IP nào. Tuy nhiên, để cải thiện bảo mật, nên hạn chế truy cập vào cơ sở dữ liệu chỉ định đến địa chỉ IP hoặc phạm vi cụ thể.

Để giới hạn truy cập vào MongoDB, làm theo các bước sau:

  1. Sửa file cấu hình MongoDB:
sudo nano /etc/mongod.conf 

Command này sẽ mở tệp cấu hình MongoDB trong trình soạn thảo văn bản Nano.

  1. Tìm phần net trong file cấu hình của MongoDB và thêm các dòng sau:
net: bindIp: 127.0.0.1,192.168.1.0/24

Thay thế 127.0.0.1,192.168.1.0/24 bằng địa chỉ IP hoặc dải IP mong muốn để cho phép truy cập. Điều này sẽ giới hạn quyền truy cập vào cơ sở dữ liệu chỉ định đến các địa chỉ IP hoặc dải IP đã chọn.

  1. Lưu các thay đổi và thoát khỏi trình soạn thảo văn bản.
  2. Lệnh sau sẽ áp dụng các thay đổi cho cấu hình MongoDB và khởi động lại dịch vụ:
sudo systemctl restart mongod 

Bước 5: Mở cổng tường lửa (UFW)

Để mở cổng MongoDB (27017) trong tường lửa trên một hệ thống chạy ufw, làm theo các bước sau:

  1. Kiểm tra trạng thái của tường lửa:
sudo ufw status 

Điều này sẽ hiển thị trạng thái hiện tại của tường lửa. Nếu tường lửa không hoạt động, bạn cần khởi động nó trước khi mở cổng MongoDB.

  1. Nếu tường lửa không hoạt động, hãy bắt đầu nó bằng cách chạy lệnh sau:
sudo ufw enable 

Dòng lệnh trên sẽ kích hoạt tường lửa và cho phép các kết nối đến hệ thống.

  1. Mở cổng MongoDB trong tường lửa:
sudo ufw allow 27017 

Đây là lệnh để mở cổng MongoDB (27017) trong tường lửa và cho phép các kết nối đến cổng.

  1. Danh sách các cổng mở để xác minh rằng cổng MongoDB đã được mở:
sudo ufw status 

Sau các bước này, cổng MongoDB sẽ được mở trong tường lửa và bạn có thể kết nối đến cơ sở dữ liệu từ các hệ thống khác.

Trong bài viết này, chúng ta đã học cách cài đặt và bảo mật MongoDB trên Ubuntu 22.04. Chúng ta đã cài đặt MongoDB từ kho lưu trữ chính thức và kích hoạt chức năng xác thực, mã hóa SSL / TLS và quy tắc tường lửa để bảo vệ cơ sở dữ liệu. Ngoài ra, chúng ta cũng đã tạo người dùng mới và giới hạn quyền truy cập vào MongoDB. Những bước này sẽ giúp tăng cường bảo mật cho cơ sở dữ liệu của bạn và ngăn chặn truy cập trái phép.

Link tham khảo: https://tecadmin.net/how-to-install-mongodb-on-ubuntu-22-04/

Bình luận

Bài viết tương tự

- vừa được xem lúc

TÌM HIỂU VỀ MONGODB

. 1. Định nghĩa về MongoDB. . MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng.

0 0 31

- vừa được xem lúc

Mongo DB cho người mới bắt đầu !

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 23

- vừa được xem lúc

Áp dụng kiến trúc 3 Layer Architecture vào project NodeJS

The problem encountered. Các framework nodejs phổ biết như Express cho phép chúng ta dễ dàng tạo ra Resful API xử lí các request từ phía client một cách nhanh chóng và linh hoạt.

0 0 64

- vừa được xem lúc

Mongo DB cho người mới bắt đầu ! (P2)

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 169

- vừa được xem lúc

Xây dựng CRUD RESTful API sử dụng Node, Express, MongoDB.

Introduction. Trong phạm vi bài viết này chúng ta sẽ cùng tìm hiểu về cách tạo restful api với Node, Express và MongoDB. . Xử lý các hoạt động crud.

0 0 213

- vừa được xem lúc

MongoDB là gì? Cơ sở dữ liệu phi quan hệ

Bài viết này mình sẽ giúp các bạn có cái nhìn tổng quan về MongoDB. Chúng ta không lạ gì với cơ sở dữ liệu quan hệ, còn với cơ sở dữ liệu phi quan hệ thì sao? MEAN stack (MongoDB, Express, AngularJS,

0 0 38