Назад | Перейти на главную страницу

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-адреса.)

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

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

просмотрите следующие ссылки:

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

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

  1. iptables: следующий пример отбрасывает входящие соединения, которые делают более двух попыток соединения через порт 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)

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

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

Если вы используете sshing как root по определенной причине, я надеюсь, что у вас настроены ключи. я бы порекомендовал эти изменения вашему sshd_config файл:

PermitRootLogin without-password
AllowUsers root@ip.add.re.ss

чтобы заблокировать хост, с которого вы можете подключиться по ssh к своему серверу как root.

если вам не нужно использовать ssh как root, что, скорее всего, и нет, вам следует настроить для себя обычного пользователя, создать группу ssh что ли, настроить ключи для пользователя, добавить их в группу ssh и добавить AllowGroups ssh к sshd_config

затем дайте своему пользователю sudo доступ путем запуска visudo как root и добавив строку: user ALL=(ALL) ALL который позволит вашему пользователю root-доступ с паролем пользователя при запуске sudo commandX

Убедиться, что sshd заблокирован, будет моей первоочередной задачей, особенно если необходимо разрешить вход root.

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

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

ignoreip = 127.0.0.1 192.168.1.0/32

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

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

Если вы оптимизируете для предотвращения распространенных атак грубой силы, измените порт, на котором работает sshd. Это позаботится о подавляющем большинстве из них.