Vài Tips dùng SSH Tunnel Forward Kết Nối Mạng

By Hoang T. Nguyen

April 4, 2023

SSH Tunnel

Bài toán:

  • Hệ thống server của bạn được nằm tách biệt với các mạng khác nhau.
  • Bạn cần thể hiện app của bạn cho khách hàng nhưng hiện tại không public được thông tin server.
  • Bạn cần truy xuất bằng giao diện với một số service hoặc sử dụng tool bên thứ ba kết nối vào service đang chạy trên một server nội bộ.

Chuẩn bị:

  • Lưu ý SSH đã được cài đặt trên máy tính của bạn.

  • Cho phép tính năng ssh tunnel trên các server.

    Kiểm tra các thiết lập này đã có hiệu lực chưa: /etc/ssh/sshd_config

    AllowTcpForwarding yes
    GatewayPorts yes
    

    Nếu có thay đổi hãy restart lại service: sudo service sshd restart

Tiến hành:

  • Hiện tại bạn có một con server với IP là 10.0.0.1 - trên này đang chạy một app với port là 3000, bạn connect với app thông qua port 4000 trên chính máy tính của bạn. Ví dụ là http://localhost:4000. Ta chạy câu lệnh sau:
ssh -N -R 3000:localhost:4000 root@10.0.0.1

Và giờ bạn có thể truy cập được app thông qua http://localhost:4000 rồi đó

  • Nhiều hệ thống sẽ không truy cập được trực tiếp giữa máy tính của ta với trực tiếp server đang chạy, thay vào đó chúng ta thường sử dụng Proxy hoặc Bastion làm trung gian. Ví dụ bạn có một con server IP 10.0.0.1 đang chạy Mysql với port 3306, và một con proxy 10.0.0.100: Ta chạy lệnh:
ssh -J root@10.0.0.100  -L 3306:localhost:3306 root@10.0.0.1

Ngoài ra các bạn có thể tùy biến lại để phục vụ nhu cầu hoặc tạo thêm nhiều thứ thú với hơn với SSH Tunnel.

Posted on:
April 4, 2023
Length:
2 minute read, 270 words
See Also: