Я хотел обеспечить задержку входа в систему при входе через ssh. Я попробовал несколько способов сделать то же самое, но не смог найти желаемый результат.
Я попытался шаги, предоставленные по данной ссылке.
http://hostingfu.com/article/ssh-dictionary-attack-prevention-with-iptables
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
На моей машине не установлен модуль pam, поэтому я не могу вносить изменения в файлы pam
Таким образом, любое тело позволяет мне предложить другой способ сделать то же самое?
У меня есть голое ядро Linux, работающее на встроенной платформе.
linux
networking
ssh
sshd
Баран
источник
источник
fail2ban
использует ту инфраструктуру, которая у тебя уже есть - логи ssh и правила iptables.Ответы:
Способ № 1 - отключить пароль входа
Если вам не нужно разрешать логин с паролями, то просто запретив их, вы получите желаемый эффект. Просто добавьте эту строку в
/etc/ssh/sshd_config
:Кроме того, вы можете ограничить использование пароля для определенных пользователей, использующих
Match
оператор вsshd_config
:Метод № 2 - iptables
Вы также можете использовать
iptables
для отслеживания неудачных попыток входа в систему и отбросить их после определенного порога. Это похоже на ваш пример с hostingfu, но его легче понять.ПРИМЕЧАНИЕ . Первая строка в основном создает правило, которое применяется только к пакетам, используемым для новых попыток подключения через порт ssh. Во второй строке написано, что если в течение 60 секунд с IP-адреса поступило более четырех попыток, то любой трафик с этого IP-адреса следует заблокировать. Это решение не волнует, будут ли попытки на разных учетных записях пользователей.
Метод № 3 - использовать PAM
Я понимаю, что вы сказали, что у вас нет доступного PAM, но если вы это сделали, вы можете отложить неудачные попытки входа в систему. Если вы намереваетесь просто отложить сбои входа в систему через ssh, вы можете использовать модуль PAM
pam_faildelay
. Этот модуль PAM обычно входит в состав микса по умолчанию.В моей системе Fedora 19 это часть установки по умолчанию.
пример
Ищите файлы, связанные с
pam_faildelay
.Посмотрите, какие RPM они предоставляют:
использование
Чтобы создать задержку при неудаче, вы просто добавите такую строку в ваш
sshd
файл конфигурации pam. Опять же на Fedora / CentOS / RHEL системах этот файл находится здесь:/etc/pam.d/sshd
.Чтобы создать 10-секундную задержку:
Задержка 60 секунд:
пример
С задержкой в 20 секунд, используя вышеуказанный метод, я изменил свой
sshd
конфигурационный файл PAM следующим образом:Теперь, когда я захожу:
Ссылки
источник
--hitcount 4
превышено, правило будет черной дырой нарушающий IP-адрес в течение 60 секунд.Отключить пароли. Никаких паролей, никакой атаки методом перебора.
Вы можете использовать ssh-ключи для входа в систему - что должно быть намного безопаснее и труднее взломать.
источник
В чистой установке Ubuntu 16.04 с
openssh-server
уже существует задержка для попытки неправильного пароля больше нуля символов. Задержка кажется более 1 секунды .При попытке ввода неправильного пароля, состоящего из нулевых символов, задержка отсутствует, поэтому злоумышленник сразу определит, что ваш пароль не является пустой строкой, если это действительно не пустая строка. Поскольку пустая строка, вероятно, не разрешена в качестве пароля, они уже знают это, поэтому они не собираются пробовать пустую строку.
источник