Я запускаю Cygwin с демоном SSH на машине Windows Server 2008. Я смотрел в Event Viewer и заметил от 5 до 6 неудачных попыток входа в систему в секунду (грубая сила) за последнюю неделю или около того с разных IP-адресов.
Как я могу автоматически заблокировать эти IP-адреса, а не блокировать их по одному вручную?
Спасибо Ахмад
Я написал программу для блокировки IP-адресов, как вы просите пару лет назад, но сделал это для Заказчика по найму. Поскольку сегодня вечером у меня появилось «свободное» время, я решил заново реализовать все это с нуля, написать полезную документацию и в целом сделать презентабельную программу. Поскольку я слышал от нескольких людей, что это было бы удобно, кажется, что оно того стоит. Надеюсь, вы и другие члены сообщества сможете извлечь из этого пользу.
sshd_block - это программа VBScript, которая действует как приемник событий WMI для получения записей журнала событий Windows, регистрируемых sshd. Он анализирует эти записи журнала и действует с ними следующим образом:
Если IP-адрес пытается войти в систему с именем пользователя, помеченным как «заблокировать немедленно», IP-адрес немедленно блокируется.
Если IP-адрес пытается войти в систему чаще, чем разрешено в заданный период времени, IP-адрес блокируется.
Имена пользователей и пороговые значения для «немедленного запрета», связанные с повторными попытками входа в систему, настраиваются в разделе «Конфигурация» сценария. Настройки по умолчанию следующие:
Раз в секунду все IP-адреса, которые были забанены на время запрета, разблокируются (путем удаления маршрута черной дыры из таблицы маршрутизации).
Вы можете скачать программу Вот и можете просматривать архив Вот.
Редактировать:
По состоянию на 20 января 2010 г. я обновил код для поддержки использования «Расширенного брандмауэра» в Windows Vista / 2008/7/2008 R2 для блокирования трафика путем создания правил брандмауэра (что намного больше соответствует поведение «fail2ban»). Я также добавил несколько дополнительных совпадающих строк, чтобы отловить версии OpenSSH, которые являются «недопустимым пользователем», а не «незаконным пользователем».
В Linux denyhosts делает свое дело, не могу сказать, будет ли он работать в Windows / Cygwin или нет. Попробуйте.
Буквально все попытки входа в систему из Китая / США / Индии на моем сервере осуществляются под учетной записью администратора, которую я отключил.
Не было бы проще отключить логин администратора, а затем написать сценарий, который блокирует все IP-адреса, которые пытаются войти, используя «Администратор» в качестве имени пользователя?
Это очень интересно, в настоящее время мы оцениваем это решение:
Syspeace тесно сотрудничает с Windows, чтобы обнаруживать возможные угрозы с оптимальной производительностью. События в журнале событий постоянно отслеживаются на предмет подозрительного поведения. Если событие считается угрозой для системы, Syspeace переходит на следующий уровень, проверяя внутреннюю базу правил, которая просто блокирует IP-адрес и добавляет правило в брандмауэр Windows.
Местный белый список
Пользователь всегда может добавить IP-адреса в локальный белый список, например, чтобы предотвратить блокировку любых внутренних сетей или временно добавить отдельные ПК. Это следует использовать с осторожностью, поскольку Syspeace считает любые IP-адреса в этом списке заслуживающими доверия и всегда будут игнорироваться.
Местный черный список
Любые угрозы будут автоматически добавлены в локальный черный список Syspeace. Вы всегда можете просмотреть черный список и добавить или удалить его по своему усмотрению. Однако мы рекомендуем вам не вносить никаких изменений в этот список, так как вы можете случайно открыть путь для неизвестного хакера.
Глобальный черный список
Ключевой особенностью Syspeace является возможность упреждающего блокирования известных в глобальном черном списке IP-адресов. Выбрав этот вариант, Syspeace импортирует глобальный черный список на ваш клиент и будет действовать соответствующим образом, добавляя все IP-адреса из глобального черного списка в набор правил брандмауэра одним нажатием кнопки.
Обмен сообщениями
Каждый раз, когда происходит важное событие, служба запускается или останавливается, правила помещаются в брандмауэр или удаляются из него, или изменяется статус связи с центральной лицензией и глобальным сервером черного списка, Syspeace имеет возможность отправлять почту соответствующим людям в ваша организация.
Отчеты
Получать электронные письма, когда происходит важное событие, может быть хорошо, но иногда вы также хотите получить сводку. Syspeace составляет ежедневный отчет со всеми попытками атак на вашу систему и отправляет вам сообщение с информацией. Syspeace также составляет еженедельный отчет таким же образом.
www.syspeace.com
Возможно, вам придется повозиться с брандмауэром Windows; Cygwin не обладал бы такой функциональностью.
Вы можете подумать об использовании SSHBlock - Perl-скрипт для управления попытками перебора.
SSHBlock - это демон для мониторинга журнала системного журнала на предмет попыток взлома с использованием SSH и для автоматической блокировки поврежденных хостов путем добавления строк в /etc/hosts.allow (TCP Wrappers). Предварительно определены несколько пороговых значений, чтобы иметь возможность блокировать тех, кто пытается много попыток в течение более длительного или более короткого периода. Используйте -h, чтобы увидеть параметры командной строки.
Я еще никогда не использовал его на Cygwin.
Однако вот ссылка на другую статью, описывающую sshblock другими способами:
Защита от атак методом грубой силы ssh