Làm cách nào tôi có thể giới hạn chuyển tiếp cổng ssh * remote *?


22

Tôi cần giới hạn cổng nào có thể được ssh -Rngười dùng chuyển tiếp từ xa .

Tôi biết về permitopentùy chọn trên ủy quyền, nhưng như đã nói trên trang man, nó chỉ giới hạn ssh -Lchuyển tiếp cổng cục bộ ' '

Như đã thảo luận ở đây, người dùng sẽ có cùng netcathoặc tương tự, nhưng trong trường hợp này, người dùng không có quyền truy cập shell

Tôi cũng tìm thấy chủ đề này nói về việc sử dụng selinux hoặc LD_PRELOAD, nhưng tôi chưa bao giờ định cấu hình selinux trước đó và không thể tìm thấy thông tin về cách thực hiện điều đó với LD_PRELOAD.

có lẽ ai đó đã tạo ra một bản vá cho openssh để thực hiện điều đó?

EDIT: Tôi đã tìm thấy báo cáo lỗi này vì vậy tôi đoán nó chưa được thực hiện


Bạn đã tìm thấy một giải pháp cho điều này?
alex88

Tôi đã không làm thế, tôi đoán nó không thể được thực hiện cho đến khi lỗi trên được đóng lại hoặc ai đó viết một bản vá để thực hiện điều này
Lluís

Câu trả lời:


3

Điều này đã được thực hiện trong OpenSSH 7.8p1, được phát hành 2018-08-24. Trích dẫn từ các ghi chú phát hành:

thêm một lệnh PermitListen vào sshd_config (5) và tùy chọn allowlisten = ủy quyền tương ứng để kiểm soát địa chỉ nghe và số cổng có thể được sử dụng bằng cách chuyển tiếp từ xa (ssh -R ...).


4

Có một tùy chọn no-port-forwardingmà bạn có thể sử dụng, ngăn tất cả chuyển tiếp cổng. Trình bày ít nhất là kể từ OpenSSH 4.3p2 (CentOS 5.3 - máy cũ nhất mà tôi có quyền truy cập). Đặt nó ở cùng một nơi mà bạn sẽ đặt permitopen.


13
Hoàn toàn vô hiệu hóa chuyển tiếp cổng có vẻ quá mức và không phù hợp với câu hỏi. Tôi giả sử OP muốn hạn chế nó, nhưng vẫn cho phép một số chuyển tiếp cổng từ xa cụ thể.
gertvdijk

2
Có, tôi cần cho phép một số cổng chuyển tiếp
Lluís

0

Không thể giới hạn việc sử dụng ssh. Có lẽ selinux hoặc iptables có thể được sử dụng cho mục đích đó. Tuy nhiên, có một chiến lược thay thế có thể phù hợp hoặc không phù hợp với nhu cầu của bạn. Sử dụng liên kết với các socket UNIX. Điều này nên có sẵn bắt đầu từ phiên bản openssh 6.8.

Khi sử dụng các socket bạn có ACL hệ thống tập tin (mặc dù các socket của nó có thể phụ thuộc * nix) theo ý của bạn và bạn có thể sử dụng nó để ngăn một người dùng liên kết với các socket khác. Tuy nhiên, nó không ngăn chặn ràng buộc với các cổng theo bất kỳ cách nào, do đó tùy thuộc vào trường hợp sử dụng của bạn, điều đó có thể không hữu ích, nhưng có thể các cổng không thành vấn đề nếu bạn luôn chỉ có thể sử dụng ổ cắm.

Với các ổ cắm UNIX, việc xử lý các tệp ổ cắm lơ lửng có thể gặp vấn đề khi các nhà xuất bản đảo ngược cố gắng kết nối lại. Tôi có một câu hỏi khác (và trả lời) cho vấn đề đó. Tóm lại có lẽ bạn cũng muốn sử dụng StreamLocalBindUnlink yes:

Làm cách nào để dọn sạch ổ cắm đường hầm đảo ngược SSH sau khi đóng kết nối?


-1

Sao y: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it

Hình như bạn có thể sử dụng như sau?

Trong tệp cấu hình máy chủ có tùy chọn PermitOpen . Tùy chọn này có thể được sử dụng để chỉ định máy chủ và cổng có thể được thiết lập chuyển tiếp. Tùy chọn này có thể được sử dụng bên trong khối Kết hợp, do đó, nó có thể bị hạn chế bởi người dùng, nhóm hoặc tên máy chủ hoặc mẫu địa chỉ IP.

Chỉnh sửa: Vì vậy, trong cấu hình Máy chủ, hãy thêm vào như sau

Máy chủ PermitOpen: cổng

PermitOpen IPv4_addr: cổng

PermitOpen [IPv6_addr]: cổng


1
Chỉ trên U & L có thể được đánh dấu là trùng lặp.
GAD3R

1
Như đã nêu trong câu hỏi, đó là cho -L và nó đã được biết đến như một giải pháp không
alex88

1
Sẽ có bao giờ có một giải pháp cho điều này (bên cạnh iptables)?
davesave
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.