LINUX.ORG.RU
решено ФорумAdmin

Скрипт при ошибке авторизации ssh

 , ,


0

1

Есть куча манов по успешной авторизации, но как быть с ошибками авторизации? Цель запустить скрипт только в случае неудачи.

Ну т.е. авторизация не прошла и об этом факте надо уведомить на email (в идеале указать данные ip, юзера и причину ошибки).

ответ на ваш вопрос в моём удалённом треде, привет a1batross

[www.linux.org.ru/forum/general/15821111]

чтобы далеко не ходить, напишу ещё раз:

# last -f /var/log/btmp | awk '{print $3}' | sort | uniq -c | sort -n

добавьте | mail -s «ssh» «ваш email» в конец.

надеюсь это сообщение не удалят.

Spoofing ★★★★★
()
Ответ на: комментарий от Dimarius

Нет, смотреть значение $?, если 255 то произошла ошибка ssh

sparks ★★★★
()

Это я туплю, криво прочитал, самоее простое использовать TCP Wrapper, его функционал в последних релизах утащили в SystemD, но это прям то что тебе нужно

sparks ★★★★
()
Ответ на: комментарий от mord0d

PAM используется, это да, но

auth ... pam_exec.so -- /path/to/script
Вот эта шляпа же работает при удачной аутентификации? А мне надо неудачную.

Dimarius
() автор топика
Ответ на: комментарий от Dimarius

Вот эта шляпа же работает при удачной аутентификации? А мне надо неудачную.

Как настроишь. Я не помню синтаксис Linux PAM, но там можно к pam_unix.so добавить какую-то опцию, которая будет работать как goto на случай фейла. Тебе нужен этот goto, направленный на pam_exec.so.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)

Закостылил всё-таки парсинг лога в крон:

grep sshd /var/log/auth.log | grep -i fail | grep "`date -d "-1 min" +"%d %H:%M"`" > /tmp/ssh.tmp
if [[ -s /tmp/ssh.tmp ]]; then sendemail ...; fi

Dimarius
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.