Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабораторные

.pdf
Скачиваний:
1
Добавлен:
23.11.2023
Размер:
3.53 Mб
Скачать

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

Format-Table

Cmdlet

Форматирует вывод в виде таблицы.

 

 

 

Исполните из командной строки процессы:

Просмотр всех свойств объекта, полученных при выполнении команды Get-Process:

Get-Process | Get-Member

Операция фильтрации:

Get-Process | where {$_.handlecount –gt 400}

Операция сортировки

Get-Process | where {$_.handlecount –gt 400} | sort-object Handles

Выполним команду Get-Process | Get-Member Company – при форматировании по умолчанию невозможно получить желаемые данные. Для этого преобразуем полученную команду в

Get-Process | Get-Member Company | Format-List

Get-Process | Get-Member Company | Format-Table -GroupBy Company name, description. handles

Произведём сортировку объектов по свойству WS (working set) и выбор 5 процессов, занимающих больше всего памяти

Get-Process | sort-object –property WS –descending | selectobject –first 5

Команда Stop-Process позволяет остановить запущенный процесс. (Перед выполнением операции не забудьте запустить блокнот операцией notepad)

Get-Process notepad | Stop-Process

Такая возможность не всегда является безопасной, поэтому лучше использовать подобные команды с опцией whatif, которая показывает, что произойдёт при выполнении той или иной команды, но на самом деле команда не выполняется.

Get-Process notepad | Stop-Process -whatif

Кроме того, можно указывать на необходимость подтверждения перед выполнением команды:

Get-Process notepad | Stop-Process -confirm

Статус политики.

Помимо этого можно создавать собственные пакетные файлы, представляющие собой файлы с расширением *.psl, в которые помещаются команды Windows PowerShell, и выполнять их. Для соблюдения безопасности пакетные файлы должны быть подписаны. Для защиты пользовательских данных и целостности ОС в оболочке Windows PowerShell реализованы некоторые средства обеспечения безопасности, в том числе политика выполнения. Политика выполнения определяет, можно

51

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

ли выполнять сценарии, и если да, должны ли они быть подписаны цифровой подписью. Кроме того, она определяет, можно ли загружать конфигурационные файлы.

Просмотр текущего статуса политики выполнения

Get-ExecutionPolicy

Вслучае установки по умолчанию вы должны получить статус Restricted.

Для смены статуса используют команду:

Set-ExecutionPolicy <статус_политики>

Рассмотрим, какие статусы политики выполнения возможны:

Restricted – эта политика выполнения по умолчанию. Допускает отдельные команды, но сценарий выполнять нельзя.

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

RemoteSigned – при таком статусе политики выполнение сценариев также разрешено. Необходимо наличие цифровой подписи надежного издателя на всех сценариях и файлах конфигураций, загруженных из Интернета (включая электронную почту и программы мгновенного обмена сообщениями). Нет необходимости в цифровых подписях на сценариях, запускаемых

слокального компьютера. Не запрашивают подтверждения перед выполнением сценариев надежных издателей. Подписанные, но вредоносные сценарии также выполняются.

Unrestricted – самая демократичная политика, позволяет запускать неподписанные сценарии. Сценарии и файлы конфигурации, загруженные из Internet, включая Microsoft Outlook, Outlook Express и Windows Messenger, выполняются после предупреждения, что данный файл был загружен из Интернета. Как и следовало ожидать, при таком статусе также возможно выполнение вредоносных сценариев. Думаю, использование данного статуса политики выполнения возможно только на тестовых машинах, так как в реальных сетях это крайне небезопасно.

Взависимости от специфики выполняемых серверами задач рекомендуется использовать RemoteSigned, в случаях, когда

52

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

выполняются преимущественно сценарии собственного написания, AllSigned, когда выполняются сценарии, полученные из внешних источников. Для нашего упражнения устанавливаем статус политики Unrestricted либо RemoteSigned.

Исполните из командной строки Set-ExecutionPolicy RemoteSigned

но после окончания тестирования не забудьте снова включить данную опцию с помощью следующей команды:

Set-ExecutionPolicy Restricted

Упражнение 3. Работа с файловой системой

Разберём основные команды Windows PowerShell, применяемые для манипуляций с файловой системой: new-item, copy-item, rename-item, remove-item.

Методические указания: New-Item(создание):

У операции есть alias(псевдоним) – ni Создание нового подкаталога

New-Item <название_каталога>–itemtype directory

Создадим подкаталог TextFiles в текущем каталоге:

New-Item TextFiles -itemtype directory

Создание нового файла

New-Item –path <символьное_обозначение_каталога> – name <имя_файла> -type “file”

Создадим новый файл psdemo.txt в текущем каталоге:

New-Item –path . –name psdemo.txt -type “file”

Copy-Item(копирование):

У операции есть alias(псевдонимы) – cpi, cp, copy

Copy-Item <расширение> <Назначение> Если применять данную команду в пакетном файле, то имеет

смысл сделать

её более

понятной, указав

параметры –

path(источник)

и

–destination

(приемник)

Copy-Item

–path

‘<символьное_обозначение_каталога

>\*<расширение>’ –destination <Назначение>

 

Скопируем все файлы с разрешением .txt в подкаталог

TextFiles :

 

 

 

Copy-Item

 

*.txt

TextFiles

или

 

 

 

Copy-Item –path ‘.\*.txt’ –destination ‘.\TextFiles’

53

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

Set-location (переход в другой подкаталог) У операции есть alias(псевдоним) – sl Перейдём в подкаталог TextFiles. Для этого

Set-location TextFiles

Rename-item (переименование файла)

Переименуем psdemo.txt в psdemo.bak. Для этого:

Rename-item psdemo.txt psdemo.bak Move-item (перенос файла)

Перенесём наш файл на один уровень вверх. Для этого: move-item psdemo.bak ..\

Перейдём в другой каталог при помощи операции Setlocation

sl ..

Remove-item (удаление)

Манипуляции с файловой системой мы завершим удалением всего каталога TextFiles.

Поскольку в каталоге содержатся файлы, применяется опция –recurse, если эта опция не указана, то Windows PowerShell запросит подтверждение перед выполнением команды.

remove-item TextFiles –recurse

Упражнение 4. Работа с реестром При выполнении различных настроек и попытках

обнаружения каких-либо параметров нам иногда приходится обращаться к системному реестру в поисках ключей, значений и т.п. С использованием возможностей Windows PowerShell эта задача может быть решена достаточно простым способом. Давайте рассмотрим пример работы с реестром из среды Windows PowerShell, в котором найдём и скопируем все данные, содержащие строку «PowerShell», а затем выведем первые два найденных объекта.

Методические указания:

Первая команда использует алиас sl и изменяет наше текущее положение с файловой системы на ветвь

HKEY_CURRENT_USER sl hkcu:\ . Отметим, что как и в случае работы с файловой системой, PowerShell применяет специальный провайдер для доступа к реестру.

Следующая команда загружает содержимое реестра

HKEY_CURRENT_USER в переменную reg $reg=gci . –rec –ea silentlycontinue

54

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

Для этого мы используем команду get-childitem (алиас gci), принцип работы которой аналогичен работе с файловой системой. Первый аргумент этой команды – «.» – указывает на то, что мы хотим получить содержимое текущей ветви реестра – HKEY_CURRENT_USER. Второй аргумент является сокращением от опции –recurse и указывает на то, что нам нужен рекурсивный сбор данных из всех подветвей текущей ветви реестра. Третий – -ea silentlycontinue – указывает на то, что команда должна продолжать выполняться даже в случае возникновения ошибок, связанных с недостатком прав доступа к определённым ветвям реестра.

Следующая команда копирует из реестра данные, содержащие строку ‘PowerShell’.

$s=$reg | % {if ((gp $_.pspath)-match ‘PowerShell’){$_.pspath}}

Мы начинаем с того, что берем объект reg и на каждом шаге сохраняет элемент в специальном об PowerShell с именем выполняться на каждом шаге выполнения команды for-each. Внутри блока for-each мы используем проверку if для того, чтобы узнать, соответствует ли текущая запись реестра и ее свойство pspath, которые мы получаем через обращение к команде getitemproperty (через алиас gp), нашему критерию – наличию строки `PowerShell`. Если соответствие найдено, мы возвращаем значение свойства pspath. Все найденные соответствия сохраняются в объекте s.

Работу с реестром мы завершаем перенаправлением результатов поиска в команду select-object (через алиас select) и показываем два первых найденных результата:

$s| selectfirst 2

В качестве упражнения перенаправьте финальные результаты в файл с помощью команды out-file.

Упражнение 5 Доступ к системному журналу Для обнаружения причин сбоев мы часто обращаемся к си-

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

Viewer (eventvwr.exe). В PowerShell мы можем воспользоваться встроенными командами, например, командой get-eventlog, для быстрого исследования содержимого системного журнала.

Методические указания:

55

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

Убедимся в существовании журнала: get-eventlog –list

Эта команда загружает ключевую информацию из системного журнала. Без использования опции –list PowerShell запросит точное указание названия системного журнала.

Извлечём записи из системного журнала, которые имеют тип ‘Error’

$bad = get-eventlog “System” | where-object { $_.EntryType - eq “Error”}

Мы используем команду get-eventlog, которой указываем параметр «System» для извлечения только системных записей, - мы могли бы более чётко задать это, применив параметр LogName. Содержимое переменной $bad передается в вход команде where-object для фильтрации только интересующих нас записей. В качестве аргументов команды where-object мы указываем на то, что ищем только записи, у которых свойства EntryType равна “Error”.

Выведем на экран 5 последних записей об ошибках, используя для этого команду select-object с параметром – last:

$bad | select-object –last 5

Упражнение 6. Доступ к процессам Еще одна задача, с которой могут столкнуться ИТ-

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

Методические указания:

Сохраняем информацию обо всех процессах, запущенных на данном компьютере, в переменной $allprocs:

$allprocs = get-process

После этого мы перенаправляем полученную информацию команде for-each, которая тоже может быть указана алиасом %

или foreach:

$allprocs | foreach-object {if ($_.Virtualmemorysize – gt20MB){$_.name}}

Данная команда переберает все объекты связанные с процессом, и на каждом шаге сохраняет информацию во внутреннем объекте $_. Этот объект можно условно назвать текущем объектом. В качестве параметров для for-each мы указываем операцию сравнения значения свойства Virtualmemo-

56

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

risize с интересующим нас размером памяти (20Мб в нашем примере). Если значение этого свойства для текущего объекта больше заданного, мы вывдим название процесса на экран. Отметим, что в PowerShell поддерживаются основные сокращения для указания размеров – KB, MB, GB, что очень полезно, поскольку не нужно считать нули при указании объемов памяти, дисков и т.п.

Упражнение 7. Доступ к WMI

Windows Management Instrumentation (WMI) – это реализация компанией Microsoft стандарта Common Information Model (CMI). В большинстве случаев WMI применяется ИТспециалистами для получения информации об аппаратном и программном обеспечении, установленном на данном компьютере. Как мы увидим в следующем примере, использование Windows PowerShell существенно облегчает доступ к информации, хранимой в WMI.

Методические указания:

Применим команду get-wmiobject для получения информации о файле, используемом для свопинга памяти на диск и сохранения этой информации в переменной $pfu:

$pfu = get-wmiobject –class ‘win32_pageFileUsage’

Далее мы применим команду get-member для определения свойств, доступных для класса win32_pageFileUsage:

$pfu |get-member – membertype property where-object {$_.name –notematch ‘_’}

Обычно для нахождения информации по определённому классу можно использовать команду get-member без указания параметров, но в нашем примере нас интересуют только доступные свойства и только те из них, которые не содержат в имени символ подчёркивания. Чтобы узнать о существовании класса WMI win32_pageFileUsage (ведь известно, что в WMI

поддерживается свыше тысячи классов, помимо этого ряд приложений добавляет свои классы), вы можете применить команду:

get-wmiobject –list

для получения списка всех существующих в системе классов.

После того как мы определили доступные нам свойства класса, мы выводим содержимое интересующих нас свойств на экран:

$pfu.caption; $pfu.currentusage 57

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

Контрольные вопросы

1.Что необходимо для статуса политики RemoteSigned?

2.Для чего используются псевдонимы операций?

3.Какой псевдоним у операции alias?

4.Всегда ли допустимо использование псевдонима? От чего это зависит?

5.Что такое РЕЕСТР? Для чего он нужен?

6.Как убедится в существовании журнала?

7.Windows PowerShell - это...?

58

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

ЛАБОРАТОРНАЯ РАБОТА № 6: «НАСТРОЙКА КОМПОНЕНТЫ NETWORK POLICY SERVER. НАСТРОЙКА NAP ДЛЯ ИСПОЛЬЗОВАНИЯ НА ОСНОВЕ DHCP»

Цель работы:

В данной лабораторной работе рассматривается реализация

NAP (Network Access Protection – защита доступа к сети) для

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

К NAP-совместимым ОС относятся Windows XP SP3, Vista, 7 с программой NAP-клиента. Более старые ОС не поддерживаются, так как в NAP используется информация от компонента Windows

Security Center (WSC).

Предварительные требования:

Во-первых, необходима инфраструктура Active Directory (AD) с одним или несколькими контролёрами домена Windows Server 2008, т.к. прошлые версии службы DHCP (в частности,

версия Windows Server 2003) не распознают NAP.

Во-вторых, упражнения выполняются на Win2008-R2 с использованием машины Win2008R2 (компьютер WS2008-DC).

В-третьих, требуется, по крайней мере, один статический адрес для этого компьютера.

Краткая теория.

Network Policy Server (сервер сетевой политики, NPS)

Причины развертывания NAP

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

Предоставление этим клиентам неограниченного доступа к

59

Управление дистанционного обучения и повышения квалификации

Вычислительные системы, сети и телекоммуникации

сети недопустимо. Скомпрометированные системы во внутренней сети представляют собой весьма большой риск безопасности, так как злоумышленники могут легко управлять ими и компрометировать важные данные. Поэтому так важны методы управления подобными клиентами, и именно поэтому Microsoft разработала концепцию NAP в Windows Server 2008 R2.

Обзор компонентов NAP

У NAP имеются три основные характеристики, и все они включены в Windows Server 2008 R2.

Соответствие политике работоспособности. Основой платформы NAP является возможность устранения проблемы. Поэтому функции соответствия политике работоспособности в платформе NAP выполняют такие механизмы проверки соответст-

вия, как служба обновления Windows Server (Windows Server Update Services – WSUS), агенты центра управления конфигурацией системы (System Center Configuration Manager) и другие службы исправления. Windows Server 2008 R2 может автоматически адресовать клиентов на сервер исправления, прежде чем предоставить им полный доступ к сети. Например, клиент без свежих исправлений может быть отправлен на сервер WSUS для установки нужных исправлений.

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

Ограничение доступа. Базовым принципом эффективной работы платформы NAP является возможность ограничения доступа к сетям на основе результатов проверки состояния работоспособности. Степень разрешаемого доступа может быть очень различной. К примеру, клиенты могут иметь доступ к отдельным системам для выполнения исправлений безопасности, но не к другим клиентам. В NAP Windows Server 2008 R2 имеются возможности настраиваемого ограничения доступа, что позволяет администраторам создавать гибкие политики.

60