sentry — эта аббревиатура означает «safe and effective protection against bruteforce attacks», т. е. безопасная и эффективная защита от брутфорсинга (ssh, FTP, SMTP и другие).

Описание sentry

Sentry выявляет и предотвращает атаки методом перебора в отношении ssh, FTP, SMTP и других служб, используя при этом минимальные системные ресурсы. Sentry НЕ делает изменения в настройках файервола. Она просто добавляет IP адреса в таблицу/список/цепь (table/list/chain). Она делает это динамически и на усмотрение администратора файервола добавить правило, которое делает то, что вам нужно с IP адресами в таблице sentry. Sentry также имеет гибкие правила для того, что представляют собой «озорные» (naughty) соединения. Для SSH, попытка залогиниться с неверными учётными данными рассматривается как «озорная». Для SMTP отправка вируса или письма со спамом может быть рассмотрено как «озорная» (naughty).

Sentry:

  • Безопасная

Для предотвращения случайных блокировок, Sentry ведёт белый список IP, которые соединились более чем 3 раза и хотя бы один раз успешно. Теперь больше никогда ваш коллега со склерозом за офисным NAT роутером не будет заблокирован из вашей системы. Да и вашего админа, чей кривой скрипт неудачно пытался залогиниться 12 раз в 2 секунды, больше не постигнет такая участь.

Sentry включает поддержку добавления IP в файервол. Включена поддержка для IPFW, PF, ipchains. Поддержка файервола по дефолту отключена. Это от того, что правила файервола могут закрыть существующую сессию(и) для хоста (важно для пользователей IPFW). Добавьте ваш IP в белый список (соединитесь 3 или более раз или используйте whitelist) перед включением опции файервола.

  • Простая

Sentry имеет предельно простую базу данных для отслеживания IP. Благодаря этому, системному администратору очень просто её просматривать и изменять, в том числе с использованием шелл команд и скриптов. Посмотрите раздел Примеры.

Sentry написан на perl, который установлен везде, где есть sshd. Нет никаких зависимостей. Установка и развёртывание максимально просты.

  • Гибкая

Sentry поддерживает блокировку попыток соединения с использованием различных TCP Wrapper и нескольких популярных файерволов. Можно легко улучшить sentry для поддержки дополнительных списков блокировки.

Sentry была написана для защиты демона SSH, но используется и с другими демонами. Как это уже описывалось, главная платформа, используемая для атаки, это сеть из ботов, состоящая из используемых персональных компьютеров с высокоскоростными Интернет-соединениями. Эти боты используются для выполнения SSH атак, а также для рассылки спама. Блокировка ботов предотвращает множество векторов атак.

Стиль программирования в sentry делает простым вставку кода для дополнительной функциональности.

  • Эффективная

Главная цель Sentry — это минимизировать ресурсы, которые атакующий может украсть, это достигается потреблением самой программой минимального количества ресурсов. Большинство приложений для блокировки брутфорса (denyhosts, fail2ban, sshdfilter) нужно запускать в качестве демонов, следящих за хвостом файла лога. Это требует от интерпретатора языка всегда быть запущенным, потребляя минимум 10MB RAM. Единичная железная машина, на которой множество виртуальных серверов, потеряет сотни мегабайт для защиты демонами.


Набираем команду codeby webinar

Набираем команду для организации и проведения вебинаров Подробнее ...

Sentry использует ресурсы только когда сделано соединение.

При худшем сценарии, ресурсы будут тратиться при первом подключении IP, поскольку будет задействован интерпретатор perl. Для большинства соединений, Sentry будет добавлять метки к файлу, стате на наличие другого файла и выходить.

Как только IP добавлен в чёрный список за нарушение, будь-то с tcpd или файерволом, потребляемые ресурсы сведутся практически к нулю.

Sentry не самая эффективная программа для составления отчётов. Концепция «один файл на IP» — великолепный минималистический вариант для ведения логов, чёрных списков, но практически любая база данных покажет лучшую производительность для составления отчётов. Нужно прождать несколько секунд для выполнения команды с ключом —report.

Установка Sentry

Запуск Sentry:

Запуск sentry в первый раз выполнит:

  • создание базы данных sentry
  • установку perl скрипта
  • запросит вас отредактировать /etc/hosts.allow, вставив туда две строчки, которые его включат.

Обновление Sentry

Простой способ

Сложные способ

Загрузите как написано выше.

Найдём все имеющиеся различия в настройке

Конспект по Sentry

Аргументы Sentry

Обязательный аргумент — ip. Это адрес IPv4. IP должен поступать из надёжного источника, который трудно подменить. Tcpwrappers — это отличный источник. Соединения UDP — это плохой источник, т. к. их легко спуфить. Файлы журналов TCP демонов могут быть хорошим источником, если они парсятся должным образом, во избежания атак инжекта в логи. Все действия, кроме report и help, требуют IP адрес. IP адрес может быть задан вручную администратором или предпочтительно передан TCP сервером вроде tcpd (tcpwrappers), inetd, или tcpserver (daemontools).

Действия

blacklistdeny — отклонить все будущие соединения

whitelistwhitelist — принять все будущие соединения, удалить IP из чёрных списков и добавить ему иммунитет от последующих тестов при подключении.

delistremove — удалить IP из белых и чёрных списков. Это полезно для тестирования работы sentry.

connectregister — соединения на один IP. Этот метод будет вести список попыток и их время.

update — проверяет на наличие самой последней версии sentry и обновляет, если доступны обновления.

Как всё происходит

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

Далее sentry проверит, не попадался ли на глаза этот IP более трёх раз. Если это так, то будут проверены логи для выяснения успешности, провальности, «озорства» (naughty) попыток с этого IP. Если есть успешные попытки входа, IP добавляется в белый список и программа завершается.

Если нет успешных попыток входа, и это «озорной» (naughty) IP, то он добавляется в чёрный список. Если нет успешных и «озорных» попыток, но выполнено более 10 попыток соединения, IP заносится в чёрный список.

Исходники и скачивание.


Требуются разработчики и тестеры для проекта codebyOS

Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

Похожие темы

Взлом Wifi WPA/WPA2 паролей с использованием Reave... Если у вас какие-либо проблемы с беспроводными устройствами, то следует ознакомиться со статьёй «Лучшие совместимые с Kali Linux USB Wi-Fi ад...
Как удалить или переместить учетную запись пользов... Я создал учетную запись пользователя MySQL / MariaDB, используя эту страницу. Теперь я удалил свой блог WordPress, и я хочу удалить эту учетную запись...
Как установить ограничение скорости rsync на испол... Как установить ограничение скорости rsync на использование всей пропускной полосы с помощью опции -bwlimit Команда rsync использует всю мою пропускну...
Развернутое сканирование c Metasploit... Перейти к содержанию полного руководства пользователя Metasploit на русском языке. Как работает развернутое сканирование Порты в развернутом с...
Хакерские плагины для Firefox Подобная подборка для Google Chrome в статье "Хакерские плагины для Chrome". Подборка плагинов для тестировщиков на проникновение подс...