Я полагаю, что моя машина Linux обоснованно защищена от внешнего входа в систему. Но так как я - mildy параноик, я хотел бы быть предупрежденным, когда существует попытка входа в систему, предпринятая к серверу, или успешная или нет.
Сканируя сайт, я не могу найти унисон способом сделать это. Насколько я могу сказать, для неудачных попыток logcheck был рекомендован, и для успешных sshrc или (возможно, еще больше) pam_exec метод. Я люблю two-stones-in-one-throw методы и задаюсь вопросом, существует ли какой-либо из Вас, которых знают профессионалы, если способ заставить один из этих методов делать обоих? PAM в особенности, кажется, умное место, чтобы сделать вещи, так как это, в конце концов, от того, что я могу сказать, система централизованной аутентификации на моей машине человечности.
Совет?
Хорошо Вы могли использовать 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/checkauth
(и chmod u+x
это), и затем можно добавить корень crontab строка с sudo crontab -e
:
*/10 * * * * /usr/local/sbin/checkauth
Палка a MAILTO="email@example.com"
строка наверху файла крона также и (если существует установленный mailserver — установка postfix
если не) Вы получите электронные письма вывода, эквивалентность, там любой вывод.