Заметки практикующего сисадмина

Дядя Саша Кузьмич пишет о работе

Месяц: Март 2014

  • Wake-on-LAN

    Удаленное включение компьютеров по сети — очень полезный функционал, который совершенно напрасно недооценивается большинством системных администраторов. Установка обновлений, дефрагментация, поиск вирусов и многие другие задачи можно выполнять в нерабочее время, при этом совершенно необязательно заставлять пользователей оставлять свои компьютеры включенными. Достаточно лишь активировать функционал Wake-on-LAN в BIOS, не забыв при этом обратить внимание на настройку энергосберегающих технологий в режиме ожидания, и настроить функцию управления питанием в ОС. В настоящее время Wake-on-LAN — это не только «магический пакет», а целый набор разнообразных технологий, работоспособность которых зависит от функционала сетевого адаптера. Подробное описание поддерживаемых технологий, а также о настройке параметров питания сетевых адаптеров можно прочитать на Технете.

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

    Option Explicit
    Dim colNetworkAdapters
    Dim objNetworkAdapter
    Dim strDevInstanceName
    Dim strNetworkAdapterID
    'Query for all of the Win32_NetworkAdapters that are wired Ethernet (AdapterTypeId=0 corresponds to Ethernet 802.3)
    Set colNetworkAdapters = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/Cimv2").ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterTypeId=0")
    For Each objNetworkAdapter In colNetworkAdapters
       strNetworkAdapterID = UCase(objNetworkAdapter.PNPDeviceID)
       'Query for all of the MSPower_DeviceWakeEnable classes
       Dim colPowerWakeEnables
       Dim objPowerWakeEnable
       Set colPowerWakeEnables = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/wmi").ExecQuery("SELECT * FROM MSPower_DeviceWakeEnable")
       'Compare the PNP Device ID from the network adapter against the MSPower_DeviceEnabled instances
       For Each objPowerWakeEnable In colPowerWakeEnables
          'We have to compare the leftmost part as MSPower_DeviceEnabled.InstanceName contains an instance suffix
          strDevInstanceName = UCase(Left(objPowerWakeEnable.InstanceName, Len(strNetworkAdapterID)))
          'Match found, enable WOL
          If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then
             objPowerWakeEnable.Enable = True
             'Required to write the value back to the object
             objPowerWakeEnable.Put_
          End If
       Next
       'Query for all of the MSNdis_DeviceWakeOnMagicPacketOnly classes
       Dim colMagicPacketOnlys
       Dim objMagicPacketOnly
       Set colMagicPacketOnlys = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/wmi").ExecQuery("SELECT * FROM MSNdis_DeviceWakeOnMagicPacketOnly")
       'Compare the PNP Device ID from the network adapter against the MSNdis_DeviceWakeOnMagicPacketOnly instances
       For Each objMagicPacketOnly In colMagicPacketOnlys
          'We have to compare the leftmost part as MSNdis_DeviceWakeOnMagicPacketOnly.InstanceName contains an instance suffix
          strDevInstanceName = UCase(Left(objMagicPacketOnly.InstanceName, Len(strNetworkAdapterID)))
          'Match found, enable WOL for Magic Packets only
          If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then
             'Set to false if you wish to wake on magic packets AND wake patterns
             objMagicPacketOnly.EnableWakeOnMagicPacketOnly = False
             'Required to write the value back to the object
             objMagicPacketOnly.Put_
          End If
       Next
    Next

    Если в выделенной жирным строчке изменить False на True, то для пробуждения будут использоваться только магические пакеты. На мой взгляд, не стоит намеренно ограничивать себя в технологиях пробуждения, т.к., например, Агент администрирования Kaspersky Security Center позволяет пробуждать компьютеры с помощью битовых шаблонов.

    Оригинальный скрипт.

  • Повышаем безопасность SSL/TLS в ОС Windows

    В ОС Windows за организацию безопасных каналов SSL/TLS отвечает криптопровайдер SChannel, чтобы противостоять современным атакам на слабые шифры требуется его отконфигурировать. Проще всего это сделать с помощью программы IIS Crypto — она отключит небезопасные шифры и SSL 2.0, добавит современные шифры. Конфигурация применится ко всем службам, использующим SChannel (в т.ч. Exchange и TMG), а не только к IIS. Также требуется отключить небезопасное пересогласование сессий TLS путем добавления в ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL параметров типа DWORD AllowInsecureRenegoClients и AllowInsecureRenegoServers с нулевыми значениями.

    Подробнее про атаки на SSL/TLS и закручивание гаек вручную можно прочитать в этой статье.

    Провести глубокий анализ настроек SSL своего веб-сервера можно с помощью этого сервиса.

  • Настройка таймаутов авторизации FBA в OWA

    По умолчанию в OWA действуют достаточно жесткие таймауты авторизации с помощью FBA: 15 минут для общих компьютеров и 8 часов для личных. С учетом того, что по умолчанию выбирается режим общего компьютера и изменить это поведение в настройках MS Exchange нельзя, такие настройки могут доставлять неудобства пользователям.

    Настроить таймауты по своему усмотрению можно путем редактирования реестра: в ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange OWA необходимо добавить параметры типа DWORD PublicTimeout и PrivateTimeout и в качестве значения задать необходимые таймауты в минутах.  Чтобы внесенные изменения вступили в силу, необходимо перезапустить службу «Служба проверки подлинности на основе форм Microsoft Exchange».

    Источник: Технет

  • Устанавливаем протокол RDP 8.0 в Windows 7 и Windows Server 2008 R2

    1. Устанавливаем обновление kb2592687
    2. Включаем протокол с помощью групповых политик:
    • Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения\Выбор транспортных протоколов RDP — Использовать TCP и UDP
    • Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Среда удаленных сеансов\Настройка RemoteFX — Включить
    • Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Среда удаленных сеансов\Разрешить протокол удаленного рабочего стола (RDP) версии 8.0 — включить

    Не забываем открыть порт UDP/3389 в брандмауэре!

  • Как добавить новый интерфейс в RRAS

    Недавно столкнулся с проблемой — в сервер на Windows Server 2008 R2 с поднятой и настроенной службой RRAS был добавлен новый сетевой адаптер, однако в оснастке RRAS он не появился и добавить его вручную, как это делалось в Windows Server 2003 не удалось, интерфейс отсутствовал в списке доступных для добавления. На форумах предлагалось гениальное решение — удалить конфигурацию RRAS, а затем заново настроить службу. Быть может это решение годится, когда конфигурация элементарная и RRAS не выполняет критичных задач, но не в моем случае.

    Приемлемое решение все же удалось найти на форумах Технет:

    • Открываем реестр, переходим к ключу HKLM\SYSTEM\CurrentControlSet\services\RemoteAccess\Interfaces, находим ключ с наибольшим номером и экспортируем его в файл.
    • Переходим к ключу HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces и ищем интерфейс, отсутствующий в RRAS, копируем его GUID.
    • В файле увеличиваем номер интерфейса, меняем GUID в параметре InterfaceName.
    • Импортируем файл в реестр, перезапускаем службу RRAS.

    Решение, увы,  нетривиальное. Более того, в той же ветке на форуме пишут, что в Windows Server 2012 R2 проблема решается точно также.

  • Настройка источника синхронизации времени в домене

    Синхронизация времени в домене на основе Active Directory настроена по умолчанию, ведь одинаковое время на серверах и клиентах — залог успешного функционирования Kerberos. Однако помимо одинакового времени на всех устройствах домена зачастую требуется обеспечить его точность (например, для разбора спорных ситуаций). Как и где настроить источник точного времени для всего леса подробно рассказывается в Технете. Вкратце: источником времени в лесу является PDC Emulator корневого домена и именно на нем необходимо произвести все манипуляции.

    Остается дело за малым — выбрать источник точного времени. Разумеется, ответ напрашивается сам собой — pool.ntp.org. К сожалению, как показала практика, на некоторых серверах в пуле отклонение во времени может достигать невероятных величин — 75 секунд. Не будем вдаваться в причины такого безобразия, а поищем доступные открытые источники. Обеспечением работы государственной службы времени, частоты и определения параметров вращения Земли занимается ФГУП «ВНИИФТРИ». На предприятии установлены специализированные аппаратные тайм-серверы, подключенные к государственному первичному эталону времени, т.е. их уровень — stratum 1. Тайм-серверы расположены в Москве, Иркутске и Хабаровске, доступ к ним по протоколу NTP предоставляется абсолютно бесплатно.

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

    Переходим к конфигурации:

    w32tm /config /manualpeerlist:"ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru ntp4.vniiftri.ru" /syncfromflags:manual /reliable:yes /update && net stop w32time && net start w32time && w32tm /resync

    Теперь наш PDC Emulator стал тайм-сервером со stratum 2. Проверить состояние синхронизации времени между контроллерами домена можно с помощью команды w32tm /monitor, а между контроллером домена и рядовым сервером или рабочей станцией с помощью команды w32tm /query /peers && w32tm /query /status.