как узнать с какого ip пытаются подключиться по rdp
Просмотр и анализ логов RDP подключений в Windows
В этой статье мы рассмотрим, особенности аудита / анализа логов RDP подключений в Windows. Как правило, описанные методы могут пригодиться при расследовании различных инцидентов на терминальных / RDS серверах Windows, когда от системного администратора требуется предоставить информацию: какие пользователи входили на RDS сервер, когда авторизовался и завершил сеанс конкретный пользователь, откуда / с какого устройства (имя или IP адрес) подключался RDP-пользователь. Я думаю, эта информация будет полезна как для администраторов корпоративных RDS ферм, так и владельцам RDP серверов в интернете (Windows VPS как оказалось довольно популярны).
Как и другие события, логи RDP подключения в Windows хранятся в журналах событий. Откройте консоль журнала событий (Event Viewer). Есть несколько различных журналов, в которых можно найти информацию, касающуюся RDP подключения.
В журналах Windows содержится большое количество информации, но быстро найти нужное событие бывает довольно сложно. Когда пользователь удаленно подключается к RDS серверу или удаленному столу (RDP) в журналах Windows генерируется много событий. Мы рассмотрим журналы и события на основных этапах RDP подключения, которые могут быть интересны администратору:
В результате у вас получится список с историей всех сетевых RDP подключений к данному серверу. Как вы видите, в логах указывается имя пользователя, домен (используется NLA аутентификация, при отключенном NLA текст события выглядит иначе) и IP адрес компьютера, с которого осуществляется RDP подключение.
При этом имя пользователя содержится в описании события в поле Account Name, имя компьютера в Workstation Name, а имя пользователя в Source Network Address.
Вы можете получить список событий успешных авторизаций по RDP (событие 4624) с помощью такой команды PowerShell.
Событие с EventID – 21 (Remote Desktop Services: Shell start notification received) означает успешный запуск оболочки Explorer (появление окна рабочего стола в RDP сессии).
При этом в журнале Security нужно смотреть событие EventID 4634 (An account was logged off).
Событие Event 9009 (The Desktop Window Manager has exited with code ( ) в журнале System говорит о том, что пользователь инициировал завершение RDP сессии, и окно и графический shell пользователя был завершен.
Ниже представлен небольшой PowerShell, который выгружает из журналов терминального RDS сервера историю всех RDP подключений за текущий день. В полученной таблице указано время подключения, IP адрес клиента и имя RDP пользователя (при необходимости вы можете включить в отчет другие типы входов).
Иногда бывает удобно с логами в таблице Excel, в этом случае вы можете выгрузить любой журнал Windows в текстовый файл и импортировать в Excel. Экспорт журнала можно выполнить из консоли Event Viewer (конечно, при условии что логи не очищены) или через командную строку:
WEVTUtil query-events Security > c:\ps\security_log.txt
Список текущих RDP сессий на сервере можно вывести командой:
Команда возвращает как идентификатор сессии (ID), имя пользователя (USERNAME)и состояние (Active/Disconnect). Эту команду удобна использовать, когда нужно определить ID RDP сессии пользователя при теневом подключении.
Список запущенных процессов в конкретной RDP сессии (указывается ID сессии):
На RDP-клиенте логи не такие информационные, основное чем часто пользуются информация об истории RDP подключений в реестре.
Как узнать с какого ip пытаются подключиться по rdp
Вопрос
Существует ли возможность узнать IP адрес подключившегося клиента RDP без копания в логах?
Ответы
Как у Вас настроен RDS?
The opinion expressed by me is not an official position of Microsoft
Все ответы
The opinion expressed by me is not an official position of Microsoft
The opinion expressed by me is not an official position of Microsoft
Запускайте RunAs Admin
AD поднять занимает один день, но на решение данной задачи это никак не влияет
The opinion expressed by me is not an official position of Microsoft
Как у Вас настроен RDS?
The opinion expressed by me is not an official position of Microsoft
На 2012r2 с установленной и настроенной ролью RDS отрабатывает на ура командлет приведенный выше. В модуле есть похожий командлет, возможно он вам покажет и без роли все текущие сеансы.
The opinion expressed by me is not an official position of Microsoft
Спасибо за помощь, хороший модуль, но мне надо просто знать IP у пользователя соедененного по RDP и мне казалось это проще простого. Буду скриптом брать из логов.
увы, имена пользователей не покажет. (
В TaskMeneger`e есть имя станции.
Для автоматизации это не подходит но видеть вы можете.
Вы не написали как у вас настроен RDS, и настроен ли вообще. Повторюсь AD к этой задаче большого отношения не имеет.
Подойдет Вам этот скрипт или нет можно проверить за 5 минут, если подойдет это вам упростит поиск необходимой информации (меньше времени будете тратить)
The opinion expressed by me is not an official position of Microsoft
В TaskMeneger`e есть имя станции.
Да, все что есть в диспетчере задач, по поводу подключений, можно посмотреть по команде, но жалко нет IP адреса там.
Незнаю как настроен у меня RDS, я просто развернул роль обыкновенных рабачих столов на сервере.
2 Про какую команду идет речь?
3 Если Вы развернули роль рабочих столов командлет должен работать. Скорее всего либо у Вас выключен UAC и Вы запускаете команду от обычного пользователя либо запускаете не используя RunAs admin, как пишите выше. Попробуйте запихнуть команду в планировщик настроить запуск с наивысшими правами (галка) от имени системы запуск вручную и выполнить
в самом задании написать следующее
The opinion expressed by me is not an official position of Microsoft
Wednesday, 31. May 2017 10:50:33
username
10.255.9.125
Там несколько команд для powershell есть и они много разного могут полезного, кроме вывести IP. Перепробывал все варианты которые там есть, но счастья так и не обрел. Команды такие:
RDS крайне не рекомендуется поднимать на КД о чем вы неминуемо узнаете если попробуете это сделать на ОС старше 2012р2 (на младших ОС все настраивалось но без бубна не работало, а на старших даже не настраивается без бубна)
Вы пробовали то что я писал выше про шедуллер и про альтернативные скрипты?
The opinion expressed by me is not an official position of Microsoft
Как узнать с какого ip пытаются подключиться по rdp
скрипт, наглядно выводящий форматированные время, IP-адреса и имена хостов, с которых неудачно пытались подключиться к Windows 2003 RDP-серверу согласно виндовому журналу событий. Для отслеживания таких попыток, необходимо включить аудит отказов во входе в систему для локальной политики аудита в параметрах безопасности (делается через оснастку secpol.msc, например). Скрипт будет полезен для открытых кишками наружу серверов терминалов.
В скрипте сразу предусмотрена возможность не выводить определенные адреса/имена хостов, или целые «диапазоны» (сравниваются строки а не маски).
результатом выполнения такого скрипта из командной строки «cscript rdp.vbs > rdp.txt», будет файл, примерно такого содержания:
подчеркну, что скрипт необходимо сохранять в кодировке ISO 8859-2, или же скачать готовый файл выше.
кстати, хорошей идеей было бы прикручивание утилиты Whois от Марка Руссиновича, которая отображала бы данные по IP адресу в той же строке. Велкам в комментарии 🙂
UPD 05.12.12. Прикрутил получение имени хоста по IP если оно доступно, а также возможность исключить из вывода определенные имена хостов. Текст скрипта а также файл обновлены.
UPD 13.09.13. Добавил в запрос выборку в определенном интервале дат. В примере выбираются события за последние 120 дней. Оптимизировал процесс получения имени хоста — если оно уже было получено для IP-адреса то повторно запрашиваться не будет, а будет взято из соответствия. Также предусмотрел ситуацию, когда в поле IP события может попасть вовсе не IP-адрес. Также, из-за отбора в диапазоне дат данные в результат выводятся в возрастающем порядке, т.е. последние события будут в конце файла, что не очень удобно. Добавил комментарии в код.
32 комментария на “отслеживание попыток доступа по rdp”
пожалуйста! рад, что скрипт пригодился
спасибо полезная штука, а каким скриптом можно получить лог подключений к серверу по rdp — т.е. под какой учеткой, с какого айпи зашли на сервак и когда…
для того, чтобы получить лог подключений необходимо включить аудит успехов во время входа в систему (с помощью того же secpol.msc) и поменять в скрипте пару строчек. А именно изменить код события с 529 на 682 и тип события с 5 (отказ) на 4 (успех). Также у нас поменяется структура самого сообщения, вместо 15ти строк будет выведено 7. Также поменяется и порядок следования IP-адреса и имени пользователя. Вот, накидал работающий вариант:
Идея супер. Реализация красива. Но…
Данный скрипт не работает на Server 2008
Меняю код события на четырезначный. Валится ошибка про индекс массива.
да, уже слышал о том, что на 2008 сервере не работает. Если дойдут руки — унифицирую
Привет! Спасибо, скриптик очень выручает. Огорчает две вещи:
— не получается перенаправить вывод в файл (либо стартую из проводника — тогда открывается окно командного процессора, записи пролетают и окно закрывается; либо из батника — тогда на каждую строку вылазит модальное окно и опять-таки, эхо в файл не перенаправляется).
— нет возможности задать диапазон дат, скрипт раз за разом шерстит весь журнал, сколько бы тот не весил.
Можно ли реализовать параметры Имя_файла, Нач_дата, Кон_дата?
С выводом разобрался — стартовать не «start Success.vbs >result.txt», а «cscript Success.vbs >result.txt». А даты не запилите?
Вы как раз вовремя. Я сам задался вопросом про даты, т.к. скрипт начинает работать все дольше и дольше. Обновил текст скрипта, приложенный файл и текст статьи.
Мониторинг активности и статуса подключенных удаленных клиентов.
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
примечание. Windows Server 2012 объединяет службу directaccess и службы удаленного доступа (RAS) в одну роль удаленного доступа.
Консоль управления на сервере удаленного доступа можно использовать для наблюдения за активностью и состоянием удаленных клиентов.
Для выполнения задач, описанных в этом разделе, необходимо войти в систему как член группы «Администраторы домена» или член группы «Администраторы» на каждом компьютере. Если вы не можете выполнить задачу, войдя в учетную запись, которая является членом группы «Администраторы», попробуйте выполнить задачу, войдя в учетную запись, которая является членом группы «Администраторы домена».
Мониторинг активности и состояния удаленных клиентов
В диспетчере серверов щелкните Средства и выберите пункт Управление удаленным доступом.
Вы увидите список пользователей, подключенных к серверу удаленного доступа, и подробную статистику по ним. Щелкните первую строку в списке, соответствующую клиенту. При выборе строки на панели предварительного просмотра отображается активность удаленных пользователей.
Windows PowerShell эквивалентные команды
Следующие командлеты Windows PowerShell выполняют ту же функцию, что и предыдущая процедура. Вводите каждый командлет в одной строке, несмотря на то, что здесь они могут отображаться разбитыми на несколько строк из-за ограничений форматирования.
Статистику пользователя можно фильтровать на основе выбора критериев, используя поля в следующей таблице.
Включаем шифрование RDP и смотрим логи
Включаем шифрование RDP
Сессии RDP поддерживают четыре типа шифрования
Но в полном объеме шифрование не заработает:
Но мы делаем временный доступ на две недели и надеемся, что злые боты нас не найдут за это время.
RDP ругается на сертификат…
Конфигурация компьютера —> Административные шаблоны —> Компоненты Windows —> Службы удаленных рабочих столов —> Узел сеансов удаленных рабочих столов—>Безопасность
«Установить уровень шифрования для клиентских подключений». Включаем и выбираем «Высокий» уровень. Это нам даст 128-битное шифрование.
Включаем параметр «Требовать безопасное RPC-подключение»
Устанавливаем параметр «Требовать использования специального уровня безопасности для удаленных подключений по методу RDP» в значение «Включено» и Уровень безопасности в значение «SSL TLS 1.0»
Самый максимальный уровень шифрования обеспечивается стандартом FIPS 140-1 (для Windows 7).
Federal Information Processing Standards (FIPS) – Федеральный стандарты по обработке информации. Стандарт компьютерной безопасности правительства США. В настоящее время принят FIPS 140-2.
Конфигурация компьютера —> Конфигурация Windows —> Параметры безопасности —> Локальные политики —> Параметры безопасности
Чтобы включить использование FIPS 140-1 – включаем параметр «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания»
ВАЖНО: если Вы подключаетесь из Windows XP (или к Windows XP) – не включайте это шифрование, Windows XP ничего не знает про FISP
Просмотр логов подключения RDP
Да, Windows ведет подробные логи подключения, только они сильно спрятаны в настройках и немного не очевидны.
Администрирование —> Просмотр событий —> Журналы приложений и служб —> Microsoft —> Windows —> TerminalServices-LocalSessionManager —> Operational
И это общий лог. Для получения списка по конкретным событиям нужно отфильтровать по коду события… Правой клавишей мышки по Operational —> “Фильтр”
Что бы посмотреть все входы RDP – в фильтре пишем 21,25
Так, а где IP входа? По умолчанию аудит IP отключен. Идем в настройки политик безопасности secpol.msc
Включаем регистрацию Успеха и Отказа
Вот тут читаем подробнее (+защита от перебора IPBan для Wondows)
Для создания сложностей ботам (подбор паролей на порту 3389) используем
Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла