Благодаря второму комментарию Bruce я смог выяснить проблему самостоятельно.
После выполнения stty -a -F /dev/ttyS1
, было 3 опции, которые я нашел для содействия проблеме: "эхо", "onlcr", и "icrnl".
Так как этот последовательный порт циклично выполняется назад к себе, вот то, что произошло после выполнения echo "hi" > /dev/ttyS1
:
echo
команда добавляет новую строку в конец сообщения по умолчанию, так "привет" +, LF отослан в/dev/ttyS1И так далее...
Для решения этой проблемы я выполнил следующую команду:
stty -F /dev/ttyS1 -echo -onlcr
Отключение "эха" предотвращает бесконечный цикл сообщений, и отключающий "onlcr" препятствует тому, чтобы последовательное устройство преобразовало LF в CRLF на выводе. Теперь cat
получает тот "привет" (с единственной новой строкой!) в течение каждого раза я работаю echo
.
CR = возврат каретки (ASCII 0x0D); LF = перевод строки или новая строка (ASCII 0x0A)
Вы могли бы хотеть смотреть на 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
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