Điểm:1

Cách hạn chế người dùng rbash khi đăng nhập qua SSH

lá cờ us

Tôi muốn hạn chế một số người dùng trên máy chủ của mình chỉ có thể thực thi một số lệnh nhất định. Để làm điều này, cách tiếp cận phổ biến nhất mà tôi có thể tìm thấy là sử dụng ăn vạ.

Mặc dù tôi có thể tìm thấy nhiều trang web nói về rbash, nhưng tôi gặp khó khăn khi tìm bất kỳ thông tin nào về cách sử dụng đúng. Cách tiếp cận phổ biến nhất mà tôi có thể tìm thấy là tạo một liên kết tượng trưng từ /bin/rbash đến /bin/bash, hãy đặt shell đăng nhập của người dùng bị hạn chế thành /bin/rbash và sau đó thiết lập một tùy chỉnh CON ĐƯỜNG Trong ~/.bash_profile trong thư mục chính của người dùng.

Tuy nhiên, tôi khá sốc khi biết rằng với thiết lập này, người dùng vẫn có thể sao chép tệp vào máy chủ bằng cách sử dụng scp và họ thậm chí có thể mở một trình bao không hạn chế bằng cách sử dụng người dùng ssh@host -t bash! Điều dường như đang xảy ra là máy chủ SSH đang chuyển lệnh tới trình bao đăng nhập trên máy chủ bằng cách sử dụng -c, Vì thế người dùng ssh@host -t bash làm cho máy chủ chạy /bin/rbash -c bash, hoạt động vì .bash_profile chưa được thực hiện để hạn chế đường dẫn. scp tương tự làm cho máy chủ chạy /bin/rbash -c scp.

Bây giờ tôi đã bắt gặp ForceCommand chỉ thị của sshd. Về cơ bản, lệnh này luôn khiến lệnh được cấu hình được chuyển thành -c vào shell đăng nhập, bỏ qua bất kỳ lệnh nào mà máy khách đã chỉ định. Vì thế nếu ForceCommand được đặt thành ăn vạ, điều đó sẽ luôn thực thi lệnh /bin/rbash -c rbash trên máy chủ, bất kể máy khách có được gọi với -t bash hoặc như scp hay bất cứ cái gì. Không may, /bin/rbash -c rbash gây ra .bash_profile không được thực thi, vì vậy chúng tôi kết thúc với một trình bao bị hạn chế nhưng một trình bao bình thường CON ĐƯỜNG, vì vậy chúng ta chỉ có thể gọi đánh đập ở đó để thoát khỏi nó.

Những gì tôi muốn đạt được:

  • Không có cách nào để tránh trình bao bị hạn chế đối với người dùng kết nối qua SSH
  • Lý tưởng nhất là vẫn có thể thực thi các lệnh được phép trong trình bao bị hạn chế bằng cách sử dụng người dùng ssh@máy chủ được phép_command
  • Cấu hình không nên chỉ dành cho SSH, vì vậy người dùng đăng nhập chẳng hạn như trên TTY cũng nên bị hạn chế.
Điểm:0
lá cờ us

Sau khi thử nghiệm điều này một thời gian, tôi thấy gốc rễ của vấn đề là tính bảo mật của ăn vạ phụ thuộc CON ĐƯỜNG đang được thiết lập, nhưng trong hầu hết các thiết lập CON ĐƯỜNG được thiết lập sau đó SSH chỉ định các lệnh tùy chỉnh của nó, trong khi nó cần được chỉ định trước.

Là một giải pháp, thay vì chỉ định /bin/rbash (liên kết tượng trưng đến /bin/bash làm trình bao đăng nhập), tôi đã tạo tập lệnh trình bao /usr/local/bin/rbash và sử dụng nó làm vỏ đăng nhập để thay thế. Shell script có nội dung như sau:

#!/bin/bash -l
xuất PATH=/usr/local/rbin
exec /bin/bash -r "$@"

Tôi cũng đã thử nghiệm với ĐặtEnv chỉ thị của sshd và cố gắng thiết lập CON ĐƯỜNG ở đó. Tuy nhiên, tôi thấy giải pháp này ít thực tế hơn vì nó chỉ đặt cấu hình cho SSH và nó cũng gây ra nhiều lỗi khi chạy /etc/hồ sơ, bởi vì không thể tìm thấy các lệnh được sử dụng ở đó. Ngoài ra, dường như có rủi ro là một số lệnh sshd khác sẽ cho phép máy khách ghi đè lại các biến môi trường nhất định.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.