Kết nối vào database nội bộ bằng Jump Server (SSH Tunnel)

Chào các bạn, hôm nay mình sẽ viết một note ngắn hướng dẫn cách kết nối vào mạng nội bộ an toàn bằng phương pháp Jump Host , hay còn gọi là SSH tunnel.

Thông thường thì mọi công ty, database (CSDL) sẽ luôn được bảo mật trong một mạng nội bộ mà các kết nối từ bên ngoài không thể chạm vào được. Để kết nối được với server bên trong mạng này bạn có thể nhờ admin mở whitelist hoặc ACL cho bạn kết nối vào. Tuy nhiên các này tiềm ẩn nhiều rủi ro như:

  • Phương thức kết nối không được bảo mật
  • Khó quản lí (Nếu có 100 nhân viên thì cái list sẽ lên tới 100 IPs)
  • Các lí do khác về security….

Để tránh đi những bất cập trên chúng ta có thể sử dụng jump host.

Jump server?

Để hiểu rõ jump server trước tiên xin bạn hãy xem tấm hình bên dưới

Kết nối vào database nội bộ bằng Jump Host (SSH Tunnel)
Sơ đồ truy cập qua jump host

Rất dễ hiểu đúng không, chỉ đơn giản là chúng ta sẽ truy cập qua một trung gian có kết nối đã được set up bảo mật kĩ lưỡng với database nội bộ. Tuy nhiên quan trọng là làm như thế nào. Mình sẽ đưa ra một ví dụ mẫu ngay dưới đây.

Kết nối Jump Host dùng lệnh terminal

Do tác giả sử dụng macbook và linux nên mình sẽ trình bày cách kết nối jump host trên 2 hệ điều hành này, nếu bạn sử dụng window vui lòng đợi mình ra bài khác nhé.

Đầu tiên chúng ta mở terminal lên (app terminal trên macOS ) . Sau khi vào terminal rồi chúng ta sẽ gõ lệnh với cấu trúc như sau .

ssh -L <local port>:<Internal server>:<Internal server port> <Jump host>:<Jump host port> 

Trong đó:

  • Local port: bạn có thể chọn tùy ý đây sẽ là port mà bạn có thể dùng để kết nối với jump host
  • Internal server/port: Địa chỉ và port của server nội bộ
  • Jump host/port: Địa chỉ và port của jump host

Câu lệnh này sẽ hoạt động như sau:

  • 1. Tạo kết nối của máy bạn -> Jump host
  • 2. Truyền dữ liệu từ local port -> Jump host -> Internal server

Ví dụ 1: Công ty x có cấu hình như sau:

  • Local port : bạn chọn 80
  • Internal server/port: iammrx.com với port là 8080
  • Jump host/port : jumphostne.com với port là 5000

Như vậy chúng ta sẽ có câu lệnh ssh tunnel như sau:

ssh -L 80:iammrx.com:8080 jumphostne.com:5000

Vậy là bạn đã kết nối được vào server nội bộ iammrx.com rồi đó !

Lưu ý

Có một số lưu ý sau để áp dụng kiến thức này:

  • Để kết nối được với jump host, bạn cần phải liên hệ devops, hoặc server admin của công ty để xin quyền truy cập jump host và tạo ssh key cho họ (Sẽ hướng dẫn trong bài khác)
  • Ở các công ty rất lớn thường sẽ sử dụng VPN nội bộ, tuy nhiên các project nhỏ mọi người cũng hay sử dụng jump host.

Cảm ơn bạn đã đọc bài biết

Leave a Comment

Scroll to Top