Все что нужно знать о сервисах

Сервисы Windows достаточно мощная, удобная и в то же время очень опасная вещь. Мы каждый день используем их и чаще всего даже не задумываемся о том, как они работают, какие сейчас установлены в системе и для чего они нужны. Я первое время вообще не заглядывал в оснастку сервисов, потому что считал это ненужным занятием. Но стоило мне столкнуться с зависанием системы из-за одного из них, так сразу вспомнил почем мегабайт для народа. Я постараюсь дать полную инфу, чтобы незнающий понял, а знающий нашел для себя что-то новое.

Управление службами

Чтобы увидеть установленные на твоем компе сервисы, нужно войти в «Панель управления», затем «Администрирование» и здесь запустить оснастку «Службы». Перед тобой откроется окно, как на рисуночке 1.

В отличие от 2000-го, в Windows XP это окно стало попроще. Внизу ты можешь видеть две закладки: Расширенный и Стандартный. В первом режиме у вас будет панель, в которой появляется описание выделенного сервиса. В стандартном режиме будет виден только список (в Win2000 есть только такой режим).

Выделяя любую службу, ты можешь ее запустить, остановить, вогнать в паузу или перезапустить с помощью соответствующих кнопок на панели или в меню «Действие». Чтобы настроить какую-то службу нужно только дважды кликнуть по ней. Перед тобой откроется окно настроек, как на рисунке 2.

Информационные параметры

На закладке «Общие» ты можешь увидеть пачку информационной инфы:

1. Имя сервиса – короткое название сервиса;

2. Выводимое имя – название, которое ты видишь в списке;

3. Описание – краткое описание. Оно настолько краткое, что короче того, что ты можешь увидеть в панели подсказки при расширенном просмотре списка сервисов.

4. Исполняемый файл – здесь ты можешь увидеть файл и его расположение, который используется для старта сервиса. После имени могут идти параметры, передаваемые сервису, и их ты изменить здесь не можешь.

Вся эта информация только для просмотра и редактировать ее нельзя. Но мы же не лохи какие-то. Если очень надо, то подкорректировать можно все, и для этого не надо наматывать мышкой километры. Нужно только залезть в реестр и открыть ветку: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services. Вот здесь расположены все сервисы, и ты можешь изменять любые их параметры. Здесь разделы немного непонятны и названия в большинстве случаев не говорят об их предназначении. Поэтому приходится выделять каждый и смотреть в параметрах ключ DisplayName, чтобы определить точное имя.

С помощью реестра ты безболезненно можешь редактировать описания. Если хочешь изменить параметры запуска, то тут уже желательно проштудировать доку по интересующему тебя сервису. Штудируй хорошенько, потому что сервис может стартануть не так, как ты думаешь.

Если ты сейчас посмотришь на свой реестр, то заметишь, что там разделов на много больше, чем ты мог видеть сервисов в оснастке «Службы». Как всегда, MS предоставила нам возможность управлять некоторыми вещами, а большинство осталось скрытым. Главная проблема тут в том, что мы не можем штатными средствами точно определить, какие службы сейчас запущенны, потому что видим далеко не все. Некоторые из сервисов достаточно сложные и состоят из нескольких частей и могут иметь по две ветки в реестре.

Я бы за это программерам MS бы руки бы обрубил бы, на кол бы посадил бы, потому что бы все это бы дает громадную поляну для маскировки вредоносного кода, бы. Если сейчас такой код не сильно прячется в сервисах, то через год или два, если не будет хорошей возможности мониторинга служб, противный код основательно переберется из процессов в сервисы.

Контролируемые и общие

На закладке «Общие» окна настроек сервисов вы можете увидеть и контролируемые параметры, такие как: тип запуска, параметры запуска.

«Тип запуска», может быть:

1. Авто - сервис автоматически запускается при старте системы. После этого ты можешь его остановить вручную или оставить в запущенном состоянии. Автоматически должны запускаться только необходимые всегда службы.

2. Вручную - сервис не стартует автоматически, но ты можешь его запустить вручную из оснастки или просто с командной строки выполнить команду запуска. Если ты чем-то пользуешься очень редко, то лучше поставить ручной запуск. Например, ты установил SQL Server для выполнения какой-то задачи. После этого удалять сервер жалко (может еще пригодиться), а держать в загруженном состоянии глупо, потому что тормозит загрузку и отнимает память. В таком случае лучше установить ручную загрузку и стартовать сервер только по мере необходимости.

3. Отключен – сервис отключен, и его невозможно запустить никакими методами. Если у тебя есть какой-то сервис, который ты считаешь небезопасным и при этом он тебе не нужен, то отключи его, чтобы твой злейший враг не наказал тебя. Это также запрещает запускаться всем другим сервисам, которые зависят от отключенного. Например, если отключить базовый сервис сети, то ни одна сетевая служба не заработает.

В самом низу окна есть еще строка для ввода дополнительных параметров, которые должны быть переданы в командную строку при запуске. Лично мне еще ни разу не приходилось вбивать сюда какую-нибудь ерунду. И тебе не советую без особой надобности залазить сюда.

Проблемы запуска

Первый раз я столкнулся с проблемой запуска сервисов, когда только появился Windows 2000. Тогда мы установили на компьютер драйвера для привода ZIP, а они оказались не совместимы. При старте системы повалил поток ошибок и глупых сообщений. Удаление драйверов не помогло, потому что тонна ошибок осталась.

Я облазил все места залежей драйверов, прочистил реестр и проверил на автозапуск все программы на опасные гинекологические связи с ZIP-драйвом, но ничего не исчезло. Вот тут я залез в сервисы и увидел службу драйва, которая не удалилась.

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

Если у тебя при старте вываливаются сообщения об ошибках, то не надо петь шаманские песни и бить в бубны, это не поможет. Нужно идти в журнал и смотреть, какой из сервисов лажает.

Войди правильно

На закладке «Вход в систему» окна параметров сервиса ты можешь настроить права, под которыми он будет выполняться. Что это значит? От того, какую учетную запись укажешь здесь, зависит права, которые будет иметь сервис. Если ты всем укажешь «С системной учетной записью», а сам будешь входить в Windows под админом, то все сервисы будут иметь полные права. Таким образом, любая прога замаскировавшаяся под сервис сможет натворить в системе все, что угодно.

Если какому-то сервису абсолютно не нужен доступ к диску, то ему можно указать гостевой пароль, чтобы права были минимальны. Старайся давать сервисам только необходимый минимум, особенно тем, которым ты не доверяешь или не пользуешься. Не дай Билли кто-то запустит ненужный сервис и натворит бед.

Прежде чем ограничивать что-то в правах, обязательно проштудируй доку. Если программе нужен доступ к реестру, а ты стартанешь ее под учетной записью без таких прав, то могут быть не просто проблемы, а самый настоящий апокалипсис. А не знаю, что означает это слово, но мне кажется что-то страшное :).

Упал, поднялся

На закладке «Восстановление» окна настроек службы ты можешь указать, что делать, если произошла ошибка. Ты можешь установить определенные действия на первый, второй и последующие сбои. Для каждого из них можно указать свои действия, например, после первого сбоя только перезапустить службу, а после второго уже можно перезапустить полностью компьютер.

Итак, ты можешь указывать следующие действия:

1. «Не выполнять никаких действия» - в большинстве случаев именно это стоит по умолчанию, и если служба навернулась, то без админа по близости восстановить службу будет невозможно. Если она не критична и комп используется как рабочая лошадка, то это нормально. Но если это удаленный сервер, то по каждой мелочи бегать перезапускать сервис это глупо.

С другой стороны, я настоятельно рекомендую выбирать этот пункт в строке последующих сбоев. Для первых двух можно указывать что угодно, но для этого желательно ничего не делать. Если служба регулярно наворачивается, то перезапуски тут не помогут. Тут уже нужны более конкретные меры, и искать причину падения.

Только не надо сразу говорить, что причина в Windows. Система сама по себе работает хорошо, если к ней не приложить свои корявые руки. У меня Win98 работал без переустановки 4 года и до их пор стоит, правда я его запускаю уже редко.

2. «Перезапуск службы» - если что-то навернется, то система автоматически произведет перезапуск. Если у тебя это удаленный сервер, то я советую тебе установить это значение на первый и второй сбой. Если будет лавина сбоев, то в любом случае перезапуск не поможет, и без админа тут не разберешься, а сплошные перезапуски не помогут, поэтому на последующие сбои ставим «не выполнение никаких действий».

3. «Запуск программы» если выбрать этот пункт, то немного ниже в этом окне ты можешь указать полный путь к программе, которую необходимо выполнять при сбое. Если сервис эффективно использует винт, и произошел сбой, то можно предположить, что закончилось место на диске. В этом случае можно запустить какую-то программу, которая будет вычищать на винте место.

4. «Перезапуск компьютера» - если перезапуск сервиса не помог, то проблема может быть не в нем, а просто в нехватке памяти (какая-то прога не умеет чистить за собой мозги) или вырубилась другая необходимая служба или драйвер. В этом случае может спасти полный рестарт компа.

Если ты выбрал этот вариант, то внизу этого окна можешь нажать на кнопку «Параметры перезагрузки компьютера». Перед тобой откроется окно, как на рисунке 6. Здесь ты можешь указать количество минут, через которые надо перезагрузить компьютер и текст сообщения, которое будет отправлено другим компам в сети. Не брезгуй этим сообщением, потому что оно может помочь пользователям понять, почему какое-то время недоступен их любимый сервер. Я обязательно пишу что-то подобное:

«Ухожу в ребут, вернусь через пять минут. Ваш любимый WEB сервер компании ХХХ».

Получив такое сообщения, пользователи не будут грузить меня и подождут минут пять. А вот если сервер не вернется в рабочее состояние за указанное время, вот тут начинаются вопросы типа: когда вернется, почему упал и т.д.

Помню, как однажды у нас на сервере начал сыпаться винт и первые бэды убили необходимые сервису IIS файлы. Служба, конечно же, выдавала килограмм ошибок и уводила комп в перезагрузку. Какой-то кретин поставил на все ошибки делать рестарт компа, так что комп ушел в пожизненный ребут. Я понимаю, что если посыпались бэды то все равно нужно винт менять, но я потратил лишние два часа на то, чтобы определить причину. Ведь никто не знал, что винчестер умирает, об этом мы узнали, когда подключили жесткий диск к другому системнику.

Используй параметры настройки с осторожностью, иначе можешь схлопотать кактусом или паяльником по морде. На сколько я слышал, в окнах ХР есть защита от зацикливания перезагрузки, но она почему-то не сработала.

Зависимости

На закладке «Зависимости» ты можешь узнать, как связана служба с другими. Посмотри на рисунок, где показана эта закладка окна настроек. В верхнем списке перечислены службы, от которых зависит текущая. То есть, если потухнет свет любой из них, эта падает автоматически. Так что для обеспечения надежности работы какого-то сервиса, нужно защитить все от чего он зависит.

В нижнем списке ты можешь увидеть службы, которые зависят от выбранной. Если ты решил что-то отключить, то прежде чем это делать, 7 раз загляни в этот список, иначе ты можешь остановить какой-то очень полезный сервис.

Псевдонадежность

Такие широкие возможности по настройке создают впечатление высокой надежности сервиса. Но все это только впечатление, потому что в реально боевых условиях никакие перезапуски сервиса не помогают, а ребут компьютера по каждой мелочи сведет полезное рабочее время компьютера к минимуму. Если ты решаешь свои проблемы таким образом, то я тебе только сочувствую. Это, конечно же, помогает в 99% случаев, но в 98% эта помощь временна. Проблему надо решать, а не перезапускать.

Джентльменский набор

Теперь рассмотрим службы, которые у тебя могут стоять, поговорим, для чего они нужны и стоит ли их оставлять запущенными. Я не могу рассмотреть абсолютно все, но те, которые можно отключить при определенных условиях мы рассмотрим, потому что это не только повысит безопасность системы, но и увеличит производительность.

1. «Автоматическое обновление» (Automatic Updates) – если эта служба включена, то комп имеет право автоматически загружать обновления по сети. Если ты жалеешь свой трафик и не хочешь качать всякую муть, то переключи эту службу в ручной режим, чтобы она не загружалась автоматически и не грызла ресурсы. Если ты решил отключить обновление, то зайди в свойства системы (правой кнопкой по «Мой компьютер» и выбирай пункт «Свойства») и здесь на закладке «Автоматическое обновление» отключаешь эту функцию (рис. 8). Если не отключишь, то при очередной попытке обновления произойдет ошибка, потому что не запущена служба.

2. «Диспетчер очереди печати» (Print Spooler) – обеспечивает очередь печати на принтер. Даже при наличии принтера и определенных настроек можно работать без этой службы. Ну а если принтера нет, то перевести эту службу в ручной режим – святое дело.

3. «Планировщик заданий» (Task Scheduler) – лично я никогда не заставлял ОС делать какие-то задания по заданию. Некоторые любят чтобы каждый день в определенное время запускался дефрагментатор. А представь себе, если ты в это время мочишь очередного монстра и тут тебе такие тормоза. Использование дефрагментатора вообще глупое занятие (лишняя нагрузка на винт) а выполнение по заданию еще хуже. Так что забудь про планировщика и освободи комп от лишней службы.

4. «Серийный номер переносного медиа-устройства» (Portable media serial number) - получение серийных номеров всех медиа устройств подключенных к системе. А оно тебе надо? Если нафиг нуна, то переводи в ручной режим.

5. «Служба сообщений» (Messenger) – используется для приема-передачи сообщений командой NET SEND. Ата служба абсолютно не защищена от флуда (об этом я писал в декабрьском номере ][), и если она тебе не нужна (ну нету сети), то обязательно отключай.

6. «Служба терминалов» (Terminal Service) – используется для того, чтобы другие компы подключались к твоему и работали с твоим рабочим столом по сети. Такое часто используют на фирмах для работы с тонкими клиентами, а в домашних условиях это нафиг нужно. Именно поэтому этот сервис по умолчанию отключен и если тебе не нужен терминальный доступ, то оставь все как есть.

7. «Удаленный реестр» (Remote Registry Service) – и из названия понятно, что служба позволяет изменять параметры реестра по сети. Самое интересное, что она еще и работает по умолчанию. Так что срочно переводи в ручной режим, чтобы реестр можно было править только локально.

Автоматический мусороуборщик

Первыми под сервисы начали маскироваться программы нелегального сбора информации с твоего компа. Если еще достаточно много злостных нарушителей нашего спокойствия, и ты должен регулярно следить за своими сервисами, чтобы там не появилось никаких нежданчиков, которые ты не просил.

Чтобы не следить самостоятельно, все это можно возложить на одну очень хорошую и полезную прогу - Ad-aware 6.0. Ее можно взять с сайта http://www.lavasoft.de/index.html. Обязательно скачай ее и установи, потому что Ad-aware ищет всяких нарушителей спокойствия среди сервисов и авто загружаемых программ.

Даже если ты автоматизируешь процесс обнаружения злостного кода, это не значит, что ты можешь сложить ручки и спокойно путешествовать по порносайтам. Сейчас регулярно появляются все новые проги, которые обходят защиту автоматизированных поисковиков, поэтому на Ad-aware надейся, а сам все же проверяй.

Итого

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

Помимо постоянного мониторинга количества служб, ты должен следить за тем, не включилась ли какая-то самостоятельно? То, что ты отключил какой-то сервис, не гарантирует, что его не запустят. Любая прога сможет без проблем самостоятельно разрешить запуск службы и тут же запустить его. Вот тут полетят клочки по закоулочкам.

Сервис или служба

Службы и сервисы – это одно и то же. Просто в английском языке этот зверь описывается словом «Service», а на русский язык можно перевести и так, и так. Поэтому я буду использовать оба понятия, а ты должен понимать, что мы говорим о сервисах Windows.

Итак, что же такое сервис? Это практически та же самая программа, которая может выполняться в фоне и запускаться при старте системы. Если раньше мы искали автозапускаемые проги только в реестре, то теперь будем мучаться и со службами. Скоро появиться еще какая-нибудь ерунда и тогда мы точно потеряем контроль над работающими программами.

Только со службами есть еще одна проблема, если простые программы мы видим по Ctrl+Alt+Del на закладке «Приложения» или «Процессы», то сервисы ты там не увидишь. Так что злостные проги могут маскироваться теперь так, что ты ничего не заподозришь, если не будешь заглядывать оснастку служб.



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Telegram Програмысли
Youtube Instagram Твитер