Ngăn chặn bom ngã ba bên trong container docker


8

Tôi hiện đang vật lộn với việc giới hạn số lượng quy trình cho người dùng mà tôi đã gọi sandbox.

Tôi đã cấu hình các giới hạn quy trình bên trong /etc/security/limits.confnhư thế này:

sandbox            hard    nproc            100

Nhưng nếu tôi muốn kết nối với container với tư cách là sandboxngười dùng, ssh trả về:

shell request failed on channel 0

Vì vậy, tôi đã đăng nhập rootvà kiểm tra xem có bao nhiêu tiến trình đang chạy bởi sandboxngười dùng, nhưng nó ít hơn 5.

Vì vậy, những gì có thể ngăn tôi đăng nhập thông qua ssh?
Không có giới hạn cài đặt đăng nhập ssh cho sandboxngười dùng hoạt động ok.

Hoặc có cách nào khác để ngăn chặn cuộc tấn công bằng bom ngã ba?

Câu trả lời:


2

bất kỳ lỗi nào khi kết nối với sshd đều được đăng nhập vào /var/log/auth.log (trong hệ điều hành dựa trên debian hoặc bảo mật trong các hệ thống dựa trên redhat)

Nếu không, thiết lập LogLevel VERBOSEtrong /etc/ssh/sshd_configvà sshd tải lại. Điều này sẽ cho bạn thấy lý do tại sao sshd từ chối kết nối của bạn tiếp theo.

Điều đó nói rằng, trở lại với bộ giới hạn bom nĩa của bạn: máy docker dựa trên LXC, một hệ thống container cho Linux. LXC đang sử dụng CGROUPS để quản lý giới hạn tài nguyên cho mỗi container.

trong / sys / fs / cgroups, bạn có thể thiết lập bất kỳ giới hạn nào cho LXC đang chạy và trong / Var / lib / lxc / vmname / config, bạn có thể thiết lập các giới hạn sẽ được thi hành khi khởi động.

Việc giới hạn số lượng quy trình trong một nhóm được thực hiện bởi hệ thống con bộ đếm tác vụ (được thêm vào nhân Linux vào năm 2011 http://lkml.iu.edu//hypermail/linux/kernel/1109.0/01455.html )

Do đó, với một nhân linux đủ gần đây, việc giới hạn số lượng quy trình được phép cho một nhóm được thực hiện bằng cách thêm loại dòng này vào tệp cấu hình lxc của bạn:

lxc.cgroup.tasks.limit = 1024 

cho tối đa 1024 quy trình

(từ chối trách nhiệm: thông tin không được kiểm tra trên máy thật, để được xác nhận)


1
Cảm ơn. Để chỉnh sửa các container Docker mới nhất không dựa trên LXC, LXC có sẵn dưới dạng trình điều khiển. Docker chứa trình điều khiển riêng dựa trên không gian tên kernel. Nhưng tôi thực sự thích ý tưởng với các nhóm mà tôi không biết rằng đó là khả năng giới hạn số lượng quá trình. Tôi chắc chắn sẽ thử nó.
eXPi

2
Cho đến ngày hôm nay, hệ thống phụ nhiệm vụ vẫn chưa hạ cánh trong kernel chính thức.
Fabian Jakobs
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.