Tôi cần một giải pháp proxy ngược cho SSH


10

Xin chào, đây là một tình huống tôi có một máy chủ trong một trung tâm dữ liệu của công ty cho một dự án. Tôi có quyền truy cập SSH vào máy này tại cổng 22. Có một số máy ảo đang chạy trên máy chủ này và sau đó là tất cả mọi thứ mà nhiều hệ điều hành khác đang hoạt động. Bây giờ Vì tôi đứng sau tường lửa của các trung tâm dữ liệu, người giám sát của tôi đã hỏi tôi rằng liệu tôi có thể làm điều gì đó để tôi có thể cho nhiều người truy cập Internet trực tiếp vào các máy ảo này không. Tôi biết nếu tôi được phép nhận lưu lượng truy cập trên cổng ngoài 22 thì tôi có thể thực hiện chuyển tiếp cổng. Nhưng vì tôi không được phép điều này nên điều gì có thể là một giải pháp trong trường hợp này. Những người muốn kết nối có thể là những kẻ ngốc hoàn toàn. Ai có thể hạnh phúc chỉ bằng cách mở putty tại máy của họ hoặc thậm chí có thể là filezilla.

Tôi không có tường lửa trong tay hoặc bất kỳ cổng nào ngoài 22 mở và thực tế ngay cả khi tôi yêu cầu họ không cho phép mở.2 lần SSH không phải là điều mà người giám sát của tôi muốn.


1
câu hỏi liên quan với một giải pháp tuyệt vời khác: serverfault.com/questions/361794/iêu
Kaii


sshpiperd hoạt động tuyệt vời!
Király István

Câu trả lời:


5

Bạn nên mở đường hầm ssh từ máy tính đến máy chủ trong trung tâm dữ liệu. Hãy đặt tên này là "server1". Nếu bạn đang sử dụng openssh, bạn có thể chạy

ssh -L0.0.0.0:8080:localhost:8080 you_username@server1

Điều này sẽ mở kết nối từ máy tính của bạn tại cổng 8080 đến máy chủ, cổng 8080, bỏ qua tường lửa ở giữa. Giả sử apache của bạn đang nghe trên cổng 8080. Định dạng chuyển tiếp cổng là nghe IP: cổng cục bộ: địa chỉ từ xa: cổng từ xa. Tất nhiên đối với máy chủ duy nhất bạn cũng có thể sử dụng

ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1

Xin lưu ý rằng tham số localhost trong -L có liên quan đến server1. Nói cách khác, máy chủ đang nhìn thấy các kết nối đến từ localhost, trong khi thực tế chúng đang đến từ máy tính của bạn qua kết nối ssh.

Bạn cũng cần tham số

AllowTcpForwarding yes

trong cấu hình ssh của máy chủ (thường là / etc / ssh / sshd_config).

Sau này, những người khác có thể kết nối với máy tính của bạn trên cổng 8080 để nhận kết nối qua Apache Reverse Proxy. Nếu bạn cần proxy chung (để người dùng có thể chọn địa chỉ, không chỉ địa chỉ cụ thể trong cấu hình Apache), bạn nên cài đặt mực trên server1 và sử dụng đường hầm ssh để mực cổng.


Bạn muốn nói khi tôi làm ssh -L0.0.0.0:8080:localhost:8080 you_username@server1 thì nếu kết nối vẫn đi qua cổng 22 của tường lửa (vì nếu điều đó không xảy ra thì tôi không thể làm gì được) và đường hầm ssh sẽ được thiết lập giữa máy cục bộ và máy từ xa tại các cổng được chỉ định nhưng toàn bộ lưu lượng sẽ diễn ra (cổng 22) tại tường lửa.
Trái phiếu

Khi bạn chạy đường hầm ssh, mà giao thông (từ cổng 8080 đến cổng 8080) đi kết nối bên trong ssh, sử dụng cổng 22. Firewall làm thấy lượng truy cập vào cổng 22, chứ không phải 8080.
Olli

Khi bạn đưa ra lệnh này, ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1 tôi muốn biết điều gì có thể được đặt là remote_server_address là IP của máy bên trong mà tôi muốn sử dụng server1 làm trung gian. Tôi có hiểu đúng không?
Trái phiếu

Bond: vâng, điều đó đúng. Tất nhiên, bạn cũng có thể chỉ định nhiều đường hầm -L (với các cổng nguồn khác nhau) để mở các kết nối đến nhiều máy bên trong. Ví dụ: "-L0.0.0.0: 8080: remote_server1: 80 -L0.0.0.0: 8081: remote_server2: 80 -L0.0.0.0: 8082: remote_server2: 22" (không có dấu ngoặc kép).
Olli

Làm cho vật rắn này sẽ yêu cầu thiết lập một máy chủ hoạt động như hồi phục bên ngoài trung tâm dữ liệu và cho phép lưu lượng truy cập. Tất nhiên, đường hầm ssh vẫn ổn như một giải pháp tạm thời, nhưng đối với một cái gì đó trong sản xuất, tôi khuyên bạn nên cài đặt proxy ngược thực sự sự phục hồi và điều chỉnh cài đặt tường lửa để chỉ cho phép 8080 kết nối từ lần phục hồi đó. Điều này cho biết, sẽ thông minh hơn khi đặt proxy ngược là một trong những máy ảo bên trong DC. Vì vậy, kết nối chỉ cần được bảo mật bằng SSL đối với máy này.
jmary

0

Có thể bạn có thể sử dụng một số thứ như SshMeIn . Đây là một hệ thống web mã nguồn mở sẽ tạo đường hầm ssh qua tường lửa, thậm chí bạn không cần phải mở các cổng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.