Làm thế nào an toàn là giữ các tập lệnh không sở hữu root trong /etc/init.d?


15

Tôi có một ứng dụng chạy dưới dạng daemon và được điều khiển bởi tập lệnh trong /etc/init.d
Đôi khi chúng ta cần thay đổi một số tham số khởi động / điều khiển của các tập lệnh này và sau đó khởi động lại daemon. Các tập lệnh này chỉ có quyền ghi cho người dùng root, vì vậy khi chỉnh sửa các tập lệnh này tôi cần có quyền root.

Những gì tôi đã nghĩ là tôi nên làm cho một người dùng không phải là chủ sở hữu của các tập lệnh đó. Cách này chỉ có root và một người dùng đặc biệt có thể chỉnh sửa các tập lệnh này.

Có thể chấp nhận giữ một số tệp không thuộc sở hữu gốc trong thư mục /etc/init.d không?
Hoặc nó là vô lý, làm xáo trộn trật tự tự nhiên của hệ thống?


1
ý tưởng tồi, đừng.
ChuckCottrill

Câu trả lời:


17

Điều ngay lập tức xuất hiện trong đầu là một người dùng kém may mắn có thể chạy mọi thứ khi khởi động với quyền root , điều mà người dùng mong muốn là:

  • Muốn leo thang đặc quyền của các tài khoản khác
  • Muốn sử dụng máy chủ của bạn để lưu trữ một dịch vụ giả mạo
  • Muốn khởi động IRC / Spam bot nếu máy chủ khởi động lại
  • Muốn ping một con tàu mẹ để nói "Tôi lại lên" và có thể tải xuống một tải trọng mới
  • Muốn dọn dẹp dấu vết của họ
  • ... xấu khác.

Điều này có thể xảy ra nếu người dùng kém may mắn của bạn bằng cách nào đó bị xâm phạm, có thể thông qua một dịch vụ khác (http / etc). Hầu hết những kẻ tấn công sẽ nhanh chóng chạy một lshoặc findtrên / tất cả mọi thứ /etcchỉ để xem liệu những khả năng đó có tồn tại hay không, có những vỏ được viết bằng nhiều ngôn ngữ khác nhau mà chúng sử dụng khiến việc này trở nên đơn giản.

Nếu bạn quản lý máy chủ từ xa, chủ yếu thông qua SSH, rất có thể bạn sẽ không thấy điều này trừ khi bạn kiểm tra tập lệnh init, vì bạn sẽ không thấy đầu ra khi khởi động (mặc dù vậy, bạn nên sử dụng thứ gì đó kiểm tra băm của các tập lệnh đó với các giá trị băm đã biết để xem có gì thay đổi hay phần mềm kiểm soát phiên bản, v.v.)

Bạn chắc chắn không muốn điều đó xảy ra, root thực sự cần sở hữu tập lệnh init đó. Bạn có thể thêm người dùng phát triển vào danh sách các sudoers để đủ tiện lợi để cập nhật tập lệnh, nhưng tôi khuyên không nên cho phép truy cập ghi kém vào bất cứ điều gì trong init.d


5
tl; dr : Nếu bạn làm điều này, người dùng không root cũng tốt như root trong lần khởi động tiếp theo. Bạn đang cầu xin được vỗ về.
Warren Young

9

Ngoài những điểm rất tốt của Tim Post, tôi muốn nói thêm rằng đối với thiết lập nơi nhiều người cần có khả năng đẩy các thay đổi lên máy chủ, bạn nên xem xét sử dụng một số loại hệ thống quản lý cấu hình.

Nếu bạn ví dụ sử dụng con rối, hoặc đầu bếp hoặc cengine, bạn có thể yêu cầu người dùng có liên quan chỉnh sửa các tệp cục bộ và sau đó đẩy các thay đổi ra ngoài bằng quản lý cấu hình. Tất nhiên, cách thiết lập này sẽ khác nhau tùy thuộc vào hệ thống bạn đang sử dụng, nhưng thiết lập đúng sẽ bao gồm phần mềm tạo phiên bản giúp dễ dàng trở lại phiên bản trước của tệp cấu hình khi (lưu ý: khi nào , không phải nếu !) ai đó đã phạm sai lầm. Nó cũng sẽ giúp bạn dễ dàng sao chép cấu hình vào một hệ thống kiểm tra riêng, v.v.


Giữ cả tập lệnh và thậm chí các tệp dữ liệu cấu hình của bạn được phiên bản trong hệ thống quản lý cấu hình / phiên bản là một ý tưởng tuyệt vời, ngay cả khi không xem xét liệu hệ thống có thể bị xâm phạm hay không.
ChuckCottrill

Thật vậy - tôi đã sử dụng nó để sửa chữa những sai lầm về một vài cường độ thường xuyên hơn mà tôi đã sử dụng nó để sửa chữa một hệ thống bị xâm nhập.
Jenny D

Cảm ơn rât nhiều . Bởi vì ở đây chủ yếu là một người dùng chuyên dụng sử dụng ứng dụng này nên sudo đang hoạt động bình thường và đây là điều tôi đã làm từ lâu. NHƯNG tôi thực sự rất quan tâm đến hệ thống quản lý phiên bản cho các cấu hình. Jenny thân mến, bạn có thể cung cấp cho tôi bất kỳ sự điều chỉnh nào để làm như vậy HOẶC BẤT K EX VÍ DỤ !! :).
Akaks

1
Nếu bạn không muốn đi theo con đường đầy đủ của con rối / đầu bếp / cengine, v.v., cá nhân tôi sẽ sử dụng www.perforce.com. Chúng tôi đã sử dụng nó cho ~ 100 máy chủ trong thời gian trước khi con rối tồn tại và giấy phép eval của họ là đủ cho một máy chủ. Ưu điểm chính là bạn có thể kiểm tra các tệp VC'd đến bất kỳ vị trí nào trong hệ thống tệp thay vì bị giới hạn ở một đường dẫn phụ. Các tùy chọn khác là joeyh.name/code/etckeeper hoặc sử dụng bất kỳ VC nào kết hợp với tập lệnh để di chuyển tệp vào thư mục thích hợp.
Jenny D
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.