Cygwin SSHd Autoblock не удалось войти


20

Я использую Cygwin с SSH-демоном на компьютере с Windows Server 2008. Я смотрел на Event Viewer и заметил 5-6 неудачных попыток входа в секунду (грубая сила) в течение последней недели или около того с разных IP-адресов.

Как я могу автоматически блокировать эти IP-адреса, а не блокировать их один за другим вручную?

Спасибо ахмад

Ответы:


34

Я написал программу для блокировки IP-адресов, как вы просили пару лет назад, но сделал это для Заказчика как работу по найму. Так как сегодня вечером у меня было немного «свободного» времени, я решил заново реализовать все это с нуля, написать некоторую полезную документацию и вообще сделать ее презентабельной программой. Так как я слышал от нескольких людей, что это было бы удобно, кажется, что это стоит того времени. Надеюсь, что вы и другие члены сообщества сможете извлечь из этого пользу.


Windows sshd_block

sshd_block - это программа VBScript, которая действует как приемник событий WMI для получения записей журнала событий Windows, зарегистрированных в sshd. Он анализирует эти записи журнала и действует на них следующим образом:

  • Если IP-адрес пытается войти в систему с именем пользователя, помеченным как «немедленно забанить», IP-адрес немедленно забаняется.

  • Если IP-адрес пытается войти в систему чаще, чем разрешено в данный период времени, IP-адрес запрещается.

Имена пользователей и пороги немедленного запрета, связанные с повторными попытками входа в систему, настраиваются в разделе «Конфигурация» сценария. Настройки по умолчанию следующие:

  • Немедленно забаньте имена пользователей - администратор, root, гость
  • Разрешены попытки входа в систему - 5 за 120 секунд (2 минуты)
  • Продолжительность бана - 300 секунд (5 минут)

Раз в секунду любые IP-адреса, которые были забанены на время запрета, отменяются (путем удаления маршрута черной дыры из таблицы маршрутизации).


Вы можете скачать программное обеспечение здесь и просмотреть архив здесь .

Редактировать:

По состоянию на 2010-01-20 я обновил код для поддержки использования «Расширенного брандмауэра» в Windows Vista / 2008/7/2008 R2 для выполнения «черного» трафика через создание правил брандмауэра (что намного больше соответствует поведение "fail2ban"). Я также добавил несколько дополнительных подходящих строк, чтобы перехватить версии OpenSSH, которые являются «недопустимым пользователем», а не «нелегальным пользователем».


2
Я ценю работу, которую вы проделали, и думаю, что это прекрасная идея, однако есть ли шанс, что она может быть изменена для работы с попытками RDP? Мои серверы Windows постоянно подвергаются атакам в сети и блокировке учетной записи, хотя для того, чтобы этот пользователь снова работал, необходимо разблокировать учетную запись с полуактивным эффектом, создавая резервную копию учетной записи для другой блокировки.

@ Генри: Посмотрите на serverfault.com/a/335976/7200
Эван Андерсон

Этот сценарий высасывает более 10 процентов моего процессора, даже если не выполняются атаки методом перебора ...
jjxtra

@PsychoDad: Если вам интересно, свяжитесь со мной напрямую, и мы решим проблему. Я не видел поведение, которое вы видите.
Эван Андерсон

1
Я также хотел бы видеть это для соединений RDP. Спасибо
Boomhauer


2

Это очень интересно, мы сейчас оцениваем это решение:

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

Местный белый список

Пользователь всегда может добавить IP-адреса в локальный белый список, чтобы, например, предотвратить блокировку любых внутренних сетей или временно добавить отдельные ПК. Это следует использовать с осторожностью, так как любые IP-адреса в этом списке считаются заслуживающими доверия Syspeace и всегда будут игнорироваться.

Локальный черный список

Любые угрозы будут автоматически добавлены в локальный черный список Syspeace. Вы всегда можете просмотреть черный список и добавлять или удалять их по своему усмотрению. Однако мы рекомендуем не вносить никаких изменений в этот список, поскольку вы можете случайно проложить путь неизвестному хакеру.

Глобальный черный список

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

обмен сообщениями

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

Отчеты

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

www.syspeace.com


2

Буквально все попытки входа в систему из Китая / США / Индии на моем сервере пытаются выполнить вход администратора, который я отключил.

Не будет ли проще отключить вход администратора, а затем написать сценарий, который блокирует все IP-адреса, которые пытаются войти, используя «Администратор» в качестве имени пользователя?


1

Возможно, вам придется возиться с брандмауэром Windows; Cygwin не будет иметь такой тип функциональности.


1

Вы можете рассмотреть возможность использования SSHBlock - скрипта Perl для управления попытками перебора.

SSHBlock - это демон, который отслеживает журнал системного журнала на предмет попыток взлома с использованием SSH и автоматически блокирует поврежденные хосты, добавляя строки в /etc/hosts.allow (TCP Wrappers). Предопределено несколько пороговых значений, чтобы можно было блокировать попытки сделать много попыток в течение более длительного или более короткого периода. Используйте -h, чтобы увидеть параметры командной строки.

Я еще никогда не использовал его на Cygwin.
Однако здесь есть ссылка на другую статью, описывающую sshblock с некоторыми другими способами:
Защита от ssh-атак brute force

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.