Hạn chế các ứng dụng cụ thể truy cập vào một số tệp nhất định


7

Thông thường các tệp riêng được lưu trữ trong thư mục chính của người dùng có thể được truy cập bởi các ứng dụng chạy với UID hiệu quả của người dùng. Làm cách nào tôi có thể hạn chế một ứng dụng cụ thể truy cập vào một số tệp riêng tư, trong khi vẫn cho phép các ứng dụng khác được truy cập bởi các ứng dụng khác bằng AppArmor trên openSUSE.


1
@mutzmatron - Q này là hoàn toàn tốt như nó là. OP không phải làm nghiên cứu toàn diện. Thông thường OP không quen thuộc với biệt ngữ / biệt ngữ nên có thể vượt xa họ trong cách tiến hành.
slm

@sim FYI Nhận xét của tôi là phản hồi cho câu hỏi ban đầu ( unix.stackexchange.com/revutions/105535/1 ) không phải dạng chỉnh sửa này.
jmetz 17/12/13

Chỉ cần chỉ ra điểm số 1 unix.stackexchange.com/help/how-to-ask , "Tìm kiếm và nghiên cứu Bạn đã tìm kiếm kỹ câu trả lời trước khi đặt câu hỏi chưa?"
jmetz 17/12/13

Câu trả lời:


4

AppArmor là Mô-đun bảo mật Linux bắt buộc (MAC) (LSM), được sử dụng bởi, trong số khác, Ubuntu và SUSE Linux. Quy tắc kiểm soát truy cập AppArmor được xác định trong cấu hình AppArmor trong . Các hồ sơ chỉ đơn giản là các tệp văn bản, chứa thông tin liên quan đến tài nguyên mà ứng dụng liên quan đến hồ sơ được phép truy cập./etc/apparmor.d/

Thông thường, khi thiết kế hồ sơ , người ta sẽ thực hiện ứng dụng với AppArmor được đặt thành complainchế độ, trong đó cho phép vi phạm kiểm soát truy cập, nhưng được ghi lại. Sử dụng các bản ghi, người ta sẽ tinh chỉnh hồ sơ. Khi cấu hình được thực hiện, AppArmor có thể được chuyển sang enforcechế độ, trong đó các quy tắc kiểm soát truy cập được xác định trong hồ sơ được thi hành và bất kỳ nỗ lực vi phạm nào được ghi lại.

Phác thảo của một hồ sơ AppArmor trông như thế này:

#include <tunables/global>
/path/to/application {
   [...]
}

Các #includechỉ thị cho phép các câu lệnh liên quan đến nhiều ứng dụng được đặt trong một tệp chung, sau đó được đưa vào hồ sơ của từng ứng dụng liên quan.

Các <tunables/global>tập tin, tương ứng với /etc/apparmor.d/tunables/globallần lượt bao gồm các định nghĩa nên có sẵn cho mọi hồ sơ. Một trong những bổ sung này bao gồm /etc/apparmor/tunables/home, cùng với một @{HOME}/** rw(hoặc chỉ thị tương tự) cấp các ứng dụng truy cập vào thư mục nhà của người dùng.

Nếu đây là trường hợp, để từ chối quyền truy cập vào một số tệp trong thư mục nhà của người dùng, người ta sẽ cần phải thêm một quy tắc hồ sơ để từ chối rõ ràng quyền truy cập vào các tệp . Điều này có thể được thực hiện bằng cách sử dụng lệnh deny, chẳng hạn như trong ví dụ sau:

#include <tunables/global>
/path/to/application {
   [...]
   # Allow directory listings (i.e. 'r' on directories).
   @{HOME}/ r

   # This is needed for saving files in the home directory.
   @{HOME}/** rw

   # Revoke access to specific file
   deny /home/user/file rwa
}

Việc từ chối truy cập read ( r), write ( w) và append ( a) vào /home/user/file.

Một cách khác là thêm các đường dẫn bạn muốn bảo vệ /etc/apparmor.d/abstractions/private-fileshoặc /etc/apparmor.d/abstractions/private-files-strictđảm bảo hồ sơ AppArmor cho mỗi ứng dụng bị ảnh hưởng bao gồm <abstractions/private-files>hoặc <abstraction/private-files-strict>. Các tệp này phải chứa các quy tắc cho các tệp phổ biến cần được bảo vệ cho mục đích riêng tư hoặc các cân nhắc bảo mật khác.

Để biết danh sách đầy đủ các chi tiết chế độ truy cập và biết thêm thông tin về hồ sơ bảo mật AppArmor, hãy tham khảo apparmor.d trang hướng dẫnHướng dẫn quản trị Novell AppArmor (pdf) .


1

[Để trả lời câu hỏi được chỉnh sửa, cụ thể hơn.]

Để hạn chế quyền truy cập trong AppArmor cho một chương trình, foo, hãy tạo một hồ sơ với mục

/usr/bin/foo {
    /etc/foo/* r,
}

Cho phép đọc quyền truy cập vào các tệp trong / etc / foo

    /etc/** 

sẽ cho phép đọc quyền truy cập vào tất cả các thư mục con trong / etc

Ngược lại, bạn có thể sử dụng

    deny /private/path rwa

để hạn chế quyền truy cập vào một con đường riêng.

Người giới thiệu


Trên thực tế, đây vẫn chưa phải là một câu trả lời ... Liên kết một mình không phải là một câu trả lời vì chúng có thể thay đổi mà chủ yếu, tất cả các liên kết gửi đến hướng dẫn sử dụng chung chung ... một câu trả lời cho biết đọc hướng dẫn không hữu ích lắm ... tbh :) . Mục đích của trang web này là để giúp giải quyết các vấn đề cụ thể. Không phải tất cả người dùng linux là chuyên gia CNTT và máy tính của họ là một công cụ, không phải là công việc chính của họ. Họ có những thứ khác để làm thay vì đọc tất cả các hướng dẫn của tất cả các phần mềm được cài đặt trên nó.
laurent

@laurent: trừ khi tôi nhầm, đây cũng không phải là trang để đăng các bài hướng dẫn đầy đủ - câu hỏi ban đầu rộng hơn nhiều so với mẫu hiện tại (do Thomas Nyman chỉnh sửa).
jmetz

@mutzmatron Trong khi tôi cố gắng cải thiện ngôn ngữ, câu hỏi đã được đặt ra cùng với "Làm cách nào để hạn chế quyền truy cập vào một số tệp nhất định bởi các chương trình nhất định". Câu trả lời ban đầu của bạn không giải quyết được điều này và bản chỉnh sửa gần đây nhất của bạn trả lời câu hỏi ngược lại: "Làm cách nào để tôi cấp quyền truy cập vào một số tệp nhất định cho một chương trình nhất định (sử dụng AppArmor)". Hơn nữa, tôi cho rằng OP không muốn tạo hồ sơ AppArmor từ đầu và mặc định bao gồm đã cấp quyền truy cập cho tất cả các thư mục nhà của người dùng, như tôi đã giải thích trong câu trả lời của mình .
Thomas Nyman

@ThomasNyman: không phải là ngụy biện về các chi tiết đặc biệt hữu ích, nhưng bài đăng gốc của OP đã kết thúc bằng "cách đặt quyền của các ứng dụng không thể truy cập các tệp riêng tư, nhưng tôi có thể truy cập chúng hoặc các ứng dụng khác. Tôi nghe thấy AppArmor, nó đơn giản phải không? Làm thế nào? ". Mặc dù bản chỉnh sửa của bạn thực sự đã trích xuất một câu hỏi mạch lạc, có ý nghĩa, nhưng câu hỏi ở dạng ban đầu của nó rất rộng và kết thúc mở.
jmetz

"... không phải là ngụy biện về các chi tiết đặc biệt hữu ích ..." Đồng ý, cũng không sao chép nguyên văn thông tin từ các câu trả lời hiện có. Nếu bạn nghĩ rằng một câu hỏi cần cải thiện, hãy đề xuất chỉnh sửa, tải xuống và để lại nhận xét hoặc gắn cờ. Phần thưởng hiệp hội trang web của bạn cung cấp cho bạn đủ danh tiếng để làm bất kỳ điều gì trong số đó. Nếu bạn làm đăng một câu trả lời, hãy chắc chắn rằng bạn thực sự cung cấp đầy đủ thông tin để thực sự trả lời câu hỏi.
Thomas Nyman
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.