Как заблокировать пользователей после 5 неудачных попыток входа в систему?

Благодаря второму комментарию Bruce я смог выяснить проблему самостоятельно.

После выполнения stty -a -F /dev/ttyS1, было 3 опции, которые я нашел для содействия проблеме: "эхо", "onlcr", и "icrnl".

Так как этот последовательный порт циклично выполняется назад к себе, вот то, что произошло после выполнения echo "hi" > /dev/ttyS1:

  1. echo команда добавляет новую строку в конец сообщения по умолчанию, так "привет" +, LF отослан в/dev/ttyS1
  2. Поскольку "onlcr" был установлен, последовательное устройство преобразовало LF в CRLF, таким образом, физическое сообщение отослало строку Tx, был "привет" + CRLF
  3. Поскольку "icrnl" был установлен, медосмотр, переданный полученный на строке Rx, преобразовал CR в LF. Таким образом, сообщение, произведенное 'кошкой', было "привет" + LFLF.
  4. Поскольку "эхо" было установлено, сообщение, полученное на Rx ("привет" + LFLF), был затем передан обратно на строке Tx.
  5. Из-за onlcr "привет" + LFLF стал "привет" + CRLFCRLF.
  6. Из-за icrnl "привет" + CRLFCRLF стал "привет" + LFLFLFLF
  7. Из-за эха "привет" + LFLFLFLF был затем отослан Tx

И так далее...

Для решения этой проблемы я выполнил следующую команду:

stty -F /dev/ttyS1 -echo -onlcr

Отключение "эха" предотвращает бесконечный цикл сообщений, и отключающий "onlcr" препятствует тому, чтобы последовательное устройство преобразовало LF в CRLF на выводе. Теперь cat получает тот "привет" (с единственной новой строкой!) в течение каждого раза я работаю echo.

CR = возврат каретки (ASCII 0x0D); LF = перевод строки или новая строка (ASCII 0x0A)

12
04.06.2013, 17:33
2 ответа

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

http://www.fail2ban.org/wiki/index.php/Downloads

Если Вы действительно серьезно относитесь к использованию pam_tally, Вы, вероятно, хотите использовать pam_tally2 вместо этого. Должен быть установлен с любым пакетом PAM, это является текущим. Можно сделать человека pam_tally2, чтобы видеть, как использовать его.

Вот пример для запущения Вас. Добавьте следующее к началу подлинного раздела в pam файле, /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

В том же файле добавляют это к разделу учетной записи:

account     required      pam_tally2.so

Параметры выше следующие:

  • file=/var/log/tallylog – Файл журнала по умолчанию используется для проведения подсчета входа в систему.
  • deny=3 – Запретите доступа после 3 попыток и заблокируйте вниз пользователя.
  • even_deny_root – Политика, также относятся к пользователю root.
  • unlock_time=1200 - 20 минут (60 секунд. * 20 минут = 1 200 секунд.)

Если Вы не хотите блокировать, выкорчевывают изменение even_deny_root к magic_root.

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

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

Это только заблокирует корневую учетную запись в течение минуты, все остальные нормальные секунды 1200 года.

Демонстрационный файл журнала посмотрел бы следующим образом:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

Можно справиться о заблокированных учетных записях с помощью команды pam_tally2:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

Можно разблокировать ограничение как так:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

Теперь учетная запись обнаруживается в pam_tally2 как так:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

Ссылки

17
27.01.2020, 19:55

pam_tally2 сначала смутил меня, но я понял это после того, как подписался на man pam_tally2 -

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

формулировка выше является немного сбивает с толку, потому что на самом деле вы добавляете только строку pam_tally2.so .

, чтобы вы могли либо отредактировать /etc/pam.d/login , либо добавить его под всеми другими auth строками:

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

или если у вас есть / etc /pam.d/system-auth вы можете добавить его туда.

перезагрузка или перезагрузка какой-либо службы не требуется - она ​​немедленно становится активной для новых локальных входов в систему.

примечание: если вы хотите, чтобы pam_tally2 применялся к sshd или другим удаленным службам, вам также необходимо добавить строку в /etc/pam.d/ sshd и / или /etc/pam.d/password-auth


, чтобы убедиться, что он работает, сделайте неудачную попытку входа с действующим пользователем, затем запустите, например, pam_tally2

, для пользователя с именем jacob запустите:

  $ sudo pam_tally2 -u jacob

, и он выдаст что-то вроде:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

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

  $ sudo pam_tally2 -u jacob --reset
2
27.01.2020, 19:55

Теги

Похожие вопросы