it-swarm.asia

SFTP günlüğü: Bir yolu var mı?

Sunucu tarafından alınan komutları günlüğe kaydetmenin bir yolu olup olmadığını merak ediyorum. Dosya aktarımı ile ilgili komutlar hakkında bilgi içerdiği sürece tüm SSH komutları olabilir.

Bir SFTP istemcisiyle ilgili sorunlar yaşıyorum ve içerik oluşturucu günlükleri istiyor, ancak mevcut günlükleri bulamıyorum.

Ben (ya da mümkünse, her ikisi de benzer olurdu şüpheli olsa da) hem CentOS ya da OS X oturum açmak arıyorum.

94
Darryl Hein

OpenSSH 4.4p1 ve sonraki sürümleri (CentOS 5 ile en son sürümü içermelidir) yerleşik SFTP günlükleme özelliğine sahiptir - sadece yapılandırmanız gerekir.

Bunu sshd_config (centos, dosya / etc/ssh/sshd_config) içinde bulun:

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

ve şu şekilde değiştirin:

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

INFO, varsayılan olarak gördüğünüz şeyle ilgili yalnızca bir ayrıntı düzeyidir - dosya aktarımları, izin değişiklikleri vb. Hakkında ayrıntılı bilgi sağlar. Daha fazla bilgiye ihtiyacınız varsa, günlük düzeyini buna göre ayarlayabilirsiniz. Çeşitli seviyeler (detay sırasına göre):

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

VERBOSE ile ilgili herhangi bir şey muhtemelen aradığınızdan daha fazla bilgidir, ancak yararlı olabilir.

Son olarak değişiklikleri (centos) güncellemek için SSH hizmetini yeniden başlatın:

systemctl restart sshd
96
rvf

Aynı sftp-server için günlük kaydı anahtarları internal-sftp için de çalışır./Etc/ssh/sshd_config dosyamdan bir örnek:

Subsystem   sftp    internal-sftp -f AUTH -l INFO

INFO düzeyinde günlük kaydı etkinleştirilmiş mesajlar/var/log/mesajlarının altında görünmeye başlar (en azından Red Hat tabanlı Dağıtımların altında):

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

Yukarıdaki yorumları açıklığa kavuşturmak için:

Bir hapishane (chroot ortamı) kullanarak sftp yapılandırdıysanız, ek yapılandırma çabası olmadan oturum açamazsınız. Günlük, chroot ortamına yazılamaz, bir bağlama bağlaması veya yuva oluşturmanız gerekir. Syslog-ng yanı sıra rsyslog (ve belki çok daha fazla) tarafından sunulan bir özellik olduğundan, bir soket kullanmanızı tavsiye ederim.

Sistem günlüğü kullananlar için bu bağlantı adresine bir göz atın. Rsyslog kullananlar için; marım yardımcı olur .

2
Phil