it-swarm-vi.com

Nguy hiểm của việc mở ra một loạt các cảng? (mosh)

Tại sao chúng ta thường định cấu hình tường lửa để lọc tất cả lưu lượng truy cập mà chúng tôi không cho phép cụ thể? Đây có phải chỉ là một lớp bảo mật bổ sung cho phòng thủ chuyên sâu không mua gì cho chúng tôi nếu chúng tôi không chạy phần mềm độc hại trên hệ thống của mình?

Có bất kỳ nguy hiểm nào khi nói rằng việc mở các cổng nói 60000 đến 61000 cho các kết nối UDP đến sẽ kém an toàn hơn đáng kể so với việc chỉ mở một vài cổng?

Tôi vừa nghe nói về mosh mà quảng cáo chính nó là một cách tốt hơn để làm ssh di động (qua wifi/điện thoại di động). Mosh sử dụng UDP thay vì TCP, vì vậy nếu bạn nhập nhanh một đường hầm hoặc thay đổi địa chỉ IP của bạn (chuyển đổi tháp điện thoại di động), bạn không phải chờ để quay lại từ điều khiển tắc nghẽn hoặc thiết lập phiên ssh mới. Về cơ bản mosh sử dụng ssh để khởi động máy chủ mosh từ xa như một người dùng không có quyền, trao đổi khóa AES-OCB bằng ssh, sau đó gửi/nhận các gói được mã hóa (với số thứ tự) đến một cổng trong phạm vi 60000-61000, mà bạn nên cấu hình tường lửa của bạn để mở.

Tôi hơi khó chịu khi mở ~ 1000 cổng cho các kết nối (UDP) đến, nhưng không thể nghĩ ra lý do rất chính đáng cho việc này. Nếu không có phần mềm nào nghe dữ liệu trên cổng đó, thì nó sẽ bị bỏ qua phải không? (Khi chỉnh sửa: không - nó thực sự chỉ đạo máy chủ gửi lại phản hồi không thể truy cập đích ICMP (ping)). Tôi đoán nếu tôi có phần mềm độc hại chạy trên máy chủ của mình, có thể chờ nghe hướng dẫn từ các địa chỉ IP giả mạo trên một trong những cổng được mở này. Tuy nhiên, phần mềm độc hại chạy trên các hệ thống được kết nối internet đã có thể thiết lập kết nối/tải xuống thông tin từ các máy chủ phần mềm độc hại khác (mặc dù sẽ phải biết địa chỉ IP) và tìm nạp hướng dẫn, vì vậy điều này không bảo mật kém an toàn hơn nhiều.

EDIT: Thật thú vị, chỉ cần nhìn thấy điều này câu hỏi khác dẫn tôi đọc về DP_flood_attack . Tôi đoán thêm, tôi sẽ cần phải vô hiệu hóa bằng cách nào đó hệ thống của tôi gửi các phản hồi không thể truy cập đích ping cho các cổng UDP mới mở.

29
dr jimbob

Ngoài câu trả lời của Justin về việc vô tình mở các ứng dụng để truy cập từ xa, hãy nhớ rằng ngay cả khi không có gì đặc biệt lắng nghe kết nối, hệ điều hành LUÔN LUÔN sẽ lắng nghe - nếu chỉ định tuyến/ánh xạ tới quy trình phù hợp hoặc từ chối hoặc âm thầm thả gói tin. Do đó, hệ điều hành vẫn là một vectơ tấn công cụ thể có thể vẫn không được bảo vệ khi tường lửa cho phép lưu lượng truy cập đến một cổng "không hoạt động".

Tuy nhiên, tất cả mọi thứ đều bình đẳng trong kịch bản này, việc mở một cổng không hoạt động hoặc 1000 cổng không hoạt động sẽ tạo ra rất ít sự khác biệt. Nhưng chắc chắn chú ý lời khuyên của nguyên tắc đặc quyền tối thiểu.

11
logicalscope

Theo như tôi hiểu, Mosh không thực sự cần một nghìn cổng để hoạt động; nó chỉ cần một (mỗi khách hàng). Vì vậy, bạn có thể mở bất kỳ cổng nào và bảo Mosh sử dụng nó (từ hướng dẫn sử dụng ):

mosh -p 60000 my.server

Lý do để chọn cổng ngẫu nhiên là gì? Điều này tôi không hiểu.

[CẬP NHẬT] nó không chọn một cổng ngẫu nhiên. Nó tìm kiếm thông qua một tập hợp các cổng để tìm cổng mở đầu tiên ( xem mã ). Nếu không, bạn phải chọn một cổng miễn phí theo cách thủ công trên hệ thống nhiều người dùng.

Điều này có nghĩa là bạn chỉ cần nhiều cổng như bạn có người dùng (những người có thể sử dụng mosh) trên máy chủ của bạn . Nếu đó là hộp của riêng bạn, bạn chỉ cần mở cổng 60000.

11
Leonid Shevtsov

Vấn đề là việc mở ra một loạt các cổng có thể cho phép kẻ tấn công phơi bày một ứng dụng khác có thể đang sử dụng các cổng đó. Ví dụ: ứng dụng EMR của tôi được sử dụng để lưu trữ hồ sơ bệnh nhân có thể được cấu hình để sử dụng phạm vi cổng đó, nhưng tôi không muốn ai đó từ Internet không tin cậy có thể khai thác việc mở đó. Nó đi xuống để thực thi quyền riêng tư ít nhất có thể. Trong các kịch bản này, bạn sẽ muốn tận dụng VPN sẽ mở phạm vi cổng đó. Điều đó quan tâm đến vấn đề xác thực và do đó ủy quyền. Nếu bạn nói về tường lửa bên ngoài của bạn trên DMZ thì bạn chỉ tin tưởng ở cấp độ giao thức/cổng và do đó phải nghiêm ngặt hơn nữa.

6
Justin Andrusk

Hoàn toàn có thể giảm thiểu phạm vi cổng UDP của mosh trong

https://github.com/keithw/mosh/blob/master/src/network/network.h#L77

Nếu tôi hiểu chính xác thì đây là phạm vi mà quá trình người gửi sẽ chọn cổng UDP. Vì vậy, có thể biên dịch phiên bản mosh "phạm vi hẹp" cục bộ và có chính sách UDP tường lửa "phạm vi hẹp" phù hợp cho mosh.

Điều này đưa tôi đến câu hỏi meta: phạm vi hẹp đủ rộng để mosh có ích?

Nếu tôi hiểu chính xác, một cổng cho mỗi máy chủ mosh là cần thiết. Vì vậy, trong trường hợp máy chủ cá nhân và thói quen sử dụng tmux (= chỉ một khách hàng) một để làm việc và một để sửa chữa mọi thứ là cần thiết.

Nhưng tôi có thể sai, tôi không phải là lập trình viên C và tôi chỉ phát hiện ra mosh ngày hôm qua.

4
Peter