Sử dụng các thùng chứa LXC tối thiểu như một chroot tiên tiến và an toàn để cô lập các dịch vụ


3

Trước hết tôi không phải là chuyên gia bảo mật và tôi chưa bao giờ sử dụng LXC trước đây.

Tôi đang cố gắng làm cứng hết mức có thể một máy chủ cứng Gentoo. Để làm như vậy, tôi nghĩ sẽ sử dụng LXC, có thể kết hợp với KVM, để cách ly càng nhiều dịch vụ mạng càng tốt.

Tôi đã đọc trang hướng dẫn unix LXC, nhưng nó vẫn còn khá mơ hồ đối với tôi về cách các bộ chứa Linux được thiết lập. Tìm kiếm trên internet để biết thêm thông tin, tôi chỉ tìm thấy tài liệu về việc chạy toàn bộ hệ thống bên trong một thùng chứa Linux, đây không phải là điều tôi muốn làm.

Những gì tôi muốn sử dụng LXC cho, chỉ chạy một ứng dụng trong một thùng chứa, chỉ bao gồm các tệp / tài nguyên tối thiểu nghiêm ngặt mà ứng dụng yêu cầu. tôi làm không phải muốn chạy toàn bộ hệ thống bên trong một container, tránh thậm chí có busybox.

Ví dụ: tôi muốn cách ly ntpd dịch vụ, theo như tôi biết để có thể đồng bộ hóa đồng hồ hệ thống, tôi không thể chạy nó trong máy ảo. Nhưng tôi có thể chạy nó trong chroothoặc tôi cho rằng tôi có thể chạy nó trong một thùng chứa Linux để cách ly và bảo mật tốt hơn.
Để làm như vậy tôi sẽ phải:

  1. Xác định những gì tập tin ntpd yêu cầu khi thiết lập nhà tù chroot.
  2. Đây là nơi tôi không biết phải làm gì và làm thế nào: Cấu hình LXC, mẫu, nơi đặt các tệp của tôi để thiết lập vùng chứa, v.v.
  3. Chạy nó với lxc-execute

Nó có phải là một cái gì đó có thể? Điều gì sẽ là các bước khác nhau để xây dựng, chạy và quản lý một container như vậy?

Câu trả lời:


4

Trong lịch sử, LXC đã có nhiều vấn đề bảo mật liên tục khiến nó không bị cô lập thực sự, nhưng các cải tiến về cơ sở hạ tầng trong nhân Linux chính đã giảm bớt hầu hết (nếu không phải tất cả) những lo ngại này.

Xem đây để biết tổng quan về các vấn đề / cải tiến bảo mật đã được quan sát thấy trong các bản phát hành Ubuntu liên tiếp kèm theo LXC.

tôi đã tìm thấy điều này Tài liệu kernel Unbreakable Enterprise Kernel đặc biệt hữu ích để giải thích cách thực hiện các thùng chứa cấp ứng dụng.

Từ các tài liệu:

Các thùng chứa ứng dụng không được tạo bằng cách sử dụng các tập lệnh mẫu. Thay vào đó, một thùng chứa ứng dụng gắn kết tất cả hoặc một phần của hệ thống tệp gốc của máy chủ để cung cấp quyền truy cập vào các tệp nhị phân và thư viện mà ứng dụng yêu cầu. Bạn sử dụng lệnh lxc-exec để gọi lxc-init (phiên bản rút gọn của / sbin / init) trong vùng chứa. lxc-init gắn kết bất kỳ thư mục cần thiết nào như / Proc, / dev / shm và / dev / mqueue, thực thi chương trình ứng dụng đã chỉ định và sau đó đợi nó hoàn tất thực thi. Khi ứng dụng thoát, thể hiện container không còn tồn tại.

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.