回答:
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
/var/log/auth.log
ます。config行に追加-f USER
してSubsystem
、それらをに送信します/var/log/syslog
。
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
/dev/log
chrootエリアで必要なようです。何かのようにsudo mkdir /chrooted/area/dev
、sudo touch /chrooted/area/dev/log
、sudo chmod 511 /chrooted/area/dev
、sudo chattr +i /chrooted/area/dev
、sudo mount --bind /dev/log /chrooted/area/dev/log
。ユーザーはその/ dev / logへの書き込みアクセス権を保持しますが、ソケットであるため、アクセス権がすべての場合はそれほど害はありませんsftp
。
上記のコメントを明確にするために:
jail(chroot環境)を使用してsftpを構成している場合、追加の構成作業なしではログに記録できません。ログをchroot環境に書き込むことはできません。マウントバインドまたはソケットを作成する必要があります。ソケットを使用することをお勧めします。これは、syslog-ngとrsyslog(およびそれ以上)によって提供される機能です。
syslog-ngを使用している場合は、https://wiki.archlinux.org/index.php/SFTP_chroot#Loggingをご覧ください。rsyslogを使用している人にとって、https: //wiki.kairaven.de/open/os/linux/sftpssh はあなたの友達です。
お役に立てば幸いです。