Tiếng Việt

Công cụ dành cho nhà phát triển · Máy tính Chmod

SSH quyền quá mở: các chế độ chính xác ~/.ssh cần và lý do

· Tại sao nó quan trọng

chmod unix access-control

Tài liệu SSH riêng tư được hiển thị dưới dạng sơ đồ bit cấp phép Unix riêng biệt
Hình minh họa vector ToolAcre gốc

OpenSSH từ chối các khóa và tệp ủy quyền mà người dùng khác có thể đọc hoặc thay đổi. Bài đăng này liệt kê các chế độ mà nó mong đợi, giải thích cách kiểm tra StrictModes và chỉ ra cách xác minh chúng.

Quyền 0644 đối với id_ed25519 quá mở — khóa hoạt động ngày hôm qua bị từ chối sau khi sao chép sang máy mới

Khóa riêng được sao chép có chế độ 0644 giải mã thành rw-r--r--. Chủ sở hữu có thể đọc và thay đổi nó, trong khi nhóm và người khác có thể đọc nó. Thay vào đó, giá trị đặt trước của tệp riêng tư 600 sẽ hiển thị rw-------, để trống các lớp đó. Điều này nêu chính xác các bit nhưng không thể chứng minh lý do tại sao ứng dụng khách SSH chấp nhận hoặc từ chối khóa.

So sánh chế độ quan sát với cài đặt trước riêng tư. Các đầu vào 0644, 644 và 0o644 là tương đương và việc thay đổi thành 600 sẽ loại bỏ quyền đọc của nhóm và quyền đọc của người khác trong khi vẫn duy trì quyền đọc và ghi của chủ sở hữu. Lệnh được tạo là trơ. Hành vi của khách hàng, quyền sở hữu, ACL và ngữ nghĩa lưu trữ yêu cầu bằng chứng ngoài trình chuyển đổi này.

Tại sao khách hàng lại kiểm tra - khóa riêng mà người khác có thể đọc được không còn riêng tư nữa, vì vậy ssh từ chối tin tưởng vào nó

Kho lưu trữ có nhãn 600 “tệp riêng tư” và mô tả quyền truy cập chỉ dành cho chủ sở hữu. Số học của nó hỗ trợ mô tả đó: 6 cho phép chủ sở hữu đọc và ghi, trong khi cả hai số 0 đều loại bỏ các quyền thông thường khỏi nhóm và nhóm khác. Kết quả tượng trưng là rw-------. Điều này chứng tỏ các khoản trợ cấp không có trong chế độ chứ không phải khách hàng chấp nhận nó.

Không có thông báo triển khai, hướng dẫn sử dụng, cấu hình hoặc thời gian chạy OpenSSH nào xuất hiện trong các nguồn, do đó cài đặt trước không thể thiết lập chính sách từ chối. Máy tính không hứa hẹn rằng một chế độ sẽ giải quyết mọi lỗi cũng như không xác thực các nội dung chính. Nó cho thấy một cách đáng tin cậy liệu một ứng viên có hiển thị việc đọc, viết hoặc thực thi bên ngoài lớp chủ sở hữu hay không, và không hơn thế nữa.

Nhãn kho lưu trữ 600 riêng tư; chính sách từ chối của khách hàng cần bằng chứng OpenSSH

Hành vi StrictModes không được triển khai cũng như không được xác minh ở đây. Trình duyệt không có máy chủ SSH, kiểm tra thư mục chính, tra cứu quyền sở hữu hoặc đầu vào cấu hình. Nó không thể biết liệu ủy quyền có được tham khảo hay không, liệu danh tính khác có thể viết thư mục hay không hoặc liệu cài đặt có được áp dụng hay không. Việc vào một chế độ sẽ thực hiện chuyển đổi chứ không phải quyết định daemon hay kiểm tra hệ thống tệp.

Bit chính xác và chính sách chính xác là những câu hỏi riêng biệt. Chế độ 600 chứng minh rw-------, trong khi 700 chứng minh rwx------. Không xác định quyền sở hữu, kiểm tra thư mục gốc hoặc lập mô hình daemon. Thu thập tài liệu máy chủ và bằng chứng hệ thống tệp một cách độc lập, sau đó sử dụng máy tính để giải mã các quan sát mà không đưa ra kết quả đầu ra dưới dạng phán quyết StrictModes hoặc kiểm tra bảo mật hoàn chỉnh.

Hành vi StrictModes không được triển khai hoặc xác minh tại đây

Các chế độ 600 và 700 là các cài đặt trước riêng tư. Chế độ 600 cung cấp cho chủ sở hữu tệp thông thường khả năng đọc và ghi mà không có quyền của nhóm hoặc các quyền khác. Chế độ 700 thêm quyền thực thi của chủ sở hữu đối với một thư mục, cho phép truy cập mục nhập và nội dung được đặt tên, trong khi các lớp khác không nhận được gì thông qua các bit thông thường. Máy tính vẫn chưa biết chủ sở hữu thực sự.

Các quy tắc tệp khác liên quan đến SSH vẫn ở bên ngoài. Mặc dù khóa công khai và khóa được ủy quyền có thể liên quan nhưng kho lưu trữ không cung cấp yêu cầu nào được xác minh cho chúng. Máy tính có thể giải mã 644 thành rw-r--r-- nhưng không thể chứng nhận sự chấp nhận SSH. Bất kỳ bảng yêu cầu rộng hơn nào cũng cần bằng chứng OpenSSH có thẩm quyền không có trong các nguồn này và bài viết hiện có.

600 và 700 là các giá trị đặt trước riêng tư; các quy tắc tệp SSH khác vẫn ở bên ngoài

Một ví dụ được hỗ trợ chuyển đổi chuỗi danh sách mà không cần kiểm tra thư mục. Nếu đầu ra bên ngoài hiển thị -rw-r--r--, trình phân tích cú pháp sẽ trả về 644; nếu nó hiển thị rw-------, nó sẽ trả về 600. Ma trận đánh dấu các hộp đọc nhóm và đọc khác đã thay đổi. Điều này xác minh việc sao chép và số học trong khi không kiểm tra đường dẫn, quyền sở hữu và danh sách xuất xứ.

Chuỗi thư mục hoạt động tương tự. Một drwx------ được cung cấp sẽ trở thành 700 vì ký tự loại được nhận dạng sẽ bị xóa trước khi phân tích cú pháp chín vị trí quyền. Bản tóm tắt có thể hiển thị tiền tố thư mục. Trang này không liệt kê ~/.ssh cũng như không phát hiện các tệp, chủ sở hữu hoặc chỉ báo ACL, vì vậy chuyển đổi này không được mô tả là một cuộc kiểm tra.

Ví dụ đã hoạt động: chuyển đổi chuỗi chế độ sao chép mà không cần kiểm tra thư mục

Việc mất chế độ trên các công cụ chuyển giao và hệ thống tệp nằm ngoài bằng chứng về kho lưu trữ. Không có nguồn nào sao chép tệp, mở kho lưu trữ, gắn bộ nhớ hoặc so sánh siêu dữ liệu giữa các vị trí. Máy tính không thể quy 644 được quan sát cho một chia sẻ, ổ đĩa, hệ thống khởi tạo hoặc tiện ích lưu trữ. Nó chỉ nhìn thấy chế độ được nhập vào trường của nó mà không có lịch sử chuyển.

Khi một mục được sao chép có chế độ không mong muốn, hãy so sánh các giá trị mong đợi và quan sát được mà không đổ lỗi. Giữa 600 và 644, quyền của chủ sở hữu không thay đổi trong khi quyền đọc của nhóm và quyền đọc của người khác xuất hiện. Trình chuyển đổi hỗ trợ delta chính xác đó. Việc xác định xem việc chuyển giao, bảo quản hay tái tạo gây ra việc đó cần có bằng chứng từ điểm đến và đường dẫn chuyển giao.

Mất chế độ trên các công cụ chuyển giao và hệ thống tệp là bằng chứng bên ngoài kho lưu trữ

Định dạng khóa, trạng thái tác nhân và nhật ký máy chủ nằm ngoài máy tính này. Nó phân tích văn bản cấp phép bát phân và ký hiệu, không bao giờ khóa riêng, dữ liệu tác nhân ssh hoặc nhật ký. Chuyển đổi 600 hợp lệ không nói lên điều gì về tài liệu mật mã, danh tính được tải, trao đổi mạng hoặc phản hồi của máy chủ. Nó chứng tỏ chỉ có chủ sở hữu mới đọc và viết với nhóm trống và các lớp khác.

Ranh giới này ngăn chặn việc coi mọi lỗi SSH là chmod hoạt động. Nếu chế độ được quan sát khác với chế độ đặt trước riêng tư, máy tính sẽ hiển thị các bit chính xác; nếu nó đã khớp thì tuyến đường sẽ không cung cấp thêm SSH bằng chứng nào nữa. Tiếp tục với chẩn đoán bên ngoài thay vì mở rộng quyền truy cập. Chuyển đổi thành công không phải là xác thực và bản xem trước không thực hiện gì.

Rút ra: phương tiện riêng tư 600 và 700 — và máy tính xác nhận rằng chế độ bạn sắp đặt sẽ không mang lại lợi ích gì cho nhóm hoặc những người khác

Điểm đáng chú ý được hỗ trợ bởi kho lưu trữ là 600 và 700 dành các quyền thông thường cho chủ sở hữu. Các dạng biểu tượng của chúng, rw------- và rwx------, không chứa nhóm hoặc các trợ cấp khác. Văn bản bát phân, ký hiệu, hộp kiểm và tóm tắt xác minh các cách trình bày đó, trong khi các vị trí không đúng định dạng sẽ bị từ chối. Không điều nào trong số này chứng minh SSH sự chấp nhận, quyền sở hữu, tính hợp lệ của khóa hoặc xác thực.

Không biến chuyển đổi thành chính sách SSH phổ quát. Tuyến không triển khai StrictModes, kiểm tra thư mục chính, xác định chủ sở hữu hoặc xác thực các tệp chính. Sử dụng nó để xác nhận nhóm trống và các lớp khác, sau đó dựa vào bằng chứng SSH có thẩm quyền và hệ thống thực tế. Sao chép lệnh được hiển thị sẽ chuyển trách nhiệm sang shell và hệ thống tệp.