Câu trả lời trước không xuất hiện để giải quyết các câu hỏi trực tiếp, vì vậy tôi nghĩ rằng tôi sẽ thêm vào nó.
- Kế hoạch của tôi là để dịch vụ chạy như tài khoản "Dịch vụ địa phương" mặc định. Tôi sẽ đặt rõ ràng các đặc quyền "Kiểm soát hoàn toàn" cho tài khoản "Dịch vụ cục bộ" trên thư mục mà tôi đang đọc / ghi và gửi. Tôi tin rằng ở trên là một kế hoạch tốt.
Cá nhân, tôi không thấy một vấn đề lớn với kế hoạch này. Với BUILTIN, sự lựa chọn nằm giữa:
- Chạy dưới dạng ĐỊA PHƯƠNG - vì vậy nếu dịch vụ này bị xâm phạm, kẻ tấn công sở hữu mọi thứ và ngay lập tức.
- Chạy dưới dạng LOCALSERVICE - vì vậy nếu dịch vụ này hoặc bất kỳ dịch vụ nào khác trong tài khoản này bị xâm phạm, kẻ tấn công có quyền truy cập vào một thư mục bổ sung. *
Có thể cho rằng, thêm một vài ACL bổ sung để có thể sử dụng tùy chọn thứ hai là tốt hơn. Có, tùy chọn an toàn nhất cho dịch vụ đặc quyền thấp nhưng có độ nhạy bảo mật cao sẽ là chạy trong tài khoản dịch vụ đặc quyền thấp, được tùy chỉnh tùy chỉnh. Nhưng trừ khi bạn muốn tạo một tài khoản mới / quản lý mật khẩu cho mọi dịch vụ bạn triển khai, sử dụng LocalService cho các tác vụ không nhạy cảm nhỏ không phải là một điều tồi tệ. Bạn chỉ cần đưa ra quyết định có trách nhiệm dựa trên những cân nhắc này, như những gì trong thư mục đó hoặc cơ sở dữ liệu đó, tác động nếu chúng bị vi phạm, v.v.
Mặc dù một lần nữa, theo nguyên tắc đặc quyền tối thiểu, bạn chỉ nên đặt Full Control
nếu Modify
thực sự không đủ.
2. Câu hỏi của tôi là, đối với thư mục mà tôi đang đọc và viết, tôi có cần thiết lập vai trò "Dịch vụ mạng" với quyền truy cập toàn quyền không? Tôi tự hỏi vì dịch vụ của tôi sử dụng kết nối cơ sở dữ liệu với máy chủ khác, nếu tôi cần thiết lập tài khoản "Dịch vụ mạng".
Nếu cơ sở dữ liệu của bạn yêu cầu đăng nhập Windows Tích hợp / SSPI, thì có, bạn sẽ cần sử dụng NetworkService (hoặc tài khoản dịch vụ miền) ở mọi nơi, ví dụ: RunAs và quyền thư mục. Giả sử bạn cũng đã cấp quyền truy cập tài khoản tên miền hoặc tài khoản miền cho cơ sở dữ liệu này. Tôi nghi ngờ bạn đang làm điều đó, vì vậy nếu nó sử dụng xác thực tên người dùng / pwd bình thường, bạn sẽ có thể làm mọi thứ với LocalService. Bạn chỉ cần cấp một quyền tài khoản trên thư mục đó, bất cứ điều gì bạn sử dụng trong RunAs, không phải cả hai.
3.Tôi có thể hiểu nhầm tài khoản "Dịch vụ mạng" làm gì.
LocalService / NetworkService là các tài khoản gần như giống hệt nhau trên máy tính cục bộ. Sự khác biệt chủ yếu là những gì họ có thể làm trên mạng. NS có thể truy cập một số tài nguyên mạng vì nó xuất hiện trên mạng dưới dạng tài khoản (máy tính) thực. Nhưng LS sẽ xuất hiện dưới dạng ANONYMOUS, vì vậy nó sẽ bị từ chối hầu hết mọi thứ trên mạng.
Nhân tiện, bạn nên sử dụng Tác vụ theo lịch cho việc này, không phải dịch vụ.
* Từ Vista trở đi, do cách ly dịch vụ , một quy trình LocalService bị xâm phạm có thể dễ dàng tấn công người khác. Mỗi quy trình / phiên bản dịch vụ LocalService / NetworkService đều có phiên đăng nhập duy nhất SID (chủ sở hữu duy nhất), không giống như Windows 2003. Nhưng tôi không chắc điều này là hoàn hảo và giảm thiểu hoàn toàn lỗ hổng DACL trên các tệp và tài nguyên. SID bị hạn chế và mã thông báo hạn chế ghi được đề cập trong ngữ cảnh này.