Применимо к: Exchange Server 2010 SP1
Последнее изменение раздела: 2009-11-09
Безопасность сценария в командной консоли Exchange помогает
предотвратить выполнение вредоносных или других нежелательных
сценариев в организации. Доступны параметры для изменения
безопасности сценария в соответствии с требованиями
организации.
Как правило, встречаются сценарии нескольких разных источников:
собственные, созданные другим пользователем в организации или
авторами, не входящими в организацию, например, из Интернета.
Собственному сценарию разрешается выполнять то, для чего он
предназначен, его автором. Если этот сценарий используется
совместно с другими администраторами в организации, они также могут
доверять этому сценарию потому, что ему доверяет автор.
Если сценарии поступили из других источников, например, из
Интернета, безопасность сценария неизвестна. Единственным способом
убедиться в безопасности сценариев из источников, неизвестных
организации, заключается в прямой проверке кода сценария и его
испытании в изолированной лабораторной среде. Хотя этот процесс
может оказаться трудоемким и занять много времени, рекомендуется
предотвращать непреднамеренное выполнение вредоносного кода.
Командная консоль поддерживает рекомендуемое использование
цифровых подписей для проверки того, что сценарий не подделан после
его создания. Дополнительные сведения о цифровых подписях см. ниже
в разделе «Общие сведения о цифровой подписи».
Режимы выполнения сценариев
В командной консоли предусмотрены четыре режима
выполнения сценариев для управления использованием сценариев, в
зависимости от того, как они подписаны, и источника (известный или
неизвестный) происхождения. Эти режимы выполнения сценариев описаны
в приведенной ниже таблице.
Важно! |
При использовании командной консоли в удаленном режиме должен
использоваться режим выполнения сценариев
RemotedSigned или Unrestricted .
Дополнительные сведения об удаленной консоли см. в разделе Обзор командной консоли
Exchange. |
Режимы выполнения сценариев
Режим |
Описание |
Режим Restricted
|
Запрещено выполнение любых сценариев, даже подписанных
доверенным издателем. Этот режим выполнения сценариев установлен по
умолчанию.
|
Режим AllSigned
|
Выполняются только сценарии, имеющие цифровую подпись
доверенного издателя.
|
Режим RemoteSigned
|
Выполняются все сценарии, созданные локально. Сценарии,
загруженные из удаленных источников, например, из Интернета,
безопасность которых неизвестна, выполняться не будут.
|
Режим Unrestricted
|
Выполняются все сценарии, независимо от наличия цифровой подписи
и доверия. Не рекомендуется использовать режим
Unrestricted , если только сценарий не выполняется в
непроизводственной контролируемой лабораторной среде.
|
Чтобы изменить установленный по умолчанию режим
выполнения сценариев Restricted
, используйте командлет
Set-ExecutionPolicy в командной консоли Exchange. В данном
примере режим политики выполнения изменяется на
RemotedSigned
.
|
Скопировать код |
Set-ExecutionPolicy RemotedSigned
|
Командная консоль немедленно применит изменение этой
политики.
Примечание. |
Если включено управление доступом на уровне пользователей, для
задания политики выполнения необходимо открыть командную консоль с
повышенными привилегиями. Чтобы открыть командную консоль с
повышенными привилегиями, щелкните значок консоли правой кнопкой
мыши и выберите команду Запуск от имени администратора. |
В крупных организациях для установки одинакового режима
выполнения сценариев для всех компьютеров с командной консолью
необходимо применять параметр режима выполнения сценариев с помощью
групповой политики Служба каталогов Active
Directory. Групповая политика Служба каталогов Active
Directory задает необходимый режим выполнения сценариев в качестве
значения параметра ExecutionPolicy
в разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.
Внимание! |
Неправильное изменение реестра может привести к серьезным
неполадкам, требующим переустановки операционной системы. Проблемы,
возникшие в результате неправильного изменения реестра, могут
оказаться неустранимыми. Перед внесением изменений в реестр
выполните резервное копирование всех важных данных. |
Общие сведения о цифровой
подписи
Цифровые подписи создаются с помощью алгоритма
подписи с открытым ключом, который использует два разных ключа
шифрования, называемых криптографической парой: открытый ключ и
закрытый ключ. Закрытый ключ известен только его владельцу, а
открытый ключ доступен всем. В цифровых подписях закрытый ключ
создает подпись, а соответствующий открытый ключ удостоверяет эту
подпись.
Сертификат является цифровым документом, который
широко используется для проверки подлинности и способствует защите
информации в открытых сетях. Сертификат надежно связывает открытый
ключ с объектом, хранящим соответствующий закрытый ключ.
Сертификаты имеют цифровые подписи, изданные центрами сертификации.
Используя сертификат с цифровой подписью, автор сценария добавляет
цифровую подпись в файл сценария. Во время этого процесса создается
односторонняя хэш-функция сценария, которая шифруется с помощью
закрытого ключа. Зашифрованная хэш-функция и является строкой
цифровой подписи, которая добавляется в файл сценария. Эта строка
цифровой подписи превращается в комментарий и не влияет на
функциональность сценария.
При выполнении этого сценария в командной консоли, где
требуется цифровая подпись, создается новая односторонняя
хэш-функция файла сценария. Эта односторонняя хэш-функция
сравнивается с зашифрованной хэш-функцией, включенной в файл
сценария, после ее расшифровки с помощью открытого ключа. Если этот
сценарий был каким-либо способом изменен после того как был
подписан, хэш-функции не совпадут. Компьютер затем попытается
проверить, что подпись принадлежит доверенному издателю построением
цепочки сертификатов к доверенному центру сертификации. Если
достоверность сертификата подтверждена, сценарий выполняется.
Принадлежность сценария к доверенному источнику зависит
от исходного сертификата цифровой подписи, использованного для
цифровой подписи сценария. Вообще, существует два типа
сертификатов:
- Сертификаты, изданные доверенным центром
сертификации Центр сертификации проверяет
подлинность запрашивающей стороны, прежде чем выдать сертификат
цифровой подписи. Издающий центр может быть внешней, публичной
сторонней организацией, которая продает сертификаты, или внутренним
центром сертификации, который входит в вашу организацию. Если для
подписи сценария используется сертификат этого типа, то сценарий
может использоваться пользователями на других компьютерах, которые
распознают и доверяют центру сертификации, который выдал этот
сертификат.
- Сертификаты с собственной подписью Для
сертификата этого типа компьютер пользователя сам является центром
сертификации, создающим сертификат. Преимущество сертификата с
собственной подписью состоит в том, что пользователь создает,
подписывает и выполняет сценарии на своем компьютере. Но в этом
случае выполнение такого сценария на других компьютерах невозможно,
поскольку они не рассматривают компьютер пользователя как
доверенный центр сертификации. Если они не доверяют компьютеру
пользователя, издавшего сертификат, они не могут проверить
подлинность этой самозаверенной подписи и сценарий не будет
выполнен.
Командлеты для управления цифровой
подписью
Командная консоль содержит два командлета для
управления цифровой подписью.
Командлет Set-AuthenticodeSignature используется
для добавления цифровых подписей в файлы сценария. В качестве
первого позиционного параметра для командлета
Set-AuthenticodeSignature указывается имя файла,
который должен быть подписан. Если этот файл не находится в текущем
каталоге, необходимо указать путь к файлу. Вторым входным
параметром для этого командлета является сертификат, используемый
для подписи. Этот сертификат хранится в локальном хранилище данных.
Этот параметр необходимо указать в форме строки, которая ссылается
на сертификат. Получить доступ к сертификату можно с
помощью Cert: диск.
Вторым командлетом для управления цифровой подписью
является Get-AuthenticodeSignature. Командлет
Get-AuthenticodeSignature используется для проверки и
подтверждения текущего состояния цифровой подписи для файла,
который указан в качестве входного параметра. Если при
использовании сценария с цифровой подписью возникает проблема,
выводимые командой Get-AuthenticodeSignature сведения будут
полезными для устранения проблемы.
Если необходимо выполнить сценарии из внешних
источников, например, Microsoft, необходимо адаптировать эти
сценарии согласно режиму выполнения сценариев в своей среде. Можно
получить сценарии в виде исходных файлов TXT, переименовать их в
файлы сценария с расширением PS1, а затем, после применения
требуемой подписи, выполнять эти файлы, как будто они написаны
самостоятельно.
Для получения дополнительных сведений о цифровой
подписи и политиках выполнения сценариев необходимо выполнить в
командной консоли команду: Get-Help About_Signing
. Эта
команда выводит справочную информацию, которая содержит подробные
указания для цифровой подписи сценариев.