Задать вопрос

Существуют ли SSH-proxy для логирования?

Задача – из соображений безопасности требуется логировать все действия пользователя (выполнение команд) в ssh терминале, для возможности анализа истории (если потребуется).

Возможно, существует какое-то ПО что-то типа "SSH-proxy", который пропускает через себя SSH трафик и при этом ведет лог на уровне использования команд/"терминал-шетов"?

Обычный сценарий:
73422a64544e474885d09716cb958e63.png

C SSH-proxy:
81cbc1575629466bbfe2d13de7a2c6f5.png

Или м.б. стоит смотреть в каком-то другом направлении для решения текущей задачи?
Спасибо.
  • Вопрос задан
  • 2843 просмотра
Подписаться 8 Сложный Комментировать
Пригласить эксперта
Ответы на вопрос 2
Попробуйте ELF библиотеку snoopy (snoopy logger). Есть готовые пакеты под большинство rpm/deb-систем.
Логирует все исполняемые консольные команды, все запускаемые скрипты и тд. Обойти можно только отключив прелоад библиотеки (собственно надо иметь права суперпользователя).
Вывод в логах крайне подробный и информативный. Пример:
Aug 10 06:30:01 ctrx snoopy[15967]: [uid:0 sid:15967 tty: cwd:/root filename:/usr/bin/scp]: scp www-data@***********:/home/www-data/downld02.txt /var/www/ctrx.com/collect/downld02.txt
Aug 10 06:30:01 ctrx snoopy[15968]: [uid:0 sid:15968 tty: cwd:/root filename:/srv/www/forum.ctrx.com/bin/collect-stats]: /srv/www/forum.ctrx.com/bin/collect-stats
Aug 10 06:30:01 ctrx snoopy[15966]: [uid:0 sid:15966 tty: cwd:/root filename:/srv/www/www.ctrx.com/bin/process-collect-data]: /srv/www/www.ctrx.com/bin/process-collect-data
Aug 10 06:30:01 ctrx snoopy[15969]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/sync-video]: /usr/bin/sync-video
Aug 10 06:30:01 ctrx snoopy[15971]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/basename]: basename /usr/bin/sync-video
Aug 10 06:30:01 ctrx snoopy[15973]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/flock]: flock -n 9
Aug 10 06:30:01 ctrx snoopy[15974]: [uid:0 sid:15969 tty: cwd:/root filename:/usr/bin/rsync]: rsync -a -L --log-file=/var/log/sync.log www-data@**********:/srv/video /var/www/ctrx.com/alias.ctrx.com/docs/projects/ctrx.com/
Aug 10 06:30:02 ctrx CRON[15963]: pam_unix(cron:session): session closed for user root
Aug 10 06:30:02 ctrx snoopy[15977]: [uid:106 sid:44096 tty: cwd:/ filename:/bin/cat]: cat /proc/diskstats


Как видно логируется точная дата, хост, uid, sid, терминал, pwd, команда

Далее можете уже на хосте настроить syslog-ng/rsyslog что бы отделять логи snoopy (по умолчанию летит все в auth.log) и если есть необходимость пересылать по tcp/udp на коллектор логов для дальнейшего анализа и хранения

Лично я пытаюсь его совместить со стандартным auth, authpriv и разделять по host/user что бы видеть кто когда логинился и что выполнял, а так же отсеять мусор от служебных пользователей типа zabbix (от zabbix-agentd), который выполняет кучу команд и в принципе не нужен в логах

P.S. Кстати благодаря этой библиотеке многое узнал о процессах протекающих в разных системах (Debian 6,7, Arch, RH5, Ubuntu Server 12.04/14.04) без моего ведома, о их "скрытой жизни". Особенно поразила Ubuntu Server в плохом смысле.
Еще был найден баг в Debian 6 в скриптах bash_completion. В Wheezy уже починили.
Ответ написан
Комментировать
@BAV_Lug
sreen вам в руки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы