Security

Ошибка автоблокировки Cygwin SSHd при входе в систему

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

Ответ 1

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

sshd_block для Windows

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

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

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

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

  1. Запретить немедленно Имена пользователей – администратор, root, гость.

  2. Разрешенные попытки входа – 5 за 120 секунд (2 минуты).

  3. Продолжительность бана – 300 секунд (5 минут).

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

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

Вы можете скачать эту программу здесь:

http://opensource.wellbury.com/projects/windows_sshd_block/newest-release/

Ответ 2

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

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

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

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

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

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

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

Передача сообщений

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

Отчеты

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

www.syspeace.com

Ответ 3

Всем, кто спрашивает о блокировке RDP (или другого не-SSH порта): я рекомендую делать все через ssh-туннели!

Например, для RDP (со стандартными портами для RDP и SSH) на клиентской машине откройте консоль и запустите эту команду (хорошо работает и с PuTTY):

ssh -L33890:<SERVER-MACHINE-NAME>:3389 -x -o <USER>@<SERVER-MACHINE-IP> sleep 100

Затем у вас есть 100 секунд, чтобы открыть RDP-соединение с этим адресом:

localhost:33890

(где 33890 может быть любым неиспользуемым номером порта < 65535, но, конечно, он должен быть одинаковым в обоих местах).

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

Ответ 4

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

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

Схожие статьи

Security

Как защитить общедоступный сервер удаленного рабочего стола?

Security

Политики истечения срока действия пароля

Security

Необходимы ли анонимные имена пользователей?

Security

Установка прав администратора групповой политики для определенных пользователей