Chúng tôi có một máy chủ công cộng chấp nhận kết nối SSH từ nhiều khách hàng phía sau tường lửa.
Mỗi khách hàng này tạo một đường hầm Reverse SSH bằng cách sử dụng ssh -R
lệnh từ máy chủ web của họ tại cổng 80 đến máy chủ công cộng của chúng tôi.
Cổng đích (ở phía máy khách) của Reverse SSH Tunnel là 80 và cổng nguồn (ở phía máy chủ công cộng) phụ thuộc vào người dùng. Chúng tôi đang lên kế hoạch duy trì bản đồ các địa chỉ cổng cho mỗi người dùng.
Ví dụ: khách hàng A sẽ tạo đường hầm máy chủ web của họ tại cổng 80 đến cổng 8000 của chúng tôi; khách hàng B từ 80 đến 8001; khách hàng C từ 80 đến 8002.
Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver
Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver
Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
Về cơ bản, những gì chúng tôi đang cố gắng làm là ràng buộc mỗi người dùng với một cổng và không cho phép họ chuyển sang bất kỳ cổng nào khác.
Nếu chúng tôi đang sử dụng tính năng đường hầm chuyển tiếp của SSH ssh -L
, chúng tôi có thể cho phép cổng nào được tạo đường hầm bằng cách sử dụng permitopen=host:port
cấu hình. Tuy nhiên, không có tương đương cho đường hầm SSH đảo ngược.
Có cách nào để hạn chế các cổng đường hầm ngược cho mỗi người dùng không?