Часто возникает необходимость мониторить что происходит на удаленном сервере, часто приходится ставить key logger\activity logger для отслеживания действий пользователей. После выборки фриварного ПО не было найдено п��чти ничего интересного, много ограничений, много не стабильных реализаций.
Наткнулся на интересный проект Snoopy Logger



Установка данного продукта происходит обычно без особых трудностей

wget downloads.sourceforge.net/project/snoopylogger/snoopy-1.8.0.tar.gz
(данный пакет можно найти в репозиториях некоторых дистрибутивов, например убунты)
tar -zxf snoopy-1.8.0.tar.gz
cd snoopy-1.8.0/
./configure --help (посмотреть опции)

например
--with-syslog-facility=FACILITY
--with-syslog-level=LEVEL


можно задать логирование только root
для этого нужно перед /configure отредактировать файл snoopy.h
было
#define SNOOPY_ROOT_ONLY 0
стало
#define SNOOPY_ROOT_ONLY 1

./configure
make
make install

install -m 755 -d /usr/local/lib
install -m 755 snoopy.so /usr/local/lib/snoopy.so

Snoopy shared library installed in /usr/local/lib.
Run 'make enable' to actually enable snoopy logging.

make enable
./enable.sh /usr/local/lib
Snoopy enabled in /etc/ld.so.preload. Check syslog messages for output.


/etc/init.d/syslog restart (или rsyslog)

вывод в логи можно искать по след файлам

/var/log/auth*
/var/log/messages
/var/log/secure


Если не хочется парсить кашу из системных логов и Snoopy, можно сделать так:

touch /var/log/snoopy.log
vim /etc/syslog.conf (если стоит обычный syslog)

Добавляем в конфиг
!snoopy
*.* /var/log/snoopy.log

По такому же принципу можно убрать из системных логов мусор от снупи.

Логи выглядят следующим образом
Apr 6 06:46:26 asterisk snoopy[12664]: [uid:0 sid:12595 tty:/dev/pts/2 cwd:/home/develop filename:/usr/bin/nano]: nano /etc/asterisk/extensions.conf
Apr 6 07:56:19 asterisk snoopy[13267]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/root filename:/sbin/ifconfig]: ifconfig
Apr 6 07:56:26 asterisk snoopy[13268]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/root filename:/bin/touch]: touch /opt/1.txt
Apr 6 07:57:56 asterisk sudo: felvis : TTY=pts/3 ; PWD=/home/felvis ; USER=root ; COMMAND=/sbin/ifconfig eth0
Apr 6 07:57:56 asterisk snoopy[13277]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/home/felvis filename:/sbin/ifconfig]: /sbin/ifconfig eth0


Так же можно перенаправить через syslog на другую машину и там развести по нужным логам или веб приложениям.
Вообщем каждый сам решит для себя как можно использовать эту утилиту.

Для того чтобы удалить потом Snoopy, достаточно очистить файл /etc/ld.so.preload содержащий ссылку на .so и удалить сам файл /usr/local/lib/snoopy.so

зыЖ В этой мини статье я не рассматривал этическую сторону использования данного рода программ, оставив это на усмотрение читателей.