предыдущий ответ, похоже, не касался вопросов напрямую, поэтому я подумал, что добавлю к нему.
- мой план состоит в том, чтобы служба запускалась как учетная запись "локальная служба" по умолчанию. Я собираюсь явно установить привилегии" полного контроля " для
Учетная запись" Local Service " в папке, в которую я читаю/пишу и
от. Я считаю, что это хороший план.
лично я не вижу большой проблемы с этим планом. С BUILTINs, выбор между:
- работает как LOCALSYSTEM - поэтому, если эта служба скомпрометирована, злоумышленник
владеет все и сразу же.
- работает как LOCALSERVICE - поэтому, если эта служба или любая из многих других служб, работающих под этой учетной записью, скомпрометированы, злоумышленник имеет доступ к одному дополнительному каталогу.*
возможно, добавив несколько дополнительных списков ACL, чтобы иметь возможность использовать второй вариант предпочтительнее. Да, самый безопасный вариант для службы с низким уровнем привилегий, но высокой степенью безопасности будет выполняться под пользовательской учетной записью службы с низким уровнем привилегий. Но если вы не хотите создавать новую учетную запись / управлять паролями для каждой развертываемой службы, использование LocalService для небольших нечувствительных задач не так уж страшно. Вам просто нужно принять ответственное решение, основанное на этих соображениях, например, что находится в этом каталоге или этой базе данных, влияет, если они нарушены и т. д.
хотя опять же, по крайней мере, принцип привилегий, вы должны установить только Full Control
if Modify
очень не достаточно.
2.На мой вопрос, для папки, которую я читаю и пишу, мне нужно выбрать "сетевая служба" для роли "полный доступ"? Я
интересно, так как моя служба использует подключение к базе данных к другой
сервер, если мне понадобится настройка учетной записи" сетевая служба".
Если ваша база данных требует Windows Integrated / SSPI login, то да, вы бы необходимо использовать NetworkService (или учетную запись доменной службы) везде, т. е. разрешения RunAs и directory. Предположим, вы также предоставили учетной записи$ или домена доступ к этой базе данных.
Я сомневаюсь, что вы это делаете, поэтому, если он использует обычную аутентификацию username/pwd, вы должны быть в состоянии сделать все с LocalService. Вам нужно предоставить только одну учетную запись в этом каталоге, какую бы вы ни использовали в своих рунах, а не обе.
3.Я могу неправильно понять, что учетная запись" Network Service " делает.
кроме/записи практически идентичные учетные записи на локальном компьютере. Разница в основном заключается в том, что они могут делать в сети. NS может получить доступ к некоторым сетевым ресурсам, поскольку он отображается в сети как реальная учетная запись (компьютера). Но LS будет казаться анонимным, поэтому в нем будет отказано в основном все в сети.
кстати, вы должны использовать запланированную задачу для это не сервис.
*начиная с Vista, из-за изоляция служб, один скомпрометированный процесс LocalService не может легко атаковать другой. Каждый процесс/экземпляр службы LocalService/NetworkService получает свой уникальный идентификатор безопасности сеанса входа (уникальный владелец), в отличие от Windows 2003. Но я не уверен, что это идеально и полностью смягчает уязвимость DACL для файлов и ресурсов. Ограниченные SIDs и токены с ограничениями на запись в этом контекст.