एसएफटीपी लॉगिंग: क्या कोई रास्ता है?


91

मुझे आश्चर्य हो रहा है कि क्या सर्वर द्वारा प्राप्त कमांड को लॉग करने का कोई तरीका है। यह सभी SSH कमांड हो सकता है, जब तक कि इसमें फाइल ट्रांसफर से संबंधित कमांड की जानकारी शामिल हो।

मैं एक एसएफटीपी ग्राहक के साथ समस्या कर रहा हूं और निर्माता लॉग के लिए पूछ रहा है, लेकिन मैं किसी भी मौजूदा लॉग को खोजने में असमर्थ हूं।

मैं दोनों या तो CentOS या OS X पर लॉग इन करना चाह रहा हूँ (हालाँकि मुझे संदेह है कि यदि यह संभव है, तो यह दोनों पर समान होगा)।


जवाबों:


94

OpenSSH संस्करण 4.4p1 और ऊपर (जिसमें CentOS 5 के साथ नवीनतम संस्करण शामिल होना चाहिए) में SFTP लॉगिंग की क्षमता है - आपको इसे कॉन्फ़िगर करने की आवश्यकता है।

इसे अपने sshd_config में खोजें (सेंटो, फ़ाइल / etc / ssh / sshd_config में ):

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

और इसे बदलें:

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

INFO डिफ़ॉल्ट रूप से आपके द्वारा देखे जा रहे विवरण का केवल एक स्तर है - यह फ़ाइल स्थानांतरण, अनुमति परिवर्तन आदि के बारे में विस्तृत जानकारी प्रदान करता है। यदि आपको अधिक जानकारी की आवश्यकता है, तो आप लॉग स्तर को तदनुसार समायोजित कर सकते हैं। विभिन्न स्तर (विस्तार के क्रम में) हैं:

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

VERBOSE से अधिक कुछ भी संभवतः आप के लिए देख रहे हैं की तुलना में अधिक जानकारी है, लेकिन यह उपयोगी हो सकता है।

अंत में परिवर्तनों को अपडेट करने के लिए SSH सेवा को फिर से शुरू करें (सेंटो):

systemctl restart sshd

1
मुझे नहीं पता था कि आप एसएफटीपी को लॉग इन कर सकते हैं, यही मुझे चाहिए। यह लॉग कहाँ संग्रहीत करता है? /var/log/auth.log?
रोरी

4
यह आपके syslog कॉन्फ़िगरेशन पर निर्भर करता है। INFO loglevel का उपयोग करते हुए, अधिकांश डिफ़ॉल्ट syslog.conf की उन प्रविष्टियों को / var / log / संदेश में जगह देता है।
rvf

4
क्या आंतरिक sftp सर्वर का उपयोग करके ऐसा करना संभव है?
सियान

यह एसएफटीपी के लिए पूरी तरह से काम करता है, लेकिन एससीपी के बारे में क्या? मुझे scp कमांड के साथ कॉपी की गई फाइल के लिए लॉग में कोई एंट्री नहीं मिली, हालाँकि sftp के लिए लॉग सफल रहा था
Ale

2
उबंटू पर, ये लॉग इन डिफ़ॉल्ट हैं /var/log/auth.log। उन्हें भेजने के -f USERलिए उस Subsystemकॉन्फ़िग लाइन में जोड़ें /var/log/syslog
थ्रो अवे अकाउंट

43

Sftp-server के लिए लॉगिंग के आसपास भी यही स्विच आंतरिक-sftp के लिए काम करता है। यहाँ मेरे / etc / ssh / sshd_config से एक उदाहरण दिया गया है:

Subsystem   sftp    internal-sftp -f AUTH -l INFO

INFO स्तर लॉगिंग सक्षम संदेशों के साथ / var / log / संदेश (कम से कम Red Hat आधारित Distros के तहत) दिखाना शुरू कर देंगे:

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

2
मुझे पता चला, कि मेरे मामले में यह केवल रूट के लिए sftp सत्रों को लॉग करता है, लेकिन मेरे क्रोकेटेड उपयोगकर्ता परीक्षण के लिए नहीं। मुझे समझ नहीं आ रहा है, क्या आपके पास कोई विचार है?
जॉनीफ्रॉमबीएफ

4
ऐसा लगता है कि आपको /dev/logअपने चिरोट क्षेत्र में ज़रूरत है। की तरह कुछ 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। उपयोगकर्ता अभी भी उस / देव / लॉग तक पहुंच लिखेंगे, लेकिन जैसा कि यह एक सॉकेट है, वे बहुत नुकसान नहीं कर सकते हैं यदि उनके पास सभी पहुंच है sftp
sch

1
संकेत के लिए धन्यवाद। मैं इसे काम करने के लिए प्रतीत नहीं कर सकता, हालांकि। क्या आप कुछ अधिक विशिष्ट हो सकते हैं?
user1092608

4
: FWIW: ArchLinux विकी में वहाँ कैसे chroot वातावरण में लॉगिंग सक्षम करने पर एक अच्छा वर्णन है wiki.archlinux.org/index.php/SFTP_chroot#Logging
काइ

0

उपरोक्त टिप्पणियों को स्पष्ट करने के लिए:

यदि आपके पास एक जेल (चेरोट पर्यावरण) का उपयोग करके sftp कॉन्फ़िगर किया गया है, तो आप अतिरिक्त कॉन्फ़िगरेशन affort के बिना लॉग इन नहीं कर सकते। लॉग को चेरोट वातावरण में नहीं लिखा जा सकता है, आपको एक माउंट बाइंड या सॉकेट बनाने की आवश्यकता है। मैं सॉकेट का उपयोग करने की सलाह दूंगा, क्योंकि यह एक सुविधा है जो syslog- एनजी के साथ-साथ rsyslog (और शायद बहुत अधिक) द्वारा वितरित की जाती है।

जो लोग syslog-ng का उपयोग कर रहे हैं, उनके लिए https://wiki.archlinux.org/index.php/SFTP_chroot#Logging पर एक नज़र है । जो लोग rsyslog का उपयोग कर रहे हैं, उनके लिए https://wiki.kairaven.de/open/os/linux/sftpssh आपका दोस्त है।

उम्मीद है की वो मदद करदे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.