bigton
@bigton
Web-программист

Как логировать действия пользователя OpenSSH SFTP?

Всем привет.

Создал пользователя с домашней директорией, дал ему доступ по SFTP.
Как логировать его действия: создал файл, удалил файл, изменил файл?

Спасибо!

useradd -m -d /var/www/mysite.ru -s /bin/false mysite

addgroup --system sftp
usermod -G sftp mysite

vi /etc/ssh/sshd_config
	Subsystem sftp internal-sftp
	Match Group sftp
	    ChrootDirectory %h
	    X11Forwarding no
	    AllowTcpForwarding no
	    ForceCommand internal-sftp
  • Вопрос задан
  • 2801 просмотр
Решения вопроса 1
bigton
@bigton Автор вопроса
Web-программист
Много чего прочитал, разные решения предлагаются, но я люблю простые решения.

ForceCommand internal-sftp меняем на
ForceCommand internal-sftp -l INFO -f USER
-f USER нужно чтобы логи сваливались не в auth.log, а в user.log. Таким образом логи авторизации по SSH не будут мешаться с логами работы по SFTP.

Дальше возникает проблема, при авторизации через SFTP пользователь ограничен своим окружением (ChrootDirectory), потому в лог файл ничего не пишется. Решить эту проблема можно по разному, но самое простое:
mkdir /var/www/mysite.ru/dev 
touch /var/www/mysite.ru/dev/log 
chmod 511 /var/www/mysite.ru/dev 
chattr +i /var/www/mysite.ru/dev 
mount --bind /dev/log /var/www/mysite.ru/dev/log

То есть просто монтируем в окружение пользователя /dev/log, отсутствие доступа к которому не позволяло вести логи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Ваш ответ на вопрос

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

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