История: Как-то давно писал статью на Хабре, но что-то не взлетела, решил вот утащить её в свой блог, может вторая жизнь породит новые веяния в умах =)
Наверняка многие использовали для записи сессий командной строки программу script.
А кто-нибудь задавался вопросом, а можно ли использовать её в рамках повышения безопасности/мониторинга/проверки адекватности пользователей системы?
Любопытства ради решил прикрутить script ко всем пользователям системы и посмотреть, что из этого выйдет…
#!/bin/sh
if [ "$TERM" != "" ]; then
DATE=`date +%F.%H.%M`
FOLDER="/tmp/"
exec script -q -t $FOLDER$USER.$DATE 2> $FOLDER$USER.$DATE.time
else
/bin/sh $*
fi
Добавляем такой скрипт в /etc/profile (в gentoo сохранил это в файл bash.sh и поместил его в директорию /etc/profile.d/).
Можно проверять работоспособность, заходя по SSH или любым другим способом.
В /tmp должны появиться файлы вида test.2010-03-25.20.01 и test.2010-03-25.20.01.time.
Файл c .time содержит в себе всю информацию по таймингу сессии.
Если файлы создались, дабы проверить плоды, запускаем:
scriptreplay test.2010-03-25.20.01.time test.2010-03-25.20.01
и наслаждаемся просмотром.
Хочу сразу сказать недоработки:
1 Если подключаться ssh user@host /bin/bash -i — то ничего не логируется =(
Основной интерес к этому способу появился от желания последить за работой новых админов, посмотреть их способы (не стоять же за спиной у бедняги).
Так же можно создать отдельный каталог вместо /tmp, например /opt/sessions и задать права:
chmod 733 /opt/sessions
Дабы все сессии могли писать, но юзеры не могли сделать листинг этой дирекории.