fail2ban и denyhosts постоянно банят меня на Ubuntu

fail2ban и denyhosts постоянно банят меня на Ubuntu

Я только что получил экземпляр Ubuntu на Linode. Чтобы обезопасить SSH на нем, я установил fail2ban(используя apt-get), но затем возникла проблема: fail2banмой IP продолжал баниться (на ограниченное время, к счастью), хотя я вводил правильный пароль. Поэтому я удалил fail2banи установил denyhostsвместо этого. Та же проблема, но более серьезная: похоже, каждый раз, когда я захожу по SSH, мой IP банится. Я удаляю его из /etc/hosts.deny, перезапускаю denyhostsи снова вхожу в систему, и мой IP снова банится.

Единственное объяснение, которое приходит мне в голову, это то, что я захожу по SSH как root (да, да, я знаю); может быть, где-то что-то установлено, что блокирует любого, кто заходит по SSH как root, даже если он успешно вошел в систему? Мне это кажется странным. Есть идеи? (Внесение моего IP в белый список — это временное решение. Я не хочу иметь возможность входить только с одного IP.)

решение1

Кажется, я видел, как кто-то говорил, что некоторые из этих приложений будут считать неудачные попытки входа с ключом попыткой перебора. У вас есть ssh-agent, работающий с ключами? Подключение с помощью этого набора будет предлагать каждый ключ по очереди, прежде чем вернуться к паролю, так что, возможно, это причина. Попробуйте установить уровень журнала sshd выше и проверьте журналы fail2ban/denyhost.

Редактировать:здесьэто первоисточник, который подсказал мне, как это исправить.

решение2

пожалуйста, ознакомьтесь со следующими ссылками:

если вы хотите отказаться от всей идеи fail2ban и denyhosts, сделайте так, как говорит Натан Пауэлл ниже, измените порт с 22 на что-то более непонятное

и еще несколько идей:

  1. iptables: следующий пример отклонит входящие соединения, которые совершают более 2 попыток подключения к порту 22 в течение десяти минут:

    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW 
             -m recent --set
    
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW
             -m recent --update --seconds 60 --hitcount 4 -j DROP
    
  2. вход на основе ключа

  3. портовый молоток (knockd)

решение3

Если sshd установлен на уровень ведения журнала VERBOSE (или выше), он помещает фразу '...Failed none...' в системный журнал всякий раз, когда пользователь успешно входит в систему. По умолчанию fail2ban настроен считать это неудачей. Я исправил проблему, установив уровень ведения журнала для sshd обратно на INFO.

Подробности смотрите в моем ответе на этот вопрос.fail2ban банит меня после серии *успешных* входов

решение4

Если вы открыты для возврата к fail2ban, вы всегда можете использовать директиву ignoreipв jail.conf. Например:

ignoreip = 127.0.0.1 192.168.1.0/32

Таким образом, вас не заблокируют из-за неаккуратного набора текста ;-) Это также означает, что вас не смогут заблокировать, подделав ваш IP-адрес (хотя для любого TCP-трафика это не представляет большой проблемы).

Связанный контент