В этой части статьи будет подробно рассказано о работе с контекстом Netsh Advfirewall MainMode. Основной режим появился в операционной системе Windows 7 и Windows Server 2008 R2. Этот функционал согласовывает обмен ключами в Интернете (IKE) и устанавливает защищенный канал между двумя компьютерами путем определения набора криптографических комплектов защиты, обмена материалом ключа для создания общего секретного ключа и проверки учетных данных компьютеров и пользователей. Сопоставление безопасности (SA) по протоколу ISAKMP - это информация о защищенном канале, хранящаяся на локальном компьютере и позволяющая ему осуществлять обмен данными с удаленным компьютером. Можно осуществлять наблюдение за сопоставлениями безопасности основного режима для получения информации о текущих установленных одноранговых подключениях к данному компьютеру и комплекте защиты, использованном для создания сопоставления безопасности.
Основной режим функционирует при условии соблюдений режима Common Criteria (для изучения этого режима и работы с группой криптографических операторов вы можете ознакомиться со следующим ресурсом: Description of the Crypto Operators security group that was added to Windows Vista Service Pack 1 to configure Windows Firewall for IPsec in Common Criteria mode). Если на компьютере этот режим включен, то администраторы компьютера могут создавать и управлять правилами основного режима. Для того чтобы можно было использовать все команды для основного режима, ваша административная учетная запись также должна состоять в группе «Криптографические операторы». Созданные правила можно экспортировать и применять на других компьютерах. Контекст Netsh advfirewall MainMode поддерживает четыре команды, которые описаны в последующих разделах.
Add
Подобно контексту Netsh Advfirewall Consec, команда Add также предназначена только для создания правил основного режима при помощи команды Add rule. Эти правила определяют, как IPSec устанавливает защищенный канал между двумя компьютерами путем определения набора криптографических комплектов защиты, обмена материалом ключа для создания общего секретного ключа и проверки учетных данных компьютеров и пользователей. Синтаксис команды следующий:
Netsh Advfirewall MainMode Add rule name=ИмяПравила
где:
name = ИмяПравила. При помощи этого параметра вы можете указать имя нового правила основного режима. Имя правила должно быть уникальным и не может иметь значение "all".
mmsecmethods = { KeyExch:Encryption-Integrity [ ,… ] | default }. При помощи этого параметра вы можете указать схему обмена ключами Диффи — Хеллмана, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены, канал связи. Синтаксис части команды в этом случае будет следующий:
keyexch:enc-integrity,keyexch:enc-integrity[,...]
где keyexch это dhgroup1 | dhgroup2 | dhgroup14 | ecdhp256 | ecdhp384, enc - des | 3des | aes128 | aes192 | aes256, а integrity - md5 | sha1 | sha256 | sha384.
Также вы можете вводить несколько комбинаций enc-алгоритмов целостности в том случае, если они используют тот же механизм, что и у первой пары enc-целостности, разделенные запятыми. Значение, указанное по умолчанию - dhgroup2:aes128-sha1,dhgroup2:3des-sha1
mmforcedh = { yes | no }. Этот параметр предназначен для использования DH в защите обмена ключами основного режима IPSec при использовании AuthIP. Доступные значения: yes, no.
mmkeylifetime = Lifemin,Numsess. При помощи этого параметра вы можете настраивать время жизни ключа основного режима в минутах или сеансах, либо же обоими способами. Минуты могут варьироваться от 1 до 2880, а сеансы от 0 до 2147483647. Также доступно значение notconfigured.
description = Описание правила. При помощи этого параметра вы можете указать подробное описание для созданного правила.
enable = { yes |no }. При помощи этого параметра можно указать, должно ли быть включено правило после его создания. Значение по умолчанию – yes.
profile = { public | private | domain | any | [ ,... ] }. При помощи этого параметра вы можете указать профили, на которые будет распространяться текущее правило. Правило будет применяться только в том случае, если указанный в правиле профиль будет активным. Профиль домена применяется к сети, если для домена, в который входит локальный компьютер, обнаружен контроллер домена. Частный профиль применяется к сети, если она помечена администратором компьютера как частная и не является доменной сетью. Общий профиль применяется к сети, если компьютер непосредственно подключен к публичной сети, например в аэропорту или кафе.
endpoint1 = Адреса. При помощи этого параметра вы можете указать компьютеры, на которые распространяются условия текущего правила. Компьютеры, указанные в endpoint1 могут связываться с компьютерами, указанными в endpoint2 только в том случае, когда выполняются требования текущего правила. При указании конкретных IP-адресов они должны относиться к одной и той же версии протокола IP. Помимо этого, при настройке динамических туннелей конечные точки туннелей могут задаваться как any. Локальную туннельную конечную точку задавать для клиентской политики необязательно (т.е. any). Также необязательно указывать удаленные конечные точки туннелей для политики шлюза (т.е. any). Для параметров endpoint1 и endpoint2 доступны следующие значения:
- any – адреса компьютеров IPv4 или IPv6;
- localsubnet – любые компьютеры, расположенные в той же подсети, что и локальный компьютер;
- Dns | dhcp | wins | defaultgateway – любые компьютеры, которые настроены как сервера;
- IPАдрес – только адреса IPv4 или IPv6 компьютеров, у которых статический адрес;
- IPПодсеть – адреса IPv4 или IPv6 подсети, которые соответствуют любому компьютеру, расположенному в указанной подсети. Формат подсети – начальный адрес, после чего идет символ «/», а затем любое число бит маски подсети;
- IPДиапазон – диапазон адресов IPv4 или IPv6, который соответствует любому компьютеру, находящегося в указанном диапазоне. Формат диапазона – начальный адрес и конечный адреса диапазона, разделенные знаком «-».
auth1 = { computerkerb | computercert | computercertecdsap256 | computercertecdsap384 | computerpsk | computerntlm | anonymous | [ , ...] }. Этот параметр отвечает за использование проверки подлинности компьютера IPSec для основного режима на основе сертификата компьютера. Можно указывать несколько значений, разделенных запятыми без пробелов. Для того чтобы при помощи созданного правила компьютеры могли между собой общаться, проверка подлинности должна пройти успешно. Обязательно должен быть указан как минимум один метод проверки подлинности. Для этого параметра доступны следующие значения:
- computerkerb – при выборе этого значения для проверки подлинности компьютера будет использоваться протокол Kerberos V5;
- computercert – при выборе этого значения для проверки подлинности, компьютер использует сертификат, выданный центром сертификации (CA), который подписывается с помощью алгоритма шифрования с открытым ключом RSA;
- computercertecdsap256 – при выборе этого значения для проверки подлинности, компьютер использует сертификат, выданный центром сертификации (CA), который подписывается с помощью алгоритма цифровой подписи на эллиптических кривых с 256-битным уровнем криптостойкости ключа;
- computercertecdsap384 – при выборе этого значения для проверки подлинности, компьютер использует сертификат, выданный центром сертификации (CA), который подписывается с помощью алгоритма цифровой подписи на эллиптических кривых с 384-битным уровнем криптостойкости ключа;
- computerpsk – при выборе этого значения для проверки подлинности, компьютер использует данные, введенного вручную общего ключа на двух компьютерах для передачи данных. Этот ключ хранится в незашифрованном виде и в связи с этим, рекомендуется не использовать это значение;
- computerntlm – при выборе этого значения для проверки подлинности учетной записи компьютера используется метод NTLMv2. Это значение нельзя использовать совместно со значением computerpsk;
- anonymous – этот параметр не рекомендуется выбирать без других значений, а также со значением computerpsk. При применении этого значение, его рекомендуется добавлять в последнюю очередь.
auth1psk = PreSharedKey. Данный параметр можно использовать только в том случае, если в значениях параметра auth1 присутствует computerpsk. При помощи этого параметра можно задать дополнительные значения ключа, который используется для проверки подлинности. Это значение хранится в незашифрованном виде.
auth1ca = "CAName [ certmapping: { yes | no } ] [ excludecaname: { yes | no } ] [ catype: { root | intermediate } ] [ | ... ]". При помощи этого параметра вы можете указать сертификат, подписанный с помощью алгоритма шифрования с открытым ключом RSA. Этот параметр может быть активным только в том случае, если у параметра auth1 было установлено значение computercert. Вы можете указать несколько сертификатов, разделив их символом |. Все значения параметра должны быть заключены в кавычки. Для этого параметра есть несколько необходимых значений:
- CAName – при помощи этого значения укажите имя издателя сертификата, который используется для проверки подлинности. Формат выражения должен соответствовать стандартам сертификатов (CN, OU…). Имя центра сертификации обязательно должно иметь префикс “CN=”;
- Certmapping – при помощи этого значения укажите, следует ли включить отображение certificate-to-account;
- Excludecaname – при помощи этого значения указывается, следует ли исключить имя доверенного корневого центра сертификации, от имени которого принимается сертификат.
- Catype – Параметр catype можно использовать для указания типа центра сертификации - catype=root/intermediate.
auth1healthcert = { yes | no }. Этот параметр ограничивает используемые сертификаты компьютеров теми, которые помечены как сертификаты работоспособности. Сертификаты работоспособности публикуются центром сертификации для поддержки развертывания защиты доступа к сети (NAP). Служба защиты доступа к сети (NAP) помогает определять и применять политики работоспособности, чтобы обеспечить минимальную вероятность доступа в сеть компьютерам, не отвечающим сетевым требованиям (например, компьютерам без антивирусных программ или на которых не установлены последние обновления программного обеспечения). Этот параметр может быть активным только в том случае, если у параметра auth1 было установлено значение computercert.
auth1ecdsap256ca = "CAName [ certmapping: { yes | no } ] [ excludecaname: { yes | no } ] [ catype: { root | intermediate } [ | ... ]". При помощи этого параметра вы можете указать сертификат, подписанный с помощью алгоритма цифровой подписи на эллиптических кривых с 256-битным уровнем криптостойкости ключа. Этот параметр может быть активным только в том случае, если у параметра auth1 было установлено значение computercertecdsap256.
auth1ecdsap256healthcert = { yes | no }. Этот параметр по своему назначению и значениям идентичен параметру auth1healthcert.
auth1ecdsap384ca = "CAName [ certmapping: { yes | no } ] [ excludecaname: { yes | no } ] [ catype: { root | intermediate } [ | ... ]". При помощи этого параметра вы можете указать сертификат, подписанный с помощью алгоритма цифровой подписи на эллиптических кривых с 384-битным уровнем криптостойкости ключа. Этот параметр может быть активным только в том случае, если у параметра auth1 было установлено значение computercertecdsap384.
auth1ecdsap384healthcert = { yes | no }. Этот параметр по своему назначению и значениям идентичен параметру auth1healthcert.
type = { dynamic | static }. При помощи этого параметра вы можете указать, как будет применяться правило для текущей сессии, и где оно будет храниться. Для этого параметра есть два значения:
- dynamic – при указании этого значения, правило брандмауэра Windows в режиме повышенной безопасности сразу применяется к текущей сессии и не привязывается к адресу компьютера. При этом ни одна политика не сохраняется и правило не будет активно после перезагрузки компьютера;
- static – правило будет сохраняться в текущем хранилище политики, указанном при помощи команды advfirewall set store. Правило не будет применяться до тех пор, пока политики не будут активными.
По умолчанию установлен параметр static
Пример использования:
add rule name="Пример использования" description="Это пример создания правила для основного режима" Mmsecmethods=dhgroup2:3des-sha256,ecdhp384:3des-sha384 auth1=computercert,computercertecdsap256 auth1ca="C=US, O=MSFT, CN=\'Microsoft North, South, East, and West Root Authority\'" auth1healthcert=no auth1ecdsap256ca="C=US, O=MSFT, CN=\'Microsoft North, South, East, and West Root Authority\'" auth1ecdsap256healthcert=yes mmkeylifetime=2min profile=domain
Увеличить рисунок
Delete
При помощи команды Delete контекста Netsh Advfirewall MainMode вы можете удалить все правила или отдельные их параметры. При указании команды без параметров, команда delete удалит все созданные ранее правила основного режима. При обнаружении нескольких совпадений удаляются все правила, удовлетворяющие условию. Синтаксис команды следующий:
Netsh Advfirewall MainMode Rule Параметр Значение
Все параметры, которые доступны для этой команды, идентичны некоторым параметрам команды Add. Для этой команды доступны следующие параметры:
name = { all | RuleName }, profile = { public | private | domain | any | [ ,... ] }, type = { dynamic | static }
Для того чтобы удалить созданное правило основного режима, выполните следующие действия:
delete rule name="Пример использования"
Увеличить рисунок
Set
При помощи команды Set контекста Netsh Advfirewall MainMode вы можете изменять и добавлять любые параметры и значения в заранее созданные правила. Для того чтобы в существующее правило основного режима можно было добавить новый параметр, перед указанием параметров, введите set rule new. Если таких значений нет, или же ключевое слово new отсутствует, изменения не вносятся. Если правила не существует, команда завершается ошибкой. Для создания правил используется команда add, которая подробно описывалась в разделе Add. Синтаксис команды следующий:
set rule name=ИмяПравила Параметр Значение
В том случае, если критерию соответствуют несколько правил, все соответствующие правила будут обновлены. В следующем списке отображены все параметры, которые вы можете задавать без параметра new:
- name = RuleName
- profile = { public | private | domain | any } [ , ...]
- type = { dynamic | static }
Вместе с параметром new можно использовать все параметры, которые рассматривались в разделе Add.
Для изменения имени правила и его описания, выполните следующие действия:
set rule name="Пример использования" new name="Основной режим" description="Новое описание"
Увеличить рисунок
Для того чтобы изменить параметры mmescmethods и mmkeylifetime, выполните следующее:
set rule name="Основной режим" new Mmsecmethods=dhgroup2:3des-sha256,ecdhp384:3des-sha384 auth1=computerntlm mmkeylifetime=15min
Увеличить рисунок
Show
При помощи команды Show контекста Netsh Advfirewall MainMode вы можете отобразить все экземпляры правил основного режима, соответствующих указанному имени и, при необходимости, профилям и типу. При желании вы можете сделать выборку правил по имени, используя параметр name = { all | ИмяПравила }; по профилям, используя параметр profile = { public | private | domain | any } [ ,... ]; по типу: type = { dynamic | static }, а также отобразить подробную информацию, используя параметр verbose.
Например:
show rule name="Основной режим"
Увеличить рисунок