Защита терминального сервера от подбора пароля

06.09.19

Администрирование - Пароли

Да, не все терминальные сервера есть возможность спрятать за ВПН. Но и смена порта подключения (стандартный 3389) тоже не решает все проблемы. Написал скрипт на PowerShell, который блокирует или не блокирует соединения.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Защита терминального сервера от подбора пароля:
.ps1 14,07Kb ver:5.2
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Итак, что мы имеем:

  • терминальный сервер на Windows 2008R2
  • реальный IP адрес сервера
  • нет возможность всех клиентов заставить работать по VPN
  • события о подборе пароля в журнале безопасности.

Трудности в том, что:

  • при включенной NLA (Network Level Authentication) в логах отсутствует IP адрес источника;
  • в отличии от Windows Server 2012 r2 в журнале Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational есть только запись "Прослушиватель RDP-Tcp получил соединение" но нет IP адреса источника.

Что делаем:

Вариант 1: отключить NLA (в конфигурации сервера узла удалённых рабочих столов, с свойствах подключения убрать галоску "Разрешить подключаться только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети"), после чего можно будет использовать DRPDefender - но это не наш метод.

Вариант 2: При успешном подключении (код события 4624 в журнале безопасности) выполняется запись айпишника в "белый лист". На всякий случай, чтоб его случайно не заблокировать. Так как некоторые терминальные клиенты (с MacOS и Linux) при подключенном состоянии к серверу но не работы на самом терминальном сервере (т.е. работе на локальном компьютере) пытаются переподключиться к серверу, создавая события 261 из Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational , и рискуют попасть в бан.

При создании нового события с кодом 261 из Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational  выполняем скрипт. Который берёт айпиадреса которые сейчас активны на порту нашего терминального сервера (net stat с фильтрами), сравнивает их с IP адресами с которых за последние 7дней были успешные подключения по RDP, если с адреса были успешные подключения - тогда не трогаем его (скрипт закрывается). Если за 7 дней с этого IP адреса небыло успешных подключений - тогда "берём его на карандаш" а точнее записываем его в отдельный файлик (отдельный файлик для каждого адреса). Если в файлике более 20 строк (было 20 попыток подключиться) тогда добавляем этот адрес в правило фаервола (виндового) и создаётся отдельное задание (само, автоматически) на разблокировку через 15 минут.

P.S. 1: Для блокировки нужно в виндовом фаерволе создать запрещающее правило с названием BlockAttackers

P.S. 2: Задание в шедуллере должно иметь право на чтение виндовых журналов. По идеи должно хватать роли "Читатели журнала событий".

P.S. 3: Задание в шедуллере должно иметь право на изменение правил фаервола. Запускаю от имени системы.

UPD 1:

Собрал оба скрипта в один файл. вынес ключевые параметры в переменные в начале файла

Инструкция по установке:

1. создаём правило в Брандмауере с названием "BlockAttackers":

  • действие "блокировать";
  • тип протокола - любой (ну или можно указать только порт RDP подключения, настроенный в виндовой службе);
  • область - Удалённый IP адрес - указанные IP-адреса - добавьте адрес к примеру 1.1.1.1 (вероятность подключения вашего сотрудника с такого IP близится к нулю);
  • профиль безопасности - все.

 

2. создаём задание в виндовом шедуллере, выполнять от имени "система" к примеру, при возникновении события с кодом 261 в журнале Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational выполняем действие "запуск программы" powershell.exe с аргументом

C:\Windows\system32\Fail2Ban.ps1 ban

3. создаём задание в виндовом шедуллере, выполнять от имени "система" к примеру, при возникновении события с кодом 4624 в журнале "безопасность" источник "Microsoft Windows security auditing."  выполняем действие "запуск программы" powershell.exe с аргументом

C:\Windows\system32\Fail2Ban.ps1 addgoodip

4. создаём задание в виндовом шедуллере, выполнять от имени "система" к примеру, по расписанию в полночь (или около того) выполняем действие "запуск программы" powershell.exe с аргументом

c:\Windows\System32\Fail2Ban.ps1 midnite

 

По итогу в папке Temp создаются файлики с айпишниками успешных и неуспешных подключений.

 

UPD 2

- Добавил ключ устаонвки

- Подправил некоторые моменты относящиеся к описанию внутри кода.

 

UPD 3

- опитимизирован процесс установки в зависимости от версии ОС.

Вступайте в нашу телеграмм-группу Инфостарт

брутфорс RDP fail2ban терминальный сервер Windows server 2008R2 powershell

См. также

Информационная безопасность Роли и права Пароли Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Одна кнопка, и за минуту видно, какие двери в базу 1С открыты: пользователи без пароля, администраторы с паролем без ограничений, внешние обработки без предупреждения, слабая политика паролей, перебор паролей в журнале регистрации и пароли открытым текстом в данных. 21 проверка с цветным вердиктом и штатным способом исправить, выгрузка в Markdown для нейросети. Только чтение, без доступа к СУБД.

10 стартмани

вчера в 13:50    146    0    nedomolkov.ivan    0    

3

Информационная безопасность Пароли Инструменты администратора БД Системный администратор 1С 8.5 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Обработка для администратора показывает, у кого в базе нет пароля и кто сейчас подключён, и позволяет отключить отдельный сеанс или все сеансы пользователя. Отдельный режим по журналу регистрации показывает, кто работал за период. Обработку можно подключить в базу как дополнительную. Я проверял на 1С 8.5.1.1522 и УНФ 3.0.14.143 в веб-клиенте. На 8.3 и других конфигурациях не проверял.

1 стартмани

вчера в 09:10    75    0    Petr_32    0    

1

Информационная безопасность Инструментарий разработчика Пароли Разработчик 1С 8.3 Абонемент ($m)

Скрипт secret_scan.py прошёл по выгрузке УТ 11.5.22.77 (12 290 модулей) и дал 21 находку: 13 полей-кандидатов и 8 вхождений литералов в коде (шесть разных значений), разобранных вручную. Число не говорит о действующих учётных данных. На «Нано-УТ» после переноса в учебный образец безопасного хранилища прямые последовательности байтов значений в файле базы не найдены. В архивах скрипт, тесты, стенд, образцы кода и журналы платформы 8.3.27.

5 стартмани

27.10.2026    289    Ninel_S    0    

1

Удаленное управление Пароли Системный администратор Абонемент ($m)

Программа для Windows, которая хранит ID и пароли удалённого доступа ко всем клиентам в одном месте. Подключение - двойным кликом по ID. С версии 1.1 команда может вести общую базу: на своём VPS (Ubuntu или Windows) или в сетевой папке. Контакты в облаке шифруются на компьютере пользователя, сервер их прочитать не может. Импорт из CSV/XLSX, группы, метки, поиск, тёмная тема, сворачивание в трей.

1 стартмани

09.10.2026    312    1    IronCAT09    0    

2

Пароли 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

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

1 стартмани

10.09.2026    497    0    SoftSide    0    

0

Пароли Разработчик Пользователь 1С 8.3 Россия Абонемент ($m)

Расширение для конфигураций 1С для хранения паролей.  Админ / разработчик / пользователь меняют пароли в базах, а потом успешно их забывают, или кто-то из сторонних разработчиков или коллег поменял пароль, а вас не известил или не положил в какую-нибудь базу знаний, особенно головная боль, если таких баз много или под одной учеткой работают сразу много сотрудников. Расширение решает эту задачу: оно ведёт актуальный реестр учётных данных пользователей вне базы - в Google Таблице и/или в файле Excel. Реестр обновляется сам, в момент смены пароля или логина, без участия администратора. Будет полезно администраторам, которые сами выдают и меняют пароли пользователям; специалистам франчей и ИТ-отделам, обслуживающим несколько баз. Небольшим компаниям, где нет корпоративного менеджера паролей, но нужен контролируемый доступ к учётным данным.

1 стартмани

31.08.2026    629    2    Otlichnik90    0    

2

Пароли Системный администратор 1С 8.3 Бесплатно (free)

Реальная история: собственник за день распустил весь ИТ-отдел, пароля от SQL не осталось. Разбираю, где 1С хранит пароль СУБД (1CV8Clst.lst), почему он извлекается, кто до него дотянется — и как закрыть дыру. Плюс обработка, которая проверит ваш кластер за минуту.

06.08.2026    3587    nedomolkov.ivan    29    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. lmnlmn 71 06.09.19 13:19 Сейчас в теме
Это, конечно, лучше чем просто светить портом RDP во всея интернет, но все же как-то страшновато мне.
2. Jokemas 196 06.09.19 14:40 Сейчас в теме
Проблему с защитой особо не решит. Даже не могу представить, в каких случаях нельзя VPN поднять. На крайняк у 1Сного сервера ставится какой нибудь микротик, там создаются VPN пользователи и тоннель, а люди со стандартного. виндового VPN цепляются уже к микротику, который уже отдает трафик серверу. Либо поднимается OpenVPN за 15 минут. Т.е. проблемы как таковой-то и нет. Цена вопроса не большая, даже очень маленькая конторка может выбрать просто подешевле устройство и все. Зачем скриптом решать в этом случае? Это реальный костыль, но за старания поставил плюс. Единственное - не надо пытаться все продать. Я свои PS скрипты прикрепляю, но весь листинг кидаю под спойлер, чтобы люди могли брать, если надо. Никому не навязываю, но все же PS скрипт не бог весть что, чтобы эту мелочь продавать. Да и эти PS скрипты больше нужны сис.админам, чем 1Сникам, а сис.админы редко имеют старт.мани =)).

З.Ы. Все в коммерсов заделались =))). Идея интересная, при желании по описанию можно свой скрипт написать ))
3. KiborG85 26 06.09.19 16:09 Сейчас в теме
(2) На панацею не претендую, но как идея (хотя бы отправная точка) - вполне себе так да.
VPN - поверьте, не всегда есть возможность. К примеру, если это какой-то демонстрационный сервер, доступ к которому должен быть наименее трудозатратный. Чтоб любой бухгалтер мог подключиться без настроек RDG и тем более VPN любого рода (некоторые при попытке подключиться такую дичь творят...)
А по поводу открытости кода - да, он открыт. Как доберусь до GitHub (в смысле зарегистрируюсь) - то можно будет там публиковать... А тут не бесплатно потому-что и себе иногда нужна местная валюта для скачивания чего-то срочно нужного.
Для отправки сообщения требуется регистрация/авторизация