Как научить сервер сообщать вам по почте о логине root
Задача: нужно в максимально короткий срок узнать, зашел ли кто под пользователем root на сервер, от какого пользователя была запущена команда su и какой IP посмел такое сделать.
Проверка каждого пользователя
По сути, все просто, если у вас работает Postfix или любой другой почтовик. Все, что вам нужно, это добавить в конец файла
/root/.bash_profile
следующую строку:
echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -f1`" it@adminunix.ru
для FreeBSD echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `hostname -f` `who | cut -f2 | cut -f1`" it@adminunix.ru
Советую заранее протестировать эту строчку, просто выполнив её. На почту должно прийти сообщение примерно такого вида:
72.22.22.1462 ALERT - Root Shell Access on: Sun Dec 11 00:58:17 MSK 2011 user pts/0 2011-12-10 21:08 (72.22.22.1462) user pts/2 2011-12-10 21:17 (72.22.22.1462)
Эту же строчку можно добавить всем пользователям, которые имеют доступ на сервер по SSH
Проверка для всех пользователей
Этот вариант стоит использовать, если важно получать сообщения о каждом зарегистрировавшемся пользователе. Для этого строчку
echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -f1`" it@adminunix.ru
для FreeBSD echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `hostname -f` `who | cut -f2 | cut -f1`" it@adminunix.ru
мы добавляем в конец файла /etc/profile. Теперь каждый раз, как какой-либо пользователь пройдет аутентификацию на сервере, вы сможете получить об этом сообщение.