Hướng dẫn open port mongodb - mở cổng mongodb

13/11/2020 01:11 | Lượt xem : 147 01:11 | Lượt xem : 147

      MongoDB là gì? MongoDB là một cơ sở dữ liệu tài liệu mã nguồn mở được sử dụng trong nhiều ứng dụng web. Theo mặc định, nó chỉ cho phép các kết nối bắt nguồn từ cùng một máy chủ nơi nó được cài đặt. Nếu bạn muốn quản lý MongoDB từ xa hoặc kết nối nó với một máy chủ ứng dụng riêng, có một số thay đổi bạn cần thực hiện đối với cấu hình mặc định.MongoDB là gì? MongoDB là một cơ sở dữ liệu tài liệu mã nguồn mở được sử dụng trong nhiều ứng dụng web. Theo mặc định, nó chỉ cho phép các kết nối bắt nguồn từ cùng một máy chủ nơi nó được cài đặt. Nếu bạn muốn quản lý MongoDB từ xa hoặc kết nối nó với một máy chủ ứng dụng riêng, có một số thay đổi bạn cần thực hiện đối với cấu hình mặc định.

      Trong bài viết này BKNS sẽ hướng dẫn các bạn cấu hình kết nối MongoDB từ một máy chủ từ xa đáng tin cậy. Các bạn sẽ cần phải thực hiện mở Port và cho phép địa chỉ IP tin cậy kết nối. Chúng ta đi vào cấu hình nhé.BKNS sẽ hướng dẫn các bạn cấu hình kết nối MongoDB từ một máy chủ từ xa đáng tin cậy. Các bạn sẽ cần phải thực hiện mở Port và cho phép địa chỉ IP tin cậy kết nối. Chúng ta đi vào cấu hình nhé.

      Bước 1: Hãy chắc chắn rằng cài đặt firewalld đã được cài đặt trên Centos 7.  Bước 1: Hãy chắc chắn rằng cài đặt firewalld đã được cài đặt trên Centos 7.

systemctl start firewalld.service
systemctl enable firewalld.service
systemctl status firewalld.service

      Bước 2: Cấu hình cài đặt tường lửa.Bước 2: Cấu hình cài đặt tường lửa.

      Kiểm tra cổng cài đặt MongoDB bằng lệnh netstat

netstat -plunt | grep mongo

      Kết quả:

tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod

      Allow IP connect đến Port mặc định của MongoDB. Thay đổi trusted_server_ip = IP tin cậy của bạn.trusted_server_ip = IP tin cậy của bạn.

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="trusted_server_ip" port protocol="tcp" port="27017" accept'
firewall-cmd --reload

      Kiểm tra lại danh sách được cho phép trên firewalld xem đã có Allow IP chưa.

firewall-cmd --list-all

Hướng dẫn open port mongodb - mở cổng mongodb

      Bước 3: Cấu hình BindIP Public.  Bước 3: Cấu hình BindIP Public.

      Hiện tại, mặc dù cổng đang mở, MongoDB hiện đang bị ràng buộc với 127.0.0.1, nghĩa là MongoDB chỉ có thể chấp nhận các kết nối bắt nguồn từ máy chủ nơi nó được cài đặt.

      Để cho phép kết nối từ xa, bạn phải chỉnh sửa tệp cấu hình MongoDB trong /etc/mongod.conf./etc/mongod.conf.

      Tìm network interfaces phần, phần giá trị bindIp.network interfaces phần, phần giá trị bindIp.

netstat -plunt | grep mongo
1
netstat -plunt | grep mongo
2
netstat -plunt | grep mongo
3
netstat -plunt | grep mongo
4
netstat -plunt | grep mongo
2
netstat -plunt | grep mongo
3
netstat -plunt | grep mongo
4

      Lưu lại cấu hình file và restart lại service.

systemctl restart mongod

      Sau khi reset xong, MongoDB của bạn sẽ có thể chấp nhận các kết nối từ xa từ bất kỳ máy nào bạn đã cho phép truy cập cổng 27017.

      Bước 3: Kiểm tra lại kết nối MongoDB.Bước 3: Kiểm tra lại kết nối MongoDB.

nc -zv mongodb_server_ip 27017

      Chúc các bạn cài đặt thành công!  Chúc các bạn cài đặt thành công!

Hào Phạm – Bộ phận kỹ thuật!

Cho phép truy cập từ xa với MongoDB – Remote access.

Hướng dẫn open port mongodb - mở cổng mongodb

Mặc định MongoDB không cho phép các kết nối từ bên ngoài. Tức là máy bạn cài MongoDB thì bạn chỉ có thể kết nối MongoDB từ máy của bạn. Máy khác không thể truy cập được MongoDB trên máy của bạn.

Để cho phép các kết nối từ xa tới MongoDB ta cần chỉnh lại tham số

netstat -plunt | grep mongo
5 trong file
netstat -plunt | grep mongo
6

Ví dụ máy mình là windows, cài mongodb bản 4.0 thì file mongo.cfg sẽ là:

netstat -plunt | grep mongo
7

Với hệ điều hành ubuntu thì file

netstat -plunt | grep mongo
6 mặc định nằm ở 
netstat -plunt | grep mongo
9

Mặc định giá trị

netstat -plunt | grep mongo
5 ban đầu sẽ là 
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod
1 tức là chỉ cho phép kết nối nội bộ / localhost

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

Để cho phép các máy trên cùng mạng LAN truy cập vào MongoDB trên máy của bạn thì bạn thêm địa chỉ LAN IP vào bindIP

Ví dụ LAN IP của mình là:

tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod
2, sau khi thêm LAN IP vào
netstat -plunt | grep mongo
5 thì các máy tính trong cùng mạng LAN có thể truy cập MongoDB trên máy mình qua địa chỉ 
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod
2

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1, 192.168.0.15

Tương tự nếu bạn có static ip, public ip thì đều có thể thêm vào

netstat -plunt | grep mongo
5 để truy cập mongodb qua các ip đó.

Đặc biệt, thay vì thêm địa chỉ ip vào

netstat -plunt | grep mongo
5 các bạn có thể để nó thành DNS
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod
7 nó sẽ tự động map tất cả các IP của máy bạn (public IP, LAN IP, public IP…) vào
netstat -plunt | grep mongo
5 và bạn có thể truy cập vào MongoDB bằng bất kỳ địa chỉ IP nào trong số đó.

...
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Với trường hợp dùng domain để kết nối tới MongoDB thì bạn cần map domain đó tới IP của bạn và thêm IP đó vào

netstat -plunt | grep mongo
5 hoặc cũng có thể khai báo chung cho tất cả bằng
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3453/mongod
7

Start MongoDB với tham số –bindIp

Ngoài cách cấu hình bindIP trong file

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="trusted_server_ip" port protocol="tcp" port="27017" accept'
firewall-cmd --reload
1 bạn cũng có thể chỉ rõ bindIp khi start MongoDB bằng lệnh
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="trusted_server_ip" port protocol="tcp" port="27017" accept'
firewall-cmd --reload
2

Ví dụ:

netstat -plunt | grep mongo
0

Okay, Done!

References:

https://docs.mongodb.com/…/#net-options