Назад | Перейти на главную страницу

Windows Server Wail2ban и общий доступ к папкам не работают вместе - ошибка 4625, нет IP

У меня новая установка Windows Server 2012 на виртуальной машине, и я собираюсь использовать Wail2ban (https://github.com/glasnt/wail2ban), чтобы попытаться заблокировать людей, атакующих сервер.

Я успешно добавил Wail2ban, и теперь у меня это работает, но это, конечно, было непросто. Вот несколько настроек, которые мне нужно было изменить в gpedit.msc, чтобы IP-адрес атакующего хоста действительно отображался в средстве просмотра событий. Первоначально в мероприятии не был указан адрес источника.

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

Мне пришлось изменить один параметр: gpedit.msc-> Конфигурация компьютера-> Параметры Windows-> Параметры безопасности-> Локальные политики-> Параметры безопасности-> Сетевая безопасность: ограничить NTLM: входящий трафик NTLM. Я установил для него значение «Запретить все учетные записи». "и я получаю IP-адрес атакующего в средстве просмотра событий, но не могу получить доступ к общим файлам. С другими настройками «Разрешить все» / «Запретить все домены» я не получаю IP-адрес в средстве просмотра событий, но могу получить доступ к общим файлам.

Есть ли у кого-нибудь идеи, как я могу заставить оба работать, или это просто не работает?

Теперь у меня это работает с небольшими изменениями.

Я изменил настройки NTLM на значения по умолчанию, это необязательно, если вы не читали другие статьи и не изменяли эти настройки.

Комментатор указал мне в сторону Идентификатор события 4625 без IP-адреса источника. Похоже, что в расширенных журналах регистрируется IP, но не в событии 4625.

Я подписался на следующую статью Доступ к расширенным журналам и добавил ключ реестра для Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational

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

$EventTypes = "Application,Security,System,Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational"     #Event logs we allow to be processed

Мне также пришлось изменить wail2ban_config, чтобы также добавить файл журнала и указать идентификатор типа события

# 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>
  1. В SpyLog я добавляю новый фильтр вроде
FILTER{ "nxlog-rdp";
  enabled = true;
  source = "net:udp://127.0.0.1:614";
  exclude = WHITE_IP;
  hint = "EventID: 140";
  failregex = {
    "^EventID: 140; A connection from the client computer with an IP address of ([%d%.:]+)";
    -- UTF8
    "^EventID: 140; Не удалось подключить клиентский компьютер с IP%-адресом ([%d%.:]+)";
  };
};