Способ получить предупреждения на попытках входа в систему, или успешный или нет?

Я полагаю, что моя машина Linux обоснованно защищена от внешнего входа в систему. Но так как я - mildy параноик, я хотел бы быть предупрежденным, когда существует попытка входа в систему, предпринятая к серверу, или успешная или нет.

Сканируя сайт, я не могу найти унисон способом сделать это. Насколько я могу сказать, для неудачных попыток logcheck был рекомендован, и для успешных sshrc или (возможно, еще больше) pam_exec метод. Я люблю two-stones-in-one-throw методы и задаюсь вопросом, существует ли какой-либо из Вас, которых знают профессионалы, если способ заставить один из этих методов делать обоих? PAM в особенности, кажется, умное место, чтобы сделать вещи, так как это, в конце концов, от того, что я могу сказать, система централизованной аутентификации на моей машине человечности.

Совет?

5
задан 13 April 2017 в 05:23

1 ответ

Хорошо Вы могли использовать cron с глупым небольшим сценарием для проверки /var/log/auth.log каждые 10 минут. Если Вы настраиваете его правильно, cron пошлет вывод по электронной почте везде, где Вам нравится так, нам просто нужен сценарий для выполнения:

#!/bin/bash
cat /var/log/auth.log | perl -MDate::Parse -ne '
  print if /login|ssh/ && /^(\S+\s+\d+\s+\d+:\d+:\d+)\s/ && str2time($1) > time-600'

Это базируется вокруг этого ответа на ТАК F. Hauri.

Это просто ищет объекты с login или ssh в. Вы могли бы хотеть добавить больше или просто исключить некоторых. Но в моей системе вот то, что она генерирует:

Aug 29 10:19:50 bert sudo:      oli : TTY=pts/10 ; PWD=/home/oli ; USER=root ; COMMAND=/bin/login
Aug 29 10:19:52 bert login[15544]: pam_unix(login:session): session opened for user oli by oli(uid=0)
Aug 29 10:19:54 bert login[15544]: pam_unix(login:session): session closed for user oli
Aug 29 10:20:11 bert sshd[15614]: Accepted publickey for oli from ::1 port 41663 ssh2: RSA XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Aug 29 10:20:11 bert sshd[15614]: pam_unix(sshd:session): session opened for user oli by (uid=0)

Сохраните тот сценарий как что-то как /usr/local/sbin/checkauthchmod u+x это), и затем можно добавить корень crontab строка с sudo crontab -e:

*/10 * * * * /usr/local/sbin/checkauth

Палка a MAILTO="email@example.com" строка наверху файла крона также и (если существует установленный mailserver — установка postfix если не) Вы получите электронные письма вывода, эквивалентность, там любой вывод.

3
ответ дан 23 November 2019 в 10:28

Другие вопросы по тегам:

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