web-dev-qa-db-ja.com

SFTPロギング:方法はありますか?

サーバーが受け取ったコマンドをログに記録する方法があるかどうか疑問に思っています。ファイル転送に関連するコマンドに関する情報が含まれている限り、すべてのSSHコマンドを使用できます。

SFTPクライアントに問題があり、作成者がログを要求していますが、既存のログを見つけることができません。

CentOSとOS Xの両方またはどちらかでログオンしようとしています(可能かどうかは疑わしいのですが、両方で同様です)。

94
Darryl Hein

OpenSSHバージョン4.4p1以降(CentOS 5の最新バージョンを含む必要があります)には、SFTPロギング機能が組み込まれています。設定するだけです。

これをsshd_configで見つけます(centosでは、ファイル/ etc/ssh/sshd_config):

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

それを次のように変更します。

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

INFOは、デフォルトで表示される内容の1レベルの詳細にすぎません。ファイル転送、アクセス許可の変更などに関する詳細情報を提供します。詳細情報が必要な場合は、それに応じてログレベルを調整できます。さまざまなレベル(詳細順)は次のとおりです。

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

VERBOSEを超えるものは、おそらくあなたが探しているよりも多くの情報ですが、役に立つかもしれません。

最後にSSHサービスを再起動して変更(centos)を更新します。

systemctl restart sshd
96
rvf

Sftp-serverのロギングに関する同じスイッチは、internal-sftpでも機能します。これが私の/ etc/ssh/sshd_configからの例です:

Subsystem   sftp    internal-sftp -f AUTH -l INFO

INFOレベルのロギングを有効にすると、メッセージが/ var/log/messages(少なくともRed Hatベースのディストリビューション)に表示されるようになります。

May 27 05:58:16 test-server sshd[20044]: User child is on pid 20049
May 27 05:58:16 test-server sshd[20049]: subsystem request for sftp by user test-user
May 27 05:58:16 test-server internal-sftp[20050]: session opened for local user test-user from [192.168.1.1]
May 27 05:58:16 test-server internal-sftp[20050]: received client version 3
May 27 05:58:16 test-server internal-sftp[20050]: realpath "."
May 27 05:58:21 test-server internal-sftp[20050]: opendir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: closedir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: lstat name "/home/test-user/upload"
May 27 05:58:21 test-server internal-sftp[20050]: realpath "/home/test-user/upload/"
May 27 05:58:21 test-server internal-sftp[20050]: stat name "/home/test-user/upload"
May 27 05:58:24 test-server internal-sftp[20050]: open "/home/test-user/upload/test-file.pdf" flags WRITE,CREATE,TRUNCATE mode 0664
May 27 05:58:25 test-server internal-sftp[20050]: close "/home/test-user/upload/test-file.pdf" bytes read 0 written 1282941
44
slm

上記のコメントを明確にするために:

Jail(chroot環境)を使用してsftpを構成している場合、追加の構成作業がなければログに記録できません。ログをchroot環境で書き込むことはできません。マウントバインドまたはソケットを作成する必要があります。ソケットの使用をお勧めします。これは、syslog-ngとrsyslog(およびそれ以上)によって提供される機能であるためです。

Syslog-ngを使用している人は this link を見てください。 rsyslogを使用している人向け。 お役に立てれば幸いです

2
Phil