2015-06-17 14 views
5

Tôi tìm thấy câu trả lời này trên learning Linux Kernel Programming và câu hỏi của tôi cụ thể hơn cho các tính năng bảo mật của hạt nhân Linux. Tôi muốn biết cách giới hạn người dùng đặc quyền hoặc quyền truy cập của quy trình đối với các quy trình và tệp khác trái ngược với quyền truy cập đầy đủ của thư mục gốc.Làm thế nào để hạn chế quyền truy cập người dùng đặc quyền ở cấp hạt nhân Linux?

Cho đến bây giờ tôi tìm thấy:

  • dùngnhóm cho Discretionary Access Control (DAC), với sự khác biệt trong đọc, viết và thực hiện cho người dùng, nhóm và rễ
  • người dùng khác cho các nhiệm vụ ưu tiên cao hơn
  • setuidsetgid để mở rộng D sử dụng của AC và đặt ID nhóm/người dùng của quá trình gọi điện, ví dụ: người dùng chạy ping với quyền root để mở ổ cắm Linux
  • Khả năng cho các quyền chi tiết, ví dụ: loại bỏ chút suid của ping và thiết lập cap_net_raw
  • kiểm soát Groups (Cgroups) để hạn chế truy cập vào các nguồn tài nguyên tức là CPU, mạng, thiết bị io
  • Namespace để xem quá trình riêng biệt về IPC, mạng, hệ thống tập tin, pid
  • Secure Computing (Seccomp) để hạn chế hệ thống gọi
  • Linux Security Modules (LSM ) để thêm tính năng bảo mật bổ sung như bắt buộc Access Control, ví dụ: SELinux với Loại thực thi

Danh sách có đầy đủ không? Trong khi viết câu hỏi, tôi đã tìm thấy chế độ làm mát để theo dõi sự kiện hệ thống tệp, ví dụ: để quét vi-rút. Có lẽ có nhiều tính năng bảo mật hơn.

Có bất kỳ tính năng bảo mật Linux nào khác có thể được sử dụng theo cách có thể lập trình từ bên trong hoặc bên ngoài tệp hoặc quy trình để hạn chế quyền truy cập đặc quyền không? Có lẽ có một danh sách đầy đủ.

+2

Đọc [thông tin xác thực (7)] (http://man7.org/linux/man-pages/man7/credentials.7.html) và [khả năng (7)] (http://man7.org/linux /man-pages/man7/capabilities.7.html) và [không gian tên (7)] (http://man7.org/linux/man-pages/man7/namespaces.7.html) & [xattr (7)] (http://man7.org/linux/man-pages/man7/xattr.7.html) –

Trả lời

2

Cách unix truyền thống để hạn chế một quá trình bằng cách nào đó cần nhiều đặc quyền hơn và chưa có nó để nó không thể sử dụng nhiều hơn những gì nó cần là "chroot" nó.

chroot thay đổi gốc rõ ràng của quy trình. Nếu được thực hiện đúng, nó chỉ có thể truy cập các tài nguyên bên trong môi trường chroot mới được tạo ra đó (còn gọi là chroot jail) ví dụ: nó chỉ có thể truy cập các tệp đó, nhưng cũng có thể, chỉ những thiết bị đó, v.v.

Để tạo quy trình thực hiện điều này là tương đối dễ dàng và không phổ biến.

Để tạo môi trường trong đó phần mềm hiện có (ví dụ: máy chủ web, máy chủ thư, ...) cảm thấy như ở nhà và vẫn hoạt động đúng là cái gì đó đòi hỏi kinh nghiệm. Điều chính là tìm bộ tài nguyên tối thiểu cần thiết (thư viện được chia sẻ, tệp cấu hình, thiết bị, dịch vụ phụ thuộc (ví dụ: syslog), ...).

+0

Xin chào, môi trường chroot không giới hạn truy cập hạt nhân. Nếu một tiến trình bên trong chroot yêu cầu quyền truy cập đặc quyền tức là mở các cổng đặc quyền <1024 (trong ví dụ của bạn đây là trường hợp cho máy chủ web), do đó chroot sẽ chạy với các đặc quyền gốc, giúp thoát khỏi nhà tù. Xem http://unixwiz.net/techtips/chroot-practices.html – andpei

+0

trong trường hợp máy chủ web: chạy nó trong chroot trên cổng khác nếu đó là những gì bạn cần và trường hợp xấu nhất bạn có thể sử dụng bộ lọc gói hoặc tường lửa để chuyển hướng cổng 80 và 443 cho nó. Nhưng tôi đồng ý không giới hạn quyền truy cập vào hạt nhân. Tuy nhiên, nếu phần mềm được viết cho điều này, nó có thể để lại hầu hết nếu không phải tất cả các tệp của nó nằm ngoài môi trường chroot, sau đó thả các đặc quyền và sau đó thực hiện thủ tục chroot. Bằng cách đó, bạn chỉ có các đặc quyền người dùng thông thường và ví dụ: không có thiết bị đi lạc, nhị phân, thư viện, vv bên trong môi trường chroot. – swa66

-1

Bạn có thể thêm EFS, AppArmor, Yama auditctl, ausearch, aureport Công cụ tương tự như fanotify: Snort, ClamAV, OpenSSL, AIDE, nmap, GnuPG

+0

Xin chào, câu hỏi của tôi là giới hạn về tư nhân. người dùng truy cập vào hạt nhân, nhưng không phải về mã hóa (EFS, OpenSSL, GnuPG) hoặc phát hiện xâm nhập và bảo mật mạng (AIDE, Snort, nmap). AppArmor và Yama cũng được cung cấp bởi LSM. auditctl, ausearch, aureport cũng được SELinux sử dụng. – andpei

Các vấn đề liên quan