Pertanyaan Pencatatan SFTP: apakah ada cara?


Saya ingin tahu apakah ada cara untuk mencatat perintah yang diterima oleh server. Ini bisa semua perintah SSH, selama itu termasuk informasi tentang perintah yang berkaitan dengan transfer file.

Saya mengalami masalah dengan klien SFTP dan pembuatnya meminta log, tetapi saya tidak dapat menemukan log yang ada.

Saya mencari untuk masuk baik atau CentOS atau OS X (meskipun saya menduga jika mungkin, itu akan serupa pada keduanya).


82
2017-10-11 01:42






Jawaban:


OpenSSH versi 4.4p1 dan lebih tinggi (yang seharusnya menyertakan versi terbaru dengan CentOS 5) memiliki kapabilitas logging SFTP built-in - Anda hanya perlu mengkonfigurasinya.

Temukan ini di sshd_config Anda (dalam centos, file / etc / ssh / sshd_config):

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

dan mengubahnya menjadi:

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

INFO hanyalah satu tingkat rincian atas apa yang Anda lihat secara default - ini memberikan informasi rinci mengenai transfer file, perubahan izin, dll. Jika Anda memerlukan info lebih lanjut, Anda dapat menyesuaikan tingkat log yang sesuai. Berbagai level (dalam urutan detail) adalah:

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

Apa pun yang melebihi VERBOSE mungkin lebih banyak informasi daripada yang Anda cari, tetapi mungkin berguna.

Terakhir restart layanan SSH untuk memperbarui perubahan (centos):

systemctl restart sshd

86
2017-10-13 23:21



Saya tidak tahu Anda bisa login SFTP seperti itu, itulah yang saya butuhkan. Di mana itu menyimpan log? /var/log/auth.log? - Rory
Itu tergantung pada konfigurasi syslog Anda. Menggunakan INFO loglevel, sebagian besar syslog.conf default menempatkan entri di / var / log / messages. - rvf
Apakah mungkin untuk melakukan ini menggunakan server sftp internal? - Cian
ini bekerja sempurna untuk SFTP, tetapi bagaimana dengan SCP? Saya tidak menemukan entri di log untuk file yang disalin dengan perintah scp, meskipun log berhasil untuk sftp - Ale
Di Ubuntu, log ini default ke /var/log/auth.log. Menambahkan -f USER untuk itu Subsystem baris konfigurasi untuk mengirim mereka ke /var/log/syslog. - Throwaway Account 3 Million


Switch yang sama di sekitar logging untuk sftp-server juga berfungsi untuk internal-sftp. Berikut ini contoh dari / etc / ssh / sshd_config saya:

Subsystem   sftp    internal-sftp -f AUTH -l INFO

Dengan INFO level logging diaktifkan pesan akan mulai muncul di bawah / var / log / messages (setidaknya di bawah Distro Red Hat berdasarkan):

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

39
2018-05-29 12:42



Saya menemukan, bahwa dalam kasus saya hanya mencatat sesi sftp untuk root tetapi tidak untuk uji pengguna saya yang chroot. Saya tidak mengerti mengapa, apakah Anda punya ide? - JohnnyFromBF
Sepertinya Anda membutuhkan /dev/log di area chroot Anda. Sesuatu seperti 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. Pengguna masih akan memiliki akses tulis ke / dev / log itu, tetapi karena itu adalah soket, mereka tidak dapat melakukan banyak kerusakan jika semua yang mereka miliki adalah sftp. - sch
Terima kasih atas petunjuknya. Saya tidak bisa membuatnya bekerja, namun. Bisakah Anda sedikit lebih spesifik? - user1092608
FWIW: Di Wiki ArchLinux ada deskripsi yang bagus tentang cara mengaktifkan pencatatan di lingkungan chroot: wiki.archlinux.org/index.php/SFTP_chroot#Logging - Kaii