Чек-лист безопасного Windows Server

Вопрос безопасности сервера был и будет актуальным. Рассмотрим базовые правила обеспечения безопасности серверов под управлением ОС семейства Window Server.

Регулярно устанавливать обновления операционной системы и установленного программного обеспечения.

В быту существует мнение, что Windows не нуждается в обновлениях и их вообще лучше отключить, якобы “чтобы система не тормозила”. Это одна из самых главных ошибок. Обновления важно устанавливать своевременно, особенно критические. Упрощает эту задачу специальная утилита, с которой можно ознакомиться на официальном сайте Центра обновления Windows.

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

Использовать ПО из проверенных источников.

Рекомендуем перед загрузкой установочного пакета программного обеспечения, в том числе и Open Source, убедиться в надежности источника. Нередко бывает так, что визуально похожий на официальный сайт ресурс, распространяет уже скомпрометированое ПО. В пакет установки может быть добавлен файл с вредоносным кодом.

Грамотно настроить межсетевой экран.

Важно понимать, что сервер доступен из сети Интернет. По этой причине, ОС должна быть защищена любым устройством выполняющим функции файрволла. Если подобных устройств нет, то Брандмауэр Windows будет последней надеждой на защиту от несанкционированных подключений к серверу. 

Чем меньше TCP/UDP портов доступно извне, тем меньше шансов провести атаку на сервер. В этом вопросе важно разобраться что блокировать. Если речь идет о web-сервере, то доступными необходимо оставить 80 и 443 TCP-порты (эти порты служба слушает по умолчанию). 

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

  • 3389 - RDP (Remote Desktop Protocol);
  • 135-139 - NetBIOS;
  • 445 - Samba (общий доступ к файлам и папкам);
  • 5000 - 5050 - FTP в пассивном режиме;
  • 1433 - 1434 - порты SQL;
  • 3306 - стандартный порт MySQL;
  • 53 - DNS

Создать правило не сложно. Открываем Пуск → Панель управления → Система и безопасность → Администрирование → Брандмауэр Windows в режиме повышенной безопасности.

В окне программы кликаем правой кнопкой мыши по “Правила для входящих подключений”. В открывшемся контекстном меню выбираем “Создать правило...”.

Переименовать учетную запись администратора.

Использовать несколько аккаунтов администратора.

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

Использовать учетную запись пользователя с ограниченными правами.

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

В случае несанкционированного доступа под учетной записью администратора, злоумышленник получит полный доступ к системе.

Ограничить общий доступ к файлам и папкам, включить защиту паролем.

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

Кроме использования парольной защиты, рекомендуем ограничить разных пользователей в уровне доступа как к файлам, так и папкам (чтение, запись, изменение).

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

При использовании физического сервера (не удаленного и не виртуального), рекомендуется включить запрос пароля пользователя при выходе из режима ожидания. Данный параметр настраивается в панели управления: Панель управления → Все элементы панели управления → Электропитание.

Также важно установить лимиты бездействия пользователя, а “по возвращении” запросить пароль. Это исключит возможность входа другого лица от имени пользователя, в случае если тот отлучился или забыл закрыть RDP-сессию. Чтобы настроить этот пункт, следует воспользоваться настройкой локальных политик secpol.msc.

Использовать Мастер настройки безопасности.

Мастер настройки безопасности (SCW – Security Configuration Wizard) позволяет создавать XML-файлы политик безопасности, которые впоследствии, можно перенести на другие серверы. Эти политики включают в себя не только правила использования сервисов, но и общие параметры системы и правила Firewall.

Корректно настроить политики безопасности.

Кроме первоначальной настройки групповых политик Active Directory, периодически следует проводить их ревизию и повторную настройку. Это один из основных способов обеспечения безопасности Windows-инфраструктуры.

Для удобства управления групповыми политиками, можно воспользоваться не только встроенной в Windows Server утилитой «gpmc.msc», но и предлагаемую Microsoft утилиту «Упрощенные параметры настройки безопасности» (SCM-Security Compliance Manager).

Использовать локальные политики безопасности.

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

Для управления локальными политиками вы можете использовать соответствующую оснастку «Локальная политика безопасности», вызываемую командой secpol.msc из Пуск -> Выполнить (клавиша Windows + R).

Защитить службу удаленных рабочих столов (RDP).

1. Блокировать RDP-подключения для пользователей с пустым паролем.

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

В открывшемся каталоге, запускаем Локальная политика безопасности.

В окне локальный политик безопасности, слева, выбираем Локальные политики → Параметры безопасности. В основной части окна, находим “Учетные записи: Разрешить использование пустых паролей только при консольном входе”.

Выбираем этот пункт двойным кликом и переводим переключатель в положение “Отключен”. Нажимаем кнопку “OK”.

2. Поменить стандартный TCP-порт RDP.

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

Для замены порта:

1. открываем редактор Реестра Windows - Windows + R

2. На всякий случай, создаем резервную копию реестра (Файл → Экспорт)

3. Разворачиваем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp и, в правой доле окна, находим параметр PortNumber.

4. Открываем параметр двойным кликом мыши. В открывшемся окне выбираем Систему исчисления: Десятичная, указываем новое значение порта, нажимаем кнопку “OK” и закрываем окно редактора реестра.

5. Чтобы была возможность подключиться к серверу, создаем соответствующее правило для Брандмауэра Windows. Кликаем правой кнопкой мыши по “Правила для входящих подключений”, в контекстном меню выбираем “Создать правило”.

В окне “Мастера”, выбираем “Для порта

Затем выбираем “Протокол TCP”, “Определенные локальные порты” и указываем новый номер порта.

Следующим шагом выбираем “Разрешить подключение

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

На итоговом шаге, указываем название правила и описание к нему.

6. Перезагружаем сервер чтобы применить изменения.

7. Для подключения к удаленному рабочему столу теперь используем IP-адрес или доменное имя, а через двоеточие указываем порт.

Настроить шлюз службы терминалов.

Служба “Шлюз TS (служб удаленных рабочих столов)” позволяет обезопасить подключение к удаленному рабочему столу путем использования протокола HTTPS(SSL), тем самым избавляя системного администратора от необходимости настройки VPN. Инструмент способен комплексно контролировать доступ к машинам, а также устанавливать правила авторизации и требования к удаленным пользователям, например:

  • Пользователи или группы пользователей, которым разрешено подключаться к внутренним сетевым ресурсам;
  • Сетевые ресурсы, к которым могут подключаться пользователи;
  • Должны ли клиентские компьютеры иметь членство в Active Directory;
  • Необходимо ли клиентам использовать проверку подлинности на основе смарт-карт или пароля, или они могут использовать один из вышеперечисленных способов аутентификации.

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

Установим службу шлюза TS.

1. Открываем Диспетчер серверов.

2. Выбираем “Добавить роли и компоненты

3. На этапе “Тип установки”, выбираем “Установка ролей и компонентов.

4. Следующим шагом выбираем текущий сервер.

5. Роль сервера - Служба удаленных рабочих столов.

6. Переходим к службе ролей. Выбираем “Шлюз удаленных рабочих столов”.

7. Переходим к этапу подтверждения, нажимаем кнопку “Установить”.

Устанавливаем SSL-сертификат.

После установки роли, в окне Диспетчера серверов, выбираем Средства → Remote Desktop Services → Диспетчер шлюза удаленных столов.

В открывшемся окне, в левой его части, нажимаем по значку сервера. В основной части окна, выбираем “Просмотр и изменение свойств сертификата”.

В открывшемся окне “Свойства” переходим на вкладку “Сертификат SSL”. Выбираем пункт “Создать самозаверяющий сертификат”, нажимаем кнопку “Создать и импортировать сертификат”.

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

В новом окне следует проверить параметры. Если все верно - нажимаем “OK”.

Новым окном система оповестит об успешном создании сертификата и выдаст путь до файла.

Переходим к окну свойств сервера. Нажимаем “Применить”.

Остается только настроить групповые политики.

В окне “Диспетчер шлюза удаленных рабочих столов”, в левой колонке, раскрываем ветку сервера, выбираем “Политики”, затем “Политики авторизации подключений”. В правой колонке того же окна, выбираем “Создать новую политику”  → “Мастер”.

В новом окне выбираем ”Создать только политику авторизации подключений к удаленным рабочим столам”, нажимаем “Далее”.

Указываем желаемое имя для политики. Мы рекомендуем указывать имя латиницей.

Следующим шагом будет выбор удобного метода аутентификации - пароль или смарт-карта. Оставляем отмеченным только “Пароль”. Нажимаем кнопку “Добавить группу...

В окне выбора групп кликаем по кнопке “Дополнительно”.

Размер окна изменится. Кликаем по кнопке “Поиск”. В найденных результатах выбираем “Администраторы домена” и нажимаем кнопку “OK”.

В окне выбора группы проверяем выбранные имена объектов и нажимаем “OK”.

Группа добавлена. Для перехода к следующему шагу нажимаем кнопку “Далее”.

На следующем этапе выбираем пункт “Включить перенаправление устройств для всех клиентских устройств” и нажимаем “Далее”.

Настраиваем таймауты сессий. И действия по их истечении. Рекомендуем отключать сеанс, чтобы фоновые пользовательские процессы не отнимали процессорное время. Нажимаем “Далее”.

На крайнем этапе просматриваем сводку, нажимаем “Готово”.
На подтверждение создания политики нажимаем “Закрыть”.

Настроим политику авторизации ресурсов.

Процесс выполняется подобно предыдущему.

В окне диспетчера шлюза удаленных рабочих столов, раскрываем ветку Политики → Политики авторизации подключений. В правой части окна выбираем “Создать новую политику” → “Мастер”. 

В открывшемся окне выбираем “Создать только политику авторизации ресурсов удаленных рабочих столов”, нажимаем кнопку “Далее”.

Первым шагом указываем желаемое имя для политики авторизации. Настоятельно рекомендуем указывать имя латиницей. Нажимаем кнопку “Далее”.

В окне выбора групп кликаем по кнопке “Дополнительно”.

Окно изменит размеры. Нажимаем кнопку “Поиск”. В результатах поиска находим “Администраторы домена” и нажимаем кнопку “OK”.

В окне выбора группы проверяем выбранные имена объектов и нажимаем “OK”.

Группа добавлена. Для перехода к следующему шагу нажимаем кнопку “Далее”.

На следующем шаге разрешаем подключение пользователей к любому сетевому ресурсу. Для этого выбираем соответствующий параметр и нажимаем кнопку “Далее”.

Настраиваем разрешенные порты. сли порт RDP-сервера не был изменен, то оставляем 3389. Нажимаем “Далее”.

Финальным этапом проверяем настройки и нажимаем кнопку “Готово”.

В обновленном окне нажимаем “Закрыть”.

Изолировать серверные роли. Отключить неиспользуемые сервисы.

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

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

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

Обзор Windows Nano Server.

Дальнейшим развитием Windows Server Core стал Nano Server. Данная версия дистрибутива исключает использование графического интерфейса пользователя. Всё управление сосредоточено на WMI - инструментарий управления Windows, а также Windows PowerShell. Данный дистрибутив Windows-сервер имеет на 92% меньше критических рекомендаций безопасности. Nano Server доступен только для клиентов Microsoft Software Assurance и на платформах облачных вычислений, например, Microsoft Azure и Amazon Web Services. Начиная со сборки Windows Server 1709, Nano Server можно устанавливать только внутри хоста контейнера .