Способ получения оповещений о попытках входа в систему, успешный или нет?
Я считаю, что моя Linux-машина достаточно защищена от внешнего входа в систему. Но так как я слегка параноик, я бы хотел получать оповещения, когда на сервер делается попытка входа в систему, независимо от того, успешна она или нет.
Просматривая сайт, я не могу найти единого способа сделать это. Насколько я могу судить, для неудачных попыток рекомендована logcheck, а для успешных - метод sshrc или (возможно, даже больше) pam_exec. Мне нравятся методы "два камня в одном броске", и мне интересно, знает ли кто-нибудь из вас, есть ли способ заставить один из этих методов сделать оба? PAM, в частности, кажется разумным местом для работы, поскольку, как я могу сказать, это центральная система аутентификации на моем компьютере с Ubuntu.
Любой совет?
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'
Это основано на этом ответе на SO Ф. Хаури.
Вот только ищу предметы с 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
Придерживайтесь MAILTO="[email protected]"
также в верхней части файла cron и (при условии, что установлен почтовый сервер - установите postfix
если нет) вы получите электронные письма с результатами, если есть какие-либо результаты.