Как указать задержку входа в 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 секунды .

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

  • Есть ли способ рассказать, как пользователь аутентифицировал свое соединение SSH? т.е. будь то по паролю или с помощью открытого ключа?
  • Sshd_config TPCKeepAlive по-прежнему использует незашифрованный канал и, следовательно, уязвим
  • Не удается подключиться к sshd у моего непривилегированного гостя LXC. Что делать?
  • Влияние Openssl.Cnf на службы sshd amazon linux
  • SSH туннели заставляют новый туннель и убивают старую сессию
  • SSH AuthorizedKeysCommand и SELinux
  • Может ли чрезмерное использование ресурсов фактически заставлять пользователей быть неспособными SSH к Linux?
  • Обратный режим AutoSSH работает, но проксированные порты LISTEN случайным образом выходят из строя
  • Не удалось запустить sshd во время загрузки на centos 6.4. Он начинается ТОЛЬКО после входа в систему с консоли
  • Подключиться к удаленному Linux-серверу, который настроен по умолчанию, не настроен на подключение?
  • Есть ли простой способ не регистрировать конкретное событие sshd?
  • Interesting Posts

    Почему установка пакета python-minimal также захватывает пакет python на Debian?

    Как я могу переименовать все файлы в текущем каталоге с определенным расширением на другое расширение?

    Массив RAID-5 ухудшился, кажется, что это 1 отказ; можно ли восстановить без потери данных?

    Какой заголовок определяет макрос, определяющий архитектуру машины?

    Raspbian переходит на более крупную SD-карту

    Самый безобидный пакет для установки для тестирования yum?

    Как изменить регистр (верхний и нижний регистр) строк в моей переменной?

    Сравните столбцы разных файлов разных размеров и замените значения несоответствия NA

    Почему Firefox 33 не использует GCM на нашем веб-сервере?

    Журналы ошибок потока

    Некоторые сайты загружаются, а другие загружаются навсегда в Linux Mint 18

    Fedora25: SD cauing OS Freeze: dmesg mmc0 error 110

    Solaris: найдите день последнего понедельника, вторника, … воскресенье с помощью сценария оболочки

    Как связать только один открытый ключ с ограниченной оболочкой вроде scponly?

    скрипт для сравнения двух строк "foo" и "bar"

    Linux и Unix - лучшая ОС в мире.