Как указать задержку входа в ssh

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

3 Solutions collect form web for “Как указать задержку входа в ssh”

Метод №1 – запрет входа в систему

Если вам не требуется вводить пароль для входа в систему, то просто запрет на них даст вам желаемый эффект. Просто добавьте эту строку в /etc/ssh/sshd_config :

 PasswordAuthentication no 

Кроме того, вы можете ограничить использование пароля для определенных пользователей с помощью оператора Match в sshd_config :

 Match User root,foo,bar PasswordAuthentication no Match User user1,user2 PasswordAuthentication yes 

Метод № 2 – iptables

Вы также можете использовать iptables для отслеживания неудачных попыток входа в систему и сбросить их после определенного порога. Это похоже на ваш пример из hostingfu, но его легче понять.

 $ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --set $ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP 

ПРИМЕЧАНИЕ . Первая строка в основном создает правило, которое применяется только к пакетам, используемым для новых попыток подключения к порту ssh. Во второй строке говорится, что если в течение 60 секунд существует более 4 попыток с IP, тогда любой трафик с этого IP-адреса должен быть черным. Это решение не волнует, являются ли попытки разных учетных записей пользователей.

Метод № 3 – использовать PAM

Я понимаю, вы сказали, что у вас нет PAM, но если вы это сделали, вы можете отложить неудачные попытки входа в систему. Если вы намерены просто задержать неудачи входа в систему ssh, вы можете использовать модуль PAM pam_faildelay . Этот модуль PAM обычно включается в стандартную комбинацию.

В моей системе Fedora 19 это часть установки по умолчанию.

пример

Найдите файлы, связанные с pam_faildelay .

 $ locate pam|grep -i delay /usr/lib/security/pam_faildelay.so /usr/lib64/security/pam_faildelay.so /usr/share/doc/pam-1.1.6/html/sag-pam_faildelay.html /usr/share/doc/pam-1.1.6/txts/README.pam_faildelay /usr/share/man/man8/pam_faildelay.8.gz 

Посмотрите, какие RPM они предоставили:

 $ rpm -qf /usr/share/man/man8/pam_faildelay.8.gz pam-1.1.6-12.fc19.x86_64 pam-1.1.6-12.fc19.i686 

Применение

Чтобы создать задержку при сбое, вы просто добавили такую ​​строку в свой конфигурационный файл sshd pam. Снова в системах Fedora / CentOS / RHEL этот файл находится здесь: /etc/pam.d/sshd .

Чтобы создать 10-секундную задержку:

  auth optional pam_faildelay.so delay=10000000 

60-секундная задержка:

  auth optional pam_faildelay.so delay=60000000 

пример

С задержкой в ​​20 секунд с использованием вышеуказанного метода я изменил свой конфигурационный файл PAM sshd следующим образом:

 #%PAM-1.0 auth required pam_sepermit.so auth substack password-auth auth include postlogin auth optional pam_faildelay.so delay=20000000 account required pam_nologin.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session optional pam_keyinit.so force revoke session include password-auth session include postlogin 

Теперь, когда я вхожу в систему:

 $ date Tue Dec 17 09:16:30 EST 2013 $ ssh blah@localhost blah@localhost's password: Permission denied, please try again. blah@localhost's password: ...Control + C.... $ date Tue Dec 17 09:16:50 EST 2013 

Рекомендации

  • Замедление попыток грубой силы ssh

Отключить пароли. Нет паролей, без грубой силы.

Вы можете использовать ssh-ключи для входа в систему – это должно быть более безопасным и более трудным для взлома.

При чистой установке Ubuntu 16.04 с openssh-server уже существует задержка для неправильной попытки пароля более нуля. Задержка, кажется, более 1 секунды .

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

  • Linux: $ SSH_CONNECTION устанавливается даже без SSHing на сервер
  • Как открыть порт SSH 22?
  • sshd: проблема с отключением аутентификации пароля из локальной сети
  • Не удается запустить службу sshd в подсистеме Windows linux
  • Ключевые кодовые фразы и SSH-кэшированная аутентификация?
  • не удалось SSH для eth1 после снижения eth0
  • ssh логин с паролем невозможно - приглашение не предлагается - слишком много ошибок аутентификации
  • ping работает, ssh идет таймаут
  • Как сбрасывать SSHD-процесс и искать строки
  • Как ssh-сервер определяет, какой ключ использовать первым, имея более 1?
  • Сообщение SSH, источник команды приветствия после входа
  • Linux и Unix - лучшая ОС в мире.