SFTPサーバーのログ取得設定

Linuxサーバーなどとファイルをやりとりするときに使用するSFTP。
このSFTPは必須の機能ですが、ファイルの転送などに関してのログが記録されません。

今回は簡単な設定で SFTPサーバーのログを記録してみます。

sftp-server のログ記録

OpenSSH Version 4.4p1以降では sftpのログ機能が実装されています。
設定するには sshd_config で設定します。

CentOSなどの場合には、/etc/ssh/sshd_config を編集します。

Subsystemとして sftp-server の指定がある場所に -l INFO などを追記します。

Subsystem  sftp /usr/libexec/openssh/sftp-server -l INFO

追記したらSSHサービスを再起動します。

# systemctl restart sshd.service

INFOは、ファイルの転送、許可の変更などに関する情報を記録します。
それ以上の情報が必要であれば、以下の値を指定することもできます。

QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3

しかし、実際には INFO 以上の VERBOSE などを指定しても情報量が多すぎて管理しにくくなる可能性があります。
通常利用であれば INFO レベルまでで十分に捜査の記録が取れます。

internal-sftp でのログ

internal-sftp を Subsystem として使用している場合にも同じようなログ指定ができます。

Subsystem   sftp    internal-sftp -f AUTH -l INFO

管理ユーザーは、sftp-server を使用し User Matchなどで特定ユーザーは internal-sftp を使用している場合も、個別に ログ指定をすることで必要なログだけを記録できます。

ただし chroot の場合には、ログディレクトリにアクセスできませんので、ログファイルのアクセスや設定に注意が必要です。