Windows server блокировка по ip

Обновлено: 05.07.2024

В этой статье описывается настройка фильтрации TCP/IP на Windows 2003 года.

Применяется к: Windows Server 2003
Исходный номер КБ: 816792

Сводка

Windows 2003 года поддерживают несколько методов управления входящий доступ. Один из самых простых и мощных методов управления входящий доступ — это использование функции фильтрации TCP/IP. Фильтрация TCP/IP доступна на Windows 2003 года.

Фильтрация TCP/IP помогает в обеспечении безопасности, так как работает в режиме ядра. Другие методы управления входящий доступ к компьютерам на Windows 2003 года, например с помощью фильтра политики IPSec и сервера маршрутизации и удаленного доступа, зависят от процессов в режиме пользователя или рабочих станций и серверов.

Вы можете на уровне схемы управления входящие доступы TCP/IP с помощью фильтрации TCP/IP с помощью фильтров IPSec и фильтрации пакетов маршрутов и удаленного доступа. Этот подход особенно полезен, если необходимо контролировать как входящий, так и исходящие TCP/IP-доступ, так как только безопасность TCP/IP контролирует только входящий доступ.

Рекомендуется использовать мастер настройки электронной почты и подключения к Интернету на компьютерах на базе SBS 2003 с двумя сетевыми адаптерами, а затем включить параметр Брандмауэра, а затем открыть необходимые порты на внешнем сетевом адаптере. Дополнительные сведения о мастере настройки электронной почты и подключения к Интернету выберите Начните, а затем выберите справку и поддержку. В поле Поиск введите Настройка мастера электронной почты и подключения к Интернету, а затем выберите Начните поиск. Сведения о мастере настройки электронной почты и подключения к Интернету можно найти в списке результатов "Темы малого бизнеса".

Настройка безопасности TCP/IP в Windows Server 2003

Настройка безопасности TCP/IP:

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

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

Выберите протокол Интернета (TCP/IP) и выберите свойства.

В диалоговом окне Свойства протокола Интернета (TCP/IP) выберите Расширенный.

Выберите Параметры.

В необязательных параметрах выберите фильтрацию TCP/IP, а затем выберите Свойства.

Щелкните, чтобы выбрать поле Включить TCP/IP Filtering (Все адаптеры).

При выборе этого контрольного окна вы включаете фильтрацию для всех адаптеров, но настраивайте фильтры отдельно для каждого адаптора. Те же фильтры применяются не для всех адаптеров.

В диалоговом окне фильтрации TCP/IP есть три раздела, в которых можно настроить фильтрацию для портов TCP, портов протокола пользовательских данных (UDP) и протоколов Интернета. Для каждого раздела настройте параметры безопасности, подходящие для компьютера.

При активации Allow All вы разрешаете все пакеты для трафика TCP или UDP. Разрешение позволяет разрешить только выбранный трафик TCP или UDP, добавив разрешенные порты. Чтобы указать порты, используйте кнопку Добавить. Чтобы заблокировать весь трафик UDP или TCP, выберите Только разрешение, но не добавляйте номера портов в столбце UDP Ports или столбце TCP Ports. Вы не можете заблокировать трафик UDP или TCP, выбрав разрешение только для протоколов IP и исключив протоколы IP 6 и 17.

Настройка безопасности TCP/IP в Windows сервера малого бизнеса 2003

Чтобы настроить фильтрацию TCP/IP, выполните следующие действия.

Для выполнения этой процедуры необходимо быть членом группы Администраторы или группы операторов конфигурации сети на локальном компьютере.

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

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

В статье AdaptorName Connection Properties на вкладке General выберите протокол Интернета (TCP/IP) и выберите Свойства.

В диалоговом окне Свойства протокола Интернета (TCP/IP) выберите Расширенный.

Выберите вкладку Параметры.

Выберите фильтрацию TCP/IP, а затем выберите Свойства.

Щелкните, чтобы выбрать поле Включить TCP/IP Filtering (Все адаптеры).

При выборе этого контрольного окна включается фильтрация для всех адаптеров. Однако конфигурация фильтра должна быть завершена на каждом адаптере. При включенной фильтрации TCP/IP можно настроить каждый адаптер, выбрав параметр Allow All, или разрешить принимать входящие подключения только к определенным протоколам IP, портам TCP и портам UDP (Протокол пользовательских данных). Например, если включить TCP/IP-фильтрацию и настроить внешний сетевой адаптер для разрешения только порта 80, это позволяет внешнему сетевому адаптеру принимать только веб-трафик. Если внутренний сетевой адаптер также имеет включенную фильтрацию TCP/IP, но настроен с выбранным параметром Разрешить все, это позволяет неограниченное общение на внутреннем сетевом адаптере.

В TCP/IP Filtering существует три столбца со следующими метами:

  • Порты TCP
  • Порты UDP
  • Протоколы IP

В каждом столбце необходимо выбрать один из следующих вариантов:

  • Разрешить все. Выберите этот параметр, если вы хотите разрешить все пакеты для трафика TCP или UDP.
  • Разрешить только. Выберите этот параметр, если вы хотите разрешить только выбранный трафик TCP или UDP, выберите Добавить, а затем введите соответствующий номер порта или протокола в диалоговом окне Add Filter. Нельзя блокировать трафик UDP или TCP, выбрав разрешение только в столбце Протоколы IP, а затем добавив протоколы IP 6 и 17.

Если выбрать разрешение только в портах UDP, TCP Ports или столбце протоколов IP и списки будут оставлены пустыми, сетевой адаптер не сможет общаться ни с чем по сети, локально или в Интернете.

Ссылки

Дополнительные сведения о номерах портов TCP и UDP см. в записи реестра номеров номеров порта с именем службы и транспортным протоколом.

date

21.01.2020

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 100

Возникла идея написать простой PowerShell скрипт для автоматической блокировки в брандмауэре Windows IP адресов, с которых фиксируются попытки подбора паролей через RDP (или длительные RDP атаки). Идея заключается в следующем: скрипт PowerShell анализирует журнал событий системы, и, если с конкретного IP адреса за последние 2 часа зафиксировано более 5 неудачных попыток авторизации через RDP, такой IP адрес автоматически добавляется в блокирующее правило встроенного брандмауэра Windows.

Итак, имеется небольшая сеть с доменом, для доступа внутрь на один из компьютеров на интернет-шлюзе с Linux через NAT проброшен RDP порт (снаружи отвечает порт TCP 13211, а внутрь перенаправляется стандартный 3389). Периодически на компьютере происходит блокировка известных учетных записей доменной политикой паролей из-за неудачных попыток авторизоваться на компьютере через RDP. Наша задача автоматически блокировать IP адреса, через которых идет подбор паролей в RDP .

Сначала создадим на компьютере правило брандмауэра, которое блокирует входящее RDP подключение с указанных IP адресов:

New-NetFirewallRule -DisplayName "BlockRDPBruteForce" –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block

создать правило блокировки RDP с с IP адресов ведущих RDP атаку

В дальнейшем в это правило мы будем добавлять IP адреса, с которых фиксируется попытки подбора паролей по RDP.

Можно сделать дополнительное разрешающее правило, чтобы скрипт не блокировал нужные IP адреса или подсети.

Я использую такой код для выбора IP адресов атакующих из событий за последние 2 часа (можете изменить время):

$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$badRDPlogons = Get-EventLog -LogName 'Security' -after $Last_n_Hours -InstanceId 4625 | ? | Select-Object @ >
$getip = $badRDPlogons | group-object -property IpAddress | where | Select -property Name

Теперь все обнаруженные IP адреса атакующего нужно добавить в правило брандмауэра BlockRDPBruteForce, которое мы создали ранее. Для управления брандмауэром Windows мы будем использовать встроенный модуль встроенный PowerShell модуль NetSecurity. Сначала получим список текущих заблокированных IP адресов и добавим к нему новые.

добавить IP адреса, с которых идет перебор паролей в блокировку

Проверяем, что в блокирующее правило Windows Defender Firewall добавились новые IP адреса.

блокировка IP адресов правилами брандмауэра

Вам осталось скопировать данный PowerShell код в файл c:\ps\block_rdp_attack.ps1 и добавить его в задание планировщика, для запуска по расписанию. Например, каждые 2 часа.

$repeat = (New-TimeSpan -Hours 2)
$duration = ([timeSpan]::maxvalue)
$Trigger= New-ScheduledTaskTrigger -Once -At (Get-Date).Date -RepetitionInterval $repeat -RepetitionDuration $duration
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\block_rdp_attack.ps1"
Register-ScheduledTask -TaskName "BlockRDPBruteForce_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Либо вы можете запускать скрипт PowerShell при появлении события 4625 в журнале, таким образом вы будете более быстро реагировать на атаку подбора пароля по RDP.

Вы можете модифицировать данный скрипт под свои реалии и использовть для блокировки RDP атак.

Предыдущая статья Следующая статья

page

page

page

Когда истекает пароль пользователя в AD, оповещаем пользователей о необходимости сменить пароль Модуль PSWindowsUpdate: управление обновлениями Windows из PowerShell Пропадает языковая панель в RDP сеансе после завершения теневой сессии Удаление старых профилей пользователей Windows с помощью GPO или PowerShell

disable-NetFirewallRule -DisplayName "BlockRDPBruteForce"

Фенкс ) Скопировал код из черновика. Убрал эту строку.

Благодарю! Очень полезный скрипт. У нас на Windows VDS сервере постоянно идет долбежка с подбором паролей по RDP.
Один вопрос: можно вести лог событий блокировки IP для дальнейшего разбора полетов?

Добавил в скипт логирование. В резульатте в файле C:\ps\blocked_ip.txt у вас должны появляться строки вида:
10/3/2019 7:46:52 AM 192.168.1.11 IP заблокирован за 15 попыток за 2 часа
10/3/2019 7:46:52 AM 192.168.255.60 IP заблокирован за 7 попыток за 2 часа

Так же хотел использовать для данных целей IDDS. Но он к сожалению никак не реагирует на попытки подбора пароля. Есть подозрение что IDDS ищет в журнале события на английском языке, в то время как у меня сервер на русском. Или версия сервера устаревшая. Использую еще 2008 R2.
Не могли бы Вы поделиться своим опытом настроили IDDS. Или толковым мануалом

Была такая хорошая штука как EvlWatcher, но более не разрабатывается, увы

Подскажите, если в журнале Security замечены попытки брутфорса, но не регистрируется удаленный IP. Поле пустое. Как защищаться в таком случае?

Аудит доступа включен? События с отказом в доступе с EventID 4652 в журнале есть? Покажите, что в них содержится. Вожмноу вас там фигурируют имена удаленных хостов.

Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: NIKITA
Домен учетной записи:

Сведения об ошибке:
Причина ошибки: Неизвестное имя пользователя или неверный пароль.
Состояние: 0xC000006D
Подсостояние: 0xC0000064

for($i = 0; $i -lt @($getip).Count; $i++) $current_ips += $getip[$i].name.Trim()
(Get-Date -Format G) + ' ' + $getip[$i].name + ' IP заблокировано за ' + ($badRDPlogons.Properties | where ).count + ' неудачных попыток за ' + $Hours + 'ч.'>> $log
>
Set-NetFirewallRule -DisplayName "BlockRDP" -RemoteAddress $current_ips

Обновляться. 80-90% эксплойтов создано после выхода патча на уязвимость. А 100% гарантии не даст никто и ничто.

Ок, готов посмотреть на Ваше архитектурное решение, когда linux аналзирует access логи с Windows и блокирует доступ в FW в зависимости от успешности аутентфикации по RDP.
Почему-то кажется, что это будет тот еще костыль.

И еще добавлю. Авторизация через Linux в AD/ Просто не делал никогда. Ввиду нецелесообразности. Вот FreeBSD, да. Да и то если заказчик ну очень попросит.

V согласен с тем, что руководство, как правило, идет по пути наименьшего сопротивления, особенно в малом бизнесе. Нанимать отдельно линуксоида, для реализации? Нет. Брать на время фрилансера, ну может быть. Но учитывая и зависимость от него в дальнейшем. А им оно надо?

Есть отличная и уже бесплатная программа

Хотя, в качестве пособия по PS, статья годная 🙂

Не PS, конечно же, а VisualBasic, который ходит в логи 🙂

Странное приложение. Сразу после установки и запуска логин в систему с амазоновского айпишника.
Похоже удобнее распространять это приложение, чем брутфорсить.

Это все хорошо, но какого черта вообще рдп смотрит туда где могут подбирать пароль?

RDP выставлять в интернет это плохо, но не все готовы себе разворачивать VPN или RD Web Access. По крайней мере в малом бизнесе не все готовы себе даже лицензию на Windows Server купить. Поэтому такая семы будет сплошь и рядом.
И я не говорю, что RDP из интернета это правильно. Статья это пример анализа логов и реагирования на события на файерволе из PowerShell.

Используем RDPGuard, работает нормально. Ну а скрипт однозначно мастхэв

Да, была ошибка в скрипте. Поправил.
За ваш вариант спасибо )

Спасибо, работает. Только для русской версии ОС надо кодировку 1251 (а то у меня не работало, и никак не мог понять почему). Сделал вариант с автоматическим выбором языка. Ну и добавил настройку порта.

Какие вы категоричные. Всякие ситуации бывают, по статье есть что сказать?

Я хотел б посмотреть на вас, как вы будете поддержывать работу RDP через VPN для +500 пользователей(онлайн

150), с разношерстной техникой, за NAT-ами. Что б все стабильно работало, что б у пользователя на компьютере интернет не пропадал и не ходил через vpn канал, и т. д.

Смена порта RDP уже отсекает в большенстве случаев все попытки мамкиных хакеров. На остальное как раз нужет такой скрипт для подстраховки, ну и + в домене контроль сложности пароля, блокировка неудачного входа, +установка обновлений, антивирус, software restriction policies никто не отменял

Спасибо! Как раз зашёл запостить свой вариант. Оказалось он такой же как у вас ))
Топикстартеру спасибо за направление мысли

А у меня не пошел. Матерится вот тут


+ CategoryInfo : ObjectNotFound: (BlockRDPBruteForce:String) [Get-NetFirewallRule], CimJobException
+ FullyQualifiedErrorId : CmdletizationQuery_NotFound_DisplayName,Get-NetFirewallRule

Вы не создали правило BlockRDPBruteForce:

New-NetFirewallRule -DisplayName "BlockRDPBruteForce" –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block

Подскажите, плиз, если в логах безопасности не видно IP того, кто пытается подключится?

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

WinServer 2012 RU, события в журнале есть, но вот IP можно увидеть только при успешной авторизации, в противном случае видно только логин, под которым пытались залогиниться, IP не видно.

4625
0
0
12544
0
0x8010000000000000

0xc000006d
%%2313
0xc0000064
3
NtLmSsp
NTLM

4625
0
0
12544
0
0x8010000000000000

0xc000006d
%%2313
0xc0000064
3
NtLmSsp
NTLM

Хотел XML вставить, а он его как теги HTML воспринимает, по удаляйте лишнее плиз

На входе linux в минимальной конфигурации и hashlimit на new соединения. Всё.

Спасибо за статью! выполнил, скрипты но у меня ничего не появилось (добавилось только правило в брандмауэре ). Windows Server2019RU

Скрипт в статье для Eng версии windows. См. в комментах рабочий скрипт по блокировке IP в RU версии. Также можете для начала проверить, что у вас в журнале Безопасность появляются события с кодом 4625.

Есть такая крутая программка RDP Defender (бесплатная). Блокирует подборщиков с помощью стандартного файрвола. Есть белый список. Можно указать кол-во неудачных попыток ввода пароля.

Запуск брандмауэра Windows2008 R2

1. Запускаем брандмауэр

Добавления правила в брандмауэр Windows 2008R2

2.Создаем правило для входящих подключений

Установка типа правила в брандмауэре Windows 2008 R2

3. Устанавливаем тип правила

Выбор программ для блокировки доступа с внешнего IP адреса

4.Указуем для каких программ будет блокироваться доступ с удаленного IP адреса (в нашем случае для всех программ)

Установка протокола и порта блокировки

5. Установка протокола и порта блокировки (в нашем случае все протоколы и все порта)

Указание блокируемого ip или диапазона ip адресов.

6. На этом этапе указываем ip или диапазон ip адресов которые нужно заблокировать.

Выбираем пункт - Блокировать подключения

7. Выбираем пункт — Блокировать подключения

Выбор профиля к которому будет применяться правило

8.Выбираем профили к которым будет применяться данное правило (в нашем случае выбираем все профили)

Имя созданного правила в брандмауэре Windows 2008 R2

9.Вводим имя правила

Проверка созданного правила в брандмауэре Windows 2008R2

10. Правило блокируещее подключения с удаленного IP адреса создано.

Для защиты RDP сервера от брутфорса мы воспользуемся утилитой IPBan от Jeff Johnson.
Утилита IPBan блокирует ip адресс с которго идет перебор паролей после нескольких неудачных попыток авторизации.

Для начала проведем подготовительный этап.

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

Переходим в "Локальные политики" (Win + R, введите secpol.msc и "OK"). --> "Политика аудита" и включить регистрацию событий для "Аудита входа в систему" и "Аудита событий входа в систему":

audit.jpg

Подготовительный этап закончен, переходим к настройке IPBan

Распаковываем архив, к примеру на диск C:\ в папку ipban.

Запускаем cmd консоль обязательно с правами Администратора.

И прописываем IPBan как службу Windows, командой:

ipban.jpg


Заходим в оснастку служб Windows (Win + R, введите services.msc и "OK") находим и запускаем службу IPBAN

ipban2.jpg

firewol.jpg

IPBan отслеживает неудачные попытки входа и добавляет правило для Windows фаервола.
Удалить случайно добавленный ip адрес либо посмотреть какие адреса сейчас добавленны можно в оснастке фаервола - правило IPBan_Block_0.
Также создаются два правила IPBan_EmergingThreats_0 и IPBan_EmergingThreats_1000 - общеизвестные IP адреса с которых происходят попытки входа.

Вот и все, теперь наш Windows сервер зашишен от перебора паролей.

P.S. Также этот способ работает на Windows 8 - Windows 10.

После установки параметра "Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM" и установите значение "Запретить все учетные записи" перестало пускать на сервер. Windows Server 2019


Да, на 2019 только NTLM2, убрал этот пункт из статьи. Файл IPBan.exe отсутствует в архивах и x86 и x64 для Windows, соответственно и служба не запускается. Таким образом, как запустить службу? Что-то странно. Или я что-то делаю не так? Кто проверял, у кого работает?


8)

Файл правильно называется DigitalRuby.IPBan.exe, следуйте инструкции и у вас все получится Windows Server 2008 - при запуске службы выдает ошибку
"Не удалось запустить службу IPBAN на Локальный компьютер.
Ошибка 1053: Служба не ответила на запрос своевременно"


А служба ведь у вас установленна? Под правами администратора ведь все делаете?

Распаковываем архив, к примеру на диск C:\ в папку ipban.

Запускаем cmd консоль обязательно с правами Администратора.

И прописываем IPBan как службу Windows, командой:

в 2008 немного отличается синтаксис команды sc. запустите со знаком вопроса и посмотрите как нужно прописывать параметры. я уже точно не вспомню отличия, а под рукой нет тазика с этой операционкой. Запусти сам отдельно исполняемый файл (exe). Он ругнется что нет dll, скачай помоему Visual 2015 и все будет ок. погугли просто эту dll-ку Здравствуйте!
Можно ли как-то зайти в настройки IPBan (количество попыток до бана, время бана и т.д.)?


Можно, файл конфигурации DigitalRuby.IPBan.dll.config в формате XML.
За количество попыток до бана отвечает параметр FailedLoginAttemptsBeforeBan - по умолчанию 5 попыток.
За время бана параметр ExpireTime - по умолчанию бан на один день.

Скорее за время бана отвечает параметр BanTime.
ExpireTime устанавливает через сколько сбрасывается счётчик неудачных попыток авторизации. Спасибо за ответ.
В параметрах все как вы описывали, скачал свежий IPBan с репозитария и все равно не блокирует соединения, единственно меня смущает что в файерволе создается два правила IPBan_EmergingThreats_0 и IPBan_EmergingThreats_1000. Не знаю правильно ли это.


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

Тоже скачал новую версию 1.5.3.0 блокировка работает, правило IPBan_Block_0 создается и в него добавляются IP.

Правила IPBan_EmergingThreats_0 и IPBan_EmergingThreats_1000 появились в утилите начиная с версии 1.5.2.0 они нужны для блокировки общеизвестных IP с которых происходят попытки входа.

Читайте также: