Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách sử dụng Reverse SSH Tunnel để cho phép kết nối bên ngoài với PC của bạn

Cách sử dụng Reverse SSH Tunnel để cho phép kết nối bên ngoài với PC của bạn

Nếu may mắn được Nhà cung cấp dịch vụ Internet (ISP) cung cấp cho bạn một địa chỉ IP chuyên dụng, bạn có thể thiết lập một máy chủ gia đình và cung cấp nó cho Internet bằng cách thêm một vài quy tắc chuyển tiếp cổng vào bộ định tuyến của mình. Nhưng nếu ISP của bạn yêu cầu bạn chia sẻ IP đó với hàng xóm của mình, thì chuyển tiếp cổng sẽ không giúp ích được gì. Các nhà cung cấp khác chỉ cần chặn các kết nối đến thông qua các quy tắc tường lửa.

Bạn có thể bỏ qua tất cả những hạn chế này với sự trợ giúp của một máy chủ riêng ảo. Mọi thứ sẽ hoạt động, ngay cả khi nó có ít hơn 512MB RAM, vì tất cả những gì nó phải làm là chuyển hướng lưu lượng mạng. Điều này rất nhẹ trên CPU và RAM. Máy chủ sẽ nhận các kết nối đến và chuyển hướng chúng đến máy tính của bạn thông qua cái được gọi là “đường hầm SSH ngược”. Bằng cách này, bạn có thể thiết lập bất kỳ loại máy chủ gia đình nào, với chi phí hàng tháng rất nhỏ.

Hãy tưởng tượng bạn tạo một máy chủ NextCloud để tải lên / đồng bộ hóa các tệp của mình. Bạn có được sự riêng tư khi có những tệp đó trên máy chủ gia đình của mình và sau đó bạn có thể mua ổ cứng 6TB để có được tất cả dung lượng bạn cần. Bạn chỉ phải trả một khoản tiền điện hàng tháng và ít hơn $ 5 / tháng cho một máy chủ riêng ảo. Theo cách đó, rẻ hơn so với hóa đơn hàng tháng cho một máy chủ có dung lượng 6TB.

Lưu ý :Điều này chỉ hoạt động để chuyển hướng lưu lượng mạng TCP. TCP được sử dụng bởi những thứ như máy chủ web (cổng 80 / tcp). UDP được sử dụng bởi một số (không phải tất cả) máy chủ trò chơi, ví dụ:Counter Strike (cổng 27015 / UDP). Có thể tạo đường hầm UDP, nhưng với một số "hack", đây có thể là chủ đề của một hướng dẫn trong tương lai.

Windows 10 hiện có ứng dụng khách SSH tích hợp sẵn

Không cần sử dụng PuTTY nữa để bắt đầu kết nối SSH. Trên thực tế, đối với hướng dẫn này, bạn sẽ thực sự sử dụng ứng dụng khách tích hợp này để thiết lập đường hầm. Đọc hướng dẫn về ứng dụng OpenSSH của Windows 10 nếu bạn chưa quen với nó.

Chuẩn bị máy chủ riêng ảo để kết nối đường hầm

Tạo Máy chủ riêng ảo với nhà cung cấp yêu thích của bạn, như DigitalOcean, Linode, Vultr hoặc bất kỳ thứ gì khác mà bạn thích. Điều quan trọng nhất là chọn một vị trí đặt máy chủ càng gần bạn càng tốt để giảm thiểu độ trễ của mạng. Cố gắng thiết lập máy chủ theo cách bạn có thể đăng nhập trực tiếp vào tài khoản gốc, tốt nhất là bằng khóa SSH, vì nó an toàn hơn. Điều này là bắt buộc nếu bạn muốn đặt máy chủ lắng nghe các kết nối đến trên các cổng dưới 1024, được gọi là cổng đặc quyền.

Mở dấu nhắc lệnh (hoặc một thiết bị đầu cuối nếu bạn đang sử dụng Linux) và đăng nhập vào máy chủ thông qua SSH.

Chỉnh sửa cài đặt máy chủ OpenSSH:

nano /etc/ssh/sshd_config

Nếu bạn không đăng nhập bằng quyền root nhưng với tư cách là người dùng thông thường, bạn sẽ cần sử dụng lệnh này, nếu không, bạn sẽ không thể lưu tệp:

sudo nano /etc/ssh/sshd_config

Cuộn xuống cho đến khi bạn tìm thấy một biến có tên là “GatewayPorts”. Dòng có thể trông giống như sau:#GatewayPorts no . Xóa “#” trước đó (thành bỏ ghi chú) và thay đổi dòng thành GatewayPorts yes .

Cách sử dụng Reverse SSH Tunnel để cho phép kết nối bên ngoài với PC của bạn

Nếu bạn không thể tìm thấy dòng, chỉ cần cuộn xuống cuối và tự thêm dòng:

GatewayPorts yes

Nhấn Ctrl + X , sau đó nhấn y , và cuối cùng Enter để lưu tệp.

Tải lại daemon SSH để nó bắt đầu cài đặt mới.

systemctl reload ssh.service

Thoát khỏi phiên SSH.

exit

Cách thiết lập đường hầm SSH ngược

Các tham số lệnh giống nhau trên các hệ điều hành Linux, Windows và thậm chí cả BSD. Cú pháp chung là:

ssh -R remote_port:host:localport your_username@IP-of-server
  • remote_port yêu cầu máy chủ chuyển hướng các kết nối đến với nó trên cổng đó.
  • host cho máy chủ biết kết nối sẽ được chuyển hướng đến địa chỉ IP nào. 127.0.0.1 sẽ được sử dụng ở đây để chuyển hướng đến máy tính của bạn.
  • localport hướng dẫn gói dữ liệu cổng nào nên được chuyển hướng đến. Tại đây, bạn nên đặt số cổng mà ứng dụng của bạn, được cài đặt trên máy tính cục bộ của bạn, nghe được.

Ví dụ:để chuyển tiếp tất cả các kết nối có trên cổng 80 (tới máy chủ) và gửi chúng đến cổng 8080 trên máy tính cục bộ của bạn, lệnh sẽ là:

ssh -R 80:127.0.0.1:8080 root@203.0.113.1

Điều này giả định rằng bạn có một máy chủ web, như Apache hoặc Nginx, lắng nghe trên cổng 8080 trên máy cục bộ của bạn. Nhưng nếu Apache / Nginx đang nghe trên cổng mặc định 80, thì không có vấn đề gì khi sử dụng cùng một cổng hai lần trong lệnh trước đó (vì chúng đang tham chiếu đến cổng 80 trong một máy chủ khác).

ssh -R 80:127.0.0.1:80 root@203.0.113.1

Tại thời điểm này, nếu ai đó nhập địa chỉ IP của máy chủ riêng ảo của bạn vào thanh địa chỉ của trình duyệt, kết nối của họ sẽ được chuyển hướng và phục vụ bởi máy tính cục bộ của bạn.

Cách sử dụng Reverse SSH Tunnel để cho phép kết nối bên ngoài với PC của bạn

Trong hình trên, một máy chủ web đơn giản dành cho Chrome đã được sử dụng để lắng nghe trên cổng 8887 theo mặc định. Bạn có thể tự mình thử thiết lập này bằng cách cài đặt ứng dụng rồi sử dụng lệnh như trong hình.

Điều đáng nói là để giữ cho đường hầm hoạt động, phiên SSH của bạn phải vẫn hoạt động. Để đóng đường hầm, hãy nhập exit trong cửa sổ terminal / command prompt.

Kết luận

Như bạn có thể thấy, không khó để tạo đường hầm SSH ngược, nhưng bảo mật một trang web thì có. Vì vậy, nếu bạn chọn triển khai một ý tưởng như một máy chủ NextCloud cục bộ, hãy cô lập nó ít nhất trong một máy ảo. Bằng cách này, nếu trang web của bạn bị xâm phạm, ít nhất phần còn lại của hệ điều hành của bạn sẽ không hề hấn gì.

Và, bạn biết đấy… luôn sao lưu những gì bạn không muốn có nguy cơ mất mát!