Есть ли простой способ заблокировать IP, который запускает атаку входа в систему brutforce на моем sshd? Может быть, просто увеличивается время для появления приглашения на вход.

Я знаю fail2ban, но он завис, когда я попробовал. Также требуется semdmail, который я не хочу устанавливать на своем рабочем столе. И я не хочу отправлять электронную почту через Интернет, когда что-то происходит. Если бы fail2ban мог вместо этого использовать уведомления рабочего стола (D-Bus), это было бы здорово. Но мне интересно, почему я должен установить что-то отдельное только для чего-то вроде этого? Почему sshd не может этого сделать? (Увеличьте время ожидания, когда один и тот же IP-адрес имеет несколько неудачных попыток входа в систему.)

4 ответа4

2

Альтернатива fail2ban является DenyHosts , который обновляет /etc/hosts.deny вместо управления правилами netfilter

1

Вы должны создать свои собственные fail2ban действия и фильтры. Позвольте мне показать пример

Просто добавьте строки для вашего нового действия уведомления на рабочем столе в /etc/fail2ban/jail.conf

[ssh-with-desktop-notification]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
         ssh-with-desktop-notification[title=<Title Here>, content=<Content Here>]
logpath = /var/log/secure
maxretry = 3

Создайте новый файл с именем в /etc/fail2ban/actions.d/ssh-with-desktop-notification.conf и добавьте любую команду в actionstart, actionstop events. Например, я предполагаю, что вы используете GNOME в качестве среды рабочего стола,

actionban =  `which notify-send` <content>

После всех этих новых строк не забудьте перезапустить сервис fail2ban.

/etc/init.d/fail2ban restart

В заключение, это новое действие fail2ban проверяет файл /var/log/secure log на попытки взлома. После 3 неудачных действий он запустит iptables с тремя параметрами (имя, порт и протокол). После запуска IPTables fail2ban будет выглядеть в /etc/fail2ban/actions.d папки для SSH-с-descktop-notifications.conf файла. Если файл существует, он будет искать файл actionban . Затем, если событие actionban существует, fail2ban выполняет команды actionban с параметрами (title и content) при запрете IP.

Примечание: пожалуйста, проверьте, что команды выполняются с правами пользователя fail2ban.

0

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

-1

Лучший способ сделать это - использовать встроенные возможности netfilter. Вы хотите установить тайм-аут, если порт TCP слишком часто используется за определенный промежуток времени.

Для каждого хоста есть последняя отметка времени ...

$ sudo iptables -A INPUT  -p tcp -m tcp --dport 22 -m state \
    --state NEW -m recent                                   \
    --update --seconds 60 --hitcount 4 --name DEFAULT --rsource -j DROP

Читай полную статью здесь. http://blog.bigdinosaur.org/securing-ssh-with-iptables/

Есть также ряд более сложных плагинов для netfilter, которые делают это.

Не используйте hosts.deny , это старый и старый. Это TCP Wrappers, который является древним и требует поддержки программирования.

Я использовал эту технику на производственных брандмауэрах, и она хорошо работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .