У меня новая установка Windows Server 2012 на виртуальной машине, и я собираюсь использовать Wail2ban ( https://github.com/glasnt/wail2ban ), чтобы попробовать и блокировать людей, атакующих сервер.
Я успешно добавил Wail2ban, и теперь у меня это работает, но это определенно не было прямым. Вот несколько настроек, которые мне нужно было изменить в gpedit.msc, чтобы IP-адрес атакующего хоста действительно отображался в средстве просмотра событий. Первоначально в событии не отображался адрес источника.
Изменив примерно три параметра, я теперь работаю, но теперь я не могу получить доступ к общим файлам на сервере.
Мне пришлось изменить один параметр - gpedit. msc-> Конфигурация компьютера-> Параметры Windows-> Параметры безопасности-> Локальные политики-> Параметры безопасности-> Сетевая безопасность: ограничение NTLM: входящий трафик NTLM Я установил для него значение «Запретить все учетные записи», и я получаю IP-адрес злоумышленника в средстве просмотра событий, но не могу получить доступ к общим файлам. С другими настройками «Разрешить все» / «Запретить все домены» я не получаю IP-адрес в средстве просмотра событий, но могу получить доступ к общим файлам.
Есть ли у кого-нибудь идеи, как я могу заставить оба работать, или это просто нету?
Теперь это работает с несколькими изменениями.
Я изменил настройки NTLM обратно по умолчанию, это необязательно делать, если только вы не следовали другим статьям и не изменили эти настройки.
Комментатор указал мне в направлении Event ID 4625 Without Source IP . Похоже, что в расширенных журналах IP занесен в журнал, но не в случае 4625.
Я последовал следующей статье Accessing Extended Logs и добавил ключ реестра для Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
Затем я изменил одну строку в wail2ban wail2ban. Файл ps1
, чтобы можно было использовать эти лог-файлы
$EventTypes = "Application,Security,System,Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational" #Event logs we allow to be processed
Мне также пришлось изменить конфигурацию wail2ban_config, чтобы добавить лог-файл и указать тип события id
# Wail2ban Configuration
[Events]
#[Security]
#4625=RDP Logins
#[Application]
#18456=MSSQL Logins
[Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]
140=RDP Logins
[Whitelist]
# Add your whitelist here, in the format `IP = Comment`
# Supports plain IPs , e.g. `12.34.56.78 = My Machine`
# Also, ranges, e.g. `11.22.33.0/24 = My Company Range`
Добавление раздела [Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]
, т.е. то, что здесь важно.
После перезагрузки, чтобы изменения в реестре могли вступить в силу, wail2ban начал работать, как и ожидалось.
Я нашел wbemtest
(запущен) полезным здесь, так как вы можете опрашивать журналы и проверять, является ли Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
частью Win32_NTLogEvent
В то время как сейчас это работает, Я буду рассматривать решение, предложенное @moteus, так как оно выглядит как интересное решение, которое можно легко переместить и установить.
Не думаю, что можно использовать Wail2Ban без изменения исходного кода.
Так я решаю эту проблему с помощью nxlog и моего SpyLog сервиса.
1. Я перенаправляю с Microsoft-Событие Windows-RemoteDesktopServices-RdpCoreTS/Operational
140. Это событие имеет IP-адрес.
Я нашел это событие в этом ответе
<Input eventlog>
Module im_msvistalog
SavePos TRUE
ReadFromLast TRUE
Channel "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational"
<QueryXML>
<QueryList>
<Query Id="0" Path="Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational">
<Select Path="Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational">*[System[(EventID=140)]]</Select>
</Query>
</QueryList>
</QueryXML>
</Input>
<Output spylog>
Module om_udp
Host 127.0.0.1
Port 614
Exec $raw_event = "EventID: " + $EventID + "; " + $Message;
</Output>
<Route 1>
Path eventlog => spylog
</Route>
FILTER{"nxlog-rdp"; включено = true; источник = "net:udp://127.0.0.1:614"; исключить = WHITE_IP; подсказка = "EventID: 140"; failregex = { "^EventID: 140; Соединение с клиентского компьютера с IP-адресом ([%d%.:]+)"; -- UTF8 "^EventID: 140; Не удалось подключить клиентский компьютер с IP%-адресом ([%d%.:]+)"; }; };