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:
- 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.
- 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.
- 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.
- 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.
- Đổ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ế admin
và password
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.
- 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:
- 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.
- 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:
- 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.
- 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.
- Lưu các thay đổi và thoát khỏi trình soạn thảo văn bản.
- 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:
- 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.
- 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.
- 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.
- 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/