Làm thế nào tôi có thể đưa vỏ một cách an toàn cho ai đó?


7

Tôi có một câu hỏi về việc cung cấp một tài khoản shell cho ai đó. Làm thế nào là an toàn? Anh ấy có thể đọc / v.v. Làm cách nào tôi có thể cung cấp tài khoản shell được bảo mật sẽ chỉ giới hạn người dùng ở một số thùng và nhà riêng của anh ta? Là cách duy nhất một nhà tù chroot?

Câu trả lời:


4

Một trong những cách dễ dàng / hiệu quả nhất để kiểm soát những gì người dùng có thể làm là lshell .

lshell là một trình bao được mã hóa bằng Python, cho phép bạn giới hạn môi trường của người dùng trong các nhóm lệnh giới hạn, chọn bật / tắt bất kỳ lệnh nào qua SSH (ví dụ: SCP, SFTP, rsync, v.v.), ghi nhật ký lệnh của người dùng, thực hiện hạn chế thời gian, và hơn thế nữa.


liên kết bị hỏng.
ctrl-alt-delor

Cảm ơn! Cập nhật.
Aif

3

Nếu bạn cung cấp cho ai đó một tài khoản shell, họ có thể xem tất cả các tệp có thể đọc được trên thế giới. Điều này bao gồm nhiều tệp /etccần thiết để hệ thống hoạt động, bao gồm /etc/passwd(chứa tên người dùng nhưng không chứa mật khẩu).

Nếu bạn cho phép người dùng chỉ đăng nhập bên trong một chroot, họ không thể thấy các tệp bên ngoài chroot. Điều đó có nghĩa là bạn phải đặt đủ các chương trình, thư viện, v.v., bên trong chroot - mọi thứ người dùng cũng phải có quyền truy cập và mọi phụ thuộc của chúng.

Lưu ý rằng một chroot chỉ bảo vệ truy cập tệp trực tiếp. Người dùng có thể rình mò nhiều thứ khác nhau, bao gồm tên và đối số của các quy trình đang chạy của tất cả người dùng (trừ khi bạn thiết lập các biện pháp bảo vệ bổ sung như SELinux). Nếu người dùng sẽ không cần phải làm gì nhiều, bạn có thể thiết lập các hạn chế chặt chẽ hơn (bao gồm ngăn người dùng tạo các tệp thực thi của riêng họ) bằng một vỏ bị hạn chế, nhưng thiết lập một vỏ bị hạn chế là rất khó, vì vậy tôi không ' t giới thiệu nó.

Ngày nay, máy ảo rất rẻ. Bạn có nhiều triển khai miễn phí để lựa chọn (Chế độ người dùng Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, Nott) và không gian đĩa được sử dụng bởi một cài đặt hệ thống bổ sung là tối thiểu (và dù sao bạn cũng có thể cần nó để chroot). Một máy ảo cô lập khá nhiều thứ: tập tin, quy trình, kết nối mạng, trừ khi bạn có những ràng buộc rất bất thường, đây là cách để đi.


2

Một tùy chọn là đặt chúng trong phiên shell bị hạn chế, chẳng hạn như rbash [bash -r].

Tuy nhiên, có một chút không rõ ràng vào thời điểm này, chính xác, bạn muốn đạt được điều gì, tuy nhiên, trên bề mặt posix acl 'for' other 'sẽ áp dụng cho tài khoản mới cũng như bất kỳ nhóm nào cho các nhóm mà tài khoản thuộc về, chẳng hạn như 'người dùng' chẳng hạn.


Chà ... Tôi muốn hạn chế người dùng chỉ sử dụng các tệp r / w / x từ nhà của họ và cho phép chạy 1 hoặc nhiều quy trình và giả sử chỉ tải xuống 50MB. Tôi đã thử với rbash nhưng không có mv và một số chức năng khác.
CappY

1

Hãy nhớ rằng các phần của /etcđược yêu cầu phải có thể đọc được ngay cả bởi người dùng không có đặc quyền. Nếu có những thứ /etckhông thể đọc được nhưng là, bạn có vấn đề lớn hơn và tối thiểu nên chạy chương trình kiểm tra / sửa chữa quyền phân phối của bạn.

Nhà tù là cách dễ nhất để thiết lập các hạn chế hà khắc. Có nhiều cách khác, chẳng hạn như thiết lập SElinux và sắp xếp để người dùng có bối cảnh bảo mật rất hạn chế.

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.