Я только что получил экземпляр 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 на что-то более неясное
также еще несколько идей:
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
логин на основе ключа
левый молоток (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. Это позаботится о подавляющем большинстве из них.