Windows Service и безопасность

Содержание

Принципы работы учетных записей

Платформа Windows позволяет вам защитить вашу рабочую среду таким же способом, как и на платформе *nix, с помощью пользовательских учетных записей (это применимо только к семейству NT, Win9x/WinME в него не входят).

Тем не менее, как и типичный пользователь Windows, вы можете полагать, что вы - единственный пользователь в операционной системе, а это не так. Наоборот, ваша NT система является настоящей многопользовательской операционной системой, как и другие ОС из семейства *nix.

При каждом запуске компьютера в вашей ОС также залогинено несколько пользователей, кроме созданного вами. Большинство (почти 90%) проблем безопасности (вирусы, вредоносное и шпионское программное обеспечение), которые вы испытываете в повседневной работе, возникают по причине того, что ваша пользовательская запись настроена для работы в режиме администрирования (это равноценно работе от имени пользователя root или суперпользователя под *nix системой). Тем не менее, настроив вашу учетную запись как Limited User Access account (LUA, учетная запись с ограниченным доступом), вы можете с легкостью избежать этих проблем.

Описание процесса тщательной проверки безопасности вашей системы выходит за рамки этой статьи. К счастью, достаточно информации на эту тему легко найти в google, и мы настойчиво рекомендуем вам сделать это.

В общих чертах:

  1. установите пароль для учетной записи администратора и запишите его в надежном месте, он вам понадобится для системных обновлений или установки программ.
  2. создайте новую учетную запись для повседневной работы и настройте для нее LUA, или удалите свою текущую учетную запись из группы администраторов, или воспользуйтесь опцией "Панель управления" > "Учетные записи пользователей" > "Ограничение пользователей" и защитите ее паролем, если вы до сих пор этого не сделали.

Предположим, что вы полностью изучили процесс подобной настройки, установили пароль на учетную запись администратора и в повседневной работе пользуетесь учетной записью с LUA (желательно с паролем). Тем не менее, вы до сих пор можете не знать о возможности настройки службы FZS для входа под ограниченной учетной записью. Такая настройка уменьшит влияние на вашу систему любых проблем в безопасности этой службы.

Как уже было сказано в начале статьи, в любой момент на вашей системе могут быть активированы несколько учетных записей.

А именно:

  • SYSTEM - учетная запись без пароля от имени которой запущенно большинство служб
  • NetworkService - учетная запись без пароля от имени которой запущено большинство сетевых служб

По умолчанию пользователь SYSTEM имеет самое большое количество привилегий в системе, это нужно для нормальной работы служб. У вас нет возможности зайти в систему под именем этого пользователя. По умолчанию любая системная служба, даже служба FZS, запущены от имени этого пользователя. NetworkService является учетной записью с меньшим количеством прав для уменьшения влияния возможных проблем в безопасности сетевых служб. Вы можете ограничить привилегии FZS, настроив запуск этой службы под NetworkService, но лучше всего создать для этого отдельную ограниченную учетную запись.

Настройка

Удостоверьтесь в том, что вы зашли под учетной записью с правами администратора.

Добавление пользователя filezilla

  1. Нажмите «WINDOWS» + «R»; перед вами появится диалог "Выполнить"
  2. Введите "lusrmgr.msc" и нажмите «ENTER»; перед вами появится MMC консоль "Локальные пользователи и группы"
  3. Перейдите к директории "Пользователи", кликните правой клавишей на пустом пространстве и выберите "Новый пользователь" из всплывающего меню; перед вами появится диалог "Новый пользователь"
  4. Заполните поля в диалоге подобным образом:
    • пользователь "filezilla"
    • введите пароль (это обязательно)
    • отключите "Требовать смены пароля при следующем входе в систему"
    • включите "Срок действия пароля не ограничен"
    • включите "Запретить смену пароля пользователем"
    • отключите "Отключить учетную запись"
  5. Нажмите "Создать"; будет создан пользователь "filezilla"
  6. Кликните правой клавишей на пользователе "filezilla" и выберите "Свойства"; перед вами появится диалог "Свойства: filezilla"
  7. Дважды отметьте "Состоит в" таким образом, чтобы единственной группой, к которой принадлежит учетная запись, была "Пользователи"
  8. Нажмите "OK"; диалог закроется
  9. Закройте окно "Локальные пользователи и группы"

Изменение учетной записи для службы FileZilla Server

  1. Нажмите «WINDOWS» + «R»; перед вами появится диалог "Выполнить"
  2. Введите "services.msc" и нажмите «ENTER»; Перед вами появится MMC консоль "Службы"
  3. Найдите службу "FileZilla Server FTP server" и дважды кликните на ней; перед вами появится диалог "Свойства"
  4. Нажмите "Остановить" для остановки службы, если она запущена
  5. Перейдите к вкладке "Вход в систему" и установите следующее:
    • выберите "С учетной записью"
    • в поле учетной записи введите ".\filezilla"
    • дважды введите пароль указанный выше
  6. Нажмите "OK", но НЕ ЗАПУСКАЙТЕ эту службу (т.к. вам это не удастся и службу нельзя будет приостановить без специальных инструментов)

Подготовка прав

  1. С помощью Windows Explorer перейдите к установочной директории "FileZilla Server"
  2. Найдите файл "FileZilla Server.xml", для службы нужны права на запись в этот файл
    • Если у вас включена "Простая раздача файлов" (отсутствует вкладка "Безопасность" в свойствах файла)
      1. Нажмите "Инструменты" в меню Explorer, выберите "Свойства папки"
      2. Выберите вкладку "Вид"
      3. отключите "Использовать простую раздачу файлов"
      4. Нажмите OK
    • кликните правой кнопкой на файле "FileZilla Server.xml" и выберите "Свойства";
      1. выберите вкладку "Безопасность", нажмите кнопку "Добавить"; перед вам появится диалог "Выберите пользователя или группу"
      2. введите "filezilla" в поле "Введите названия объектов для выбора" textbox
      3. нажмите "OK"; пользователь "filezilla" будет добавлен в список разрешенных пользователей
      4. выберите пользователя "filezilla" и включите "Запись" в колонке "Разрешить"
      5. нажмите "OK"; теперь права сохранены
  3. Если вы используете логирование, также включите "Запись" в папке "Логи"
  4. Если вы разрешаете загрузку в некоторые директории, установите для них "Полный доступ"
  5. Если вы используете SSL, проверьте читаем ли файл с сертификатом группой "Users" или пользователем "filezilla", для того, чтобы не разрывать SSL-подключение
  6. Если вы хотите скрыть вкладку "Безопасность", снова включите "Простая раздача файлов"
  7. Перейдите обратно к консоли "Службы" и запустите службу "FileZilla Server FTP server"; теперь она должна быть запущенной от имени пользователя "filezilla"
  8. Проверьте FTP и FTPS/FTPES подключение и загрузку файлов в соответствующие директории
  9. Выйдите из учетной записи Administrator

Возможные проблемы

1.  Я задал службе FZS рабочую учетную запись "filezilla", но запустил ее до того, как установил нужные права, теперь я не могу подключиться к административному интерфейсу и не могу ее остановить!
     FZS нужны права на запись в файл "FileZilla Server.xml", где хранятся настройки сервера, если они отсутствуют, сервер зависает в бесконечном цикле и не отвечает на команду "STOP". Для остановки службы запустите "Планировщик задач" и остановите ее вручную, или воспользуйтесь Sysinternals Process Explorer. Для остановки службы вам нужны права пользователя Administrator.
2.  Служба запущена, но я не могу создать SSL (FTPS/FTPES) подключение!
     FZS нужны права на запись в файл с сертификатом, в противном случае служба отсылает вместо сертификата пустую строку. Убедитесь в том, что файлы с сертификатом доступны для чтения пользователю "filezilla".
3.  Я получаю сообщения об ошибке при загрузке или удалении файлов, хотя я установил права на Запись/Удаление в свойствах административного интерфейса FileZilla Server!
     FZS нужны права на запись в операционной системе для загрузки файлов и создания директории и "Полный доступ" для их удаления, убедитесь, что вы установили соответствующие права пользователю "filezilla" для этих директорий.
4.  Я сделал все как было описано выше, но служба FZS все равно не запускается!
     Это значит, что все еще остались нерешенными некоторые проблемы с правами доступа, вы можете отследить их через Process Monitor от Sysinternals, но это требует определенных навыков. Вы всегда можете вернуть учетную запись SYSTEM, выбрав "Локальная системная учетная запись" во вкладке "Вход в систему" свойств службы. Не забудьте вручную остановить службу перед перезапуском, если она не отвечает на команду "Остановить"

Дополнительно

  • Установку прав можно автоматизировать с помощью CACLS, XCACLS или SetACL из файла .bat.
  • С помощью двойного входа в систему (опция "Запустить от имени...") у вас есть возможность выполнять административные команды даже из под ограниченной учетной записи.
  • Воспользуйтесь suDown для LUA под административной учетной записью.
  • Под Windows XP Home вкладка "Безопасность" недоступна по умолчанию, для доступа к ней нужно установить обновление.

Выводы

Преимущества данного подхода очевидны. При возможных проблемах с безопасностью в FZS пострадать могут только файлы и директории с соответствующими правами для пользователя этой службы, при этом остальная часть системы будет защищенной. Для защиты от DOS-атак, при которых полностью заполняется дисковое пространство в доступных директориях, вам нужно настроить дисковые квоты в Windows XP Pro или Windows 2003 Server. Кроме того, вы узнали больше о принципах многопользовательской безопасности.