it-swarm-vi.com

Tại sao 1024 cổng đầu tiên chỉ giới hạn cho người dùng root?

Đây là sự tò mò nhàn rỗi hơn bất cứ điều gì khác. Một người bạn của tôi đã hỏi tôi 'phạm vi cổng nào mà chỉ root mới có thể sử dụng trong Linux?' Tôi bảo anh 0-1024 bị hạn chế. Sau đó, anh ấy hỏi tôi tại sao lại như vậy và ... tôi cảm thấy hụt hẫng. Không có ý kiến ​​gì.

Có một lý do tại sao các cổng này bị hạn chế và 1025-65535 không?

Hầu hết các dịch vụ mạng chính (HTTP, FTP, SSH, Telnet, HTTPS, POP, SMTP, v.v.) đều nằm trong phạm vi này vì vậy những câu trả lời có thể tôi nghĩ đến:

  • Một người dùng không tin cậy có thể chạy một chương trình nghe trên các cổng này để biết chi tiết đăng nhập.
  • Một người dùng không tin cậy có thể chạy một ứng dụng máy chủ trái phép.

Bất cứ ai có thể làm sáng tỏ ở đây?

53
Andrew Lambert

Giả sử bạn đang trao đổi dữ liệu với máy tính trên một cổng <1024 và bạn biết rằng máy tính đang chạy một số biến thể của unix. Sau đó, bạn biết rằng dịch vụ chạy trên cổng đó được quản trị viên hệ thống chấp thuận: nó chạy dưới quyền root hoặc ít nhất phải được bắt đầu bằng root.

Trên thế giới rộng lớn, hoang dã của Internet, điều này không thành vấn đề. Hầu hết các máy chủ được quản lý bởi cùng một người như các dịch vụ chạy trên chúng; bạn sẽ không tin tưởng vào gốc rễ hơn những người dùng khác.

Với các máy nhiều người dùng, đặc biệt là trên mạng cục bộ, điều này có thể quan trọng. Ví dụ: trong những ngày trước khi mật mã dân sự, một phương thức phổ biến để chạy các lệnh Shell trên một máy khác là rsh ( r emote sh hình elip); bạn có thể sử dụng xác thực mật khẩu hoặc bạn có thể xác thực chỉ bằng cách chứng minh bạn là người dùng X trên máy A (với máy B biết rằng X @ A có thể đăng nhập là X @ B không có mật khẩu). Làm thế nào để chứng minh điều đó? Máy khách rsh là root setuid và sử dụng số cổng <1024, vì vậy máy chủ biết rằng máy khách mà nó đang nói chuyện là đáng tin cậy và sẽ không nói dối về việc người dùng nào trên A đang gọi nó. Tương tự NFS được thiết kế trong suốt đối với người dùng và quyền, do đó, một cấu hình phổ biến là trên mạng cục bộ, mọi máy đều sử dụng cùng một cơ sở dữ liệu người dùng và người dùng N tại A hệ thống tập tin gắn kết từ máy chủ B sẽ có được quyền của người dùng N tại B. Một lần nữa, thực tế rằng máy khách NFS đến từ số cổng <1024 chứng tỏ rằng root tại A đã kiểm tra máy khách NFS, được cho là đảm bảo rằng nếu nó truyền một yêu cầu có ý định đến từ người dùng N thì yêu cầu đó thực sự là từ người dùng N.

Người dùng trái phép không thể chạy máy chủ trên các cổng thấp là một lợi ích khác, nhưng không phải là lợi ích chính. Trước đây, việc giả mạo khá mới lạ và người dùng đang chạy các máy chủ giả mạo sẽ nhanh chóng bị các quản trị viên cảnh giác phá hủy.