Mức ghi nhật ký hoạt động trong SFTP


7

Tôi đang sử dụng CentOS, tôi đã tìm ra cách kích hoạt Ghi nhật ký SFTP. Sau đó, khi tôi kiểm tra nó bằng cách sử dụng FileZilla (từ Người dùng cuối) và tail -f /var/log/sftp.logtừ Máy chủ, tất cả các hoạt động từ Người dùng chắc chắn được ghi lại. Làm việc tuyệt vời!

Nhưng tôi vẫn có một số câu hỏi quan trọng liên quan đến vấn đề này, như dưới đây:

  • Trong tệp nhật ký, không có gì được đề cập về USERNAME. USernnam không được ghi / đề cập ở bất cứ đâu trong LOGS cho mọi hoạt động (Chỉ các hoạt động Đăng nhập / Đăng xuất FTP được ghi lại, dưới dạng một dòng trong số hàng triệu dòng. Nhưng nó không hiệu quả nếu tôi có nhiều hơn 1 người dùng)

Ví dụ:

Feb 27 02:59:31 myhostname sftp-server[13307]: session opened for local user michael from [10.xxx.xxx.xxx]
Feb 27 03:01:00 myhostname sftp-server[13312]: session opened for local user jimmy from [10.xxx.xxx.xxx]
...
...
Feb 27 04:00:34 myhostname sftp-server[13307]: mkdir name "/var/www/html/nnnnn" mode 0777
...
Feb 27 04:01:30 myhostname sftp-server[13307]: rmdir name "/var/www/html/nnnnn"
Feb 27 04:01:30 myhostname sftp-server[13307]: opendir "/var/www/html"
Feb 27 04:01:30 myhostname sftp-server[13307]: closedir "/var/www/html"

Không có tên người dùng được đề cập trong chính các dòng . (Ngoại trừ các hành động đăng nhập / đăng xuất)
Và một câu hỏi khác là:

  • Tôi có thể giữ nhật ký này trong bao lâu? Ý tôi là, có thể nếu tôi muốn LOG FILE luôn giữ các dòng bên trong đến 6 tháng qua không?

Có ý kiến ​​gì không?


Tôi đoán bởi vì bạn đăng nhập như tài khoản khách?
cuonglm

Không. Nó là NGƯỜI DÙNG TẠO bằng root useradd xxxxx(như bạn có thể thấy session opened for local user). Tôi sẽ thay đổi tên người dùng trong câu hỏi, điều này có vẻ khó hiểu.
夏 期

Câu trả lời:


7

Dưới đây là một số tệp nhật ký mẫu:

Feb 26 23:04:55 pegasus internal-sftp[32524]: session opened for local user joeuser from [123.123.123.123]
Feb 26 23:04:57 pegasus internal-sftp[32524]: opendir "/home/joeuser"
Feb 26 23:04:58 pegasus internal-sftp[32524]: closedir "/home/joeuser"
Feb 26 23:05:01 pegasus internal-sftp[32524]: opendir "/home/joeuser/"
Feb 26 23:05:01 pegasus internal-sftp[32524]: closedir "/home/joeuser/"
Feb 26 23:05:02 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:02 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:09 pegasus internal-sftp[32524]: session closed for local user joeuser from [123.123.123.123]

Người dùng nào là người nào?

Nếu bạn chú ý đến đầu ra ở trên, có một số giữa dấu ngoặc vuông , internal-sftp[32524]. Số này là 32524. Điều này thể hiện ID phiên cho người dùng joeuser, vì vậy bạn có thể sử dụng chuỗi này cùng với các thông báo liên quan đến thông tin đăng nhập của người dùng.

Xoay vòng gỗ

Bạn có thể sửa đổi lịch trình xoay vòng nhật ký cho các nhật ký khác nhau bên dưới /etc/logrotate.d/*. Mỗi tệp nhật ký thường có một tệp tương ứng trong thư mục này. Vì vậy, bạn có thể thay đổi syslogtệp ở đó, ví dụ hoặc tạo tệp của riêng bạn cho tệp sftp.loglogfile của bạn .

Cũng logrotatecó một tệp cấu hình, /etc/logrotate.confchứa các dòng này:

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

Đây là những gì các tệp trong /etc/logrotate.dthư mục sử dụng, nếu chúng không có cài đặt riêng. Vì vậy, hầu hết các tệp được xoay vòng hàng tuần và 4 trong số chúng được lưu giữ. Nếu bạn muốn giữ 6 tháng, thì sẽ là 4 * 6 = 24 cho rotatetùy chọn giữ 6 tháng.

Thí dụ

Cho rằng bạn đang đăng nhập /var/log/sftp.logthông qua syslogbạn sẽ cần thực hiện các thay đổi của mình trong tệp này , /etc/logrotate.d/syslog. Tệp của bạn sẽ trông như thế này sau khi thực hiện các thay đổi cần thiết:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Vì bạn đang sử dụng, syslogbạn cũng sẽ phải xoay tất cả các tệp nhật ký này, giữ nguyên giá trị trong 24 tuần. Nếu điều này không được chấp nhận thì quá trình hành động khác của bạn sẽ là tạo một phần riêng trong tệp này, syslognhư sau:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Điều này có một số tác dụng phụ, một là bạn sẽ khởi động lại syslogdaemon 2 lần mỗi tuần thay vì một lần. Nhưng cú pháp logroate không cho phép kiểm soát chi tiết lịch trình xoay vòng đối với các logfile nhất định trong khi không xoay vòng khác, khi các tệp nhật ký đang được tạo bởi cùng một dịch vụ, nghĩa là syslog.

Người giới thiệu


1
Có lẽ tôi có một số hiểu lầm về câu hỏi của @ 夏. anh ta muốn tên người dùng trước bất kỳ hoạt động nào của người dùng, không đăng nhập và đăng xuất sự kiện.
cuonglm

Chúa ơi! Tôi nghĩ rằng tôi biết!! Dấu ngoặc []là số phiên cho mỗi người dùng !!!
夏 期

Vậy là được rồi Tôi nghĩ rằng chúng tôi đã nhận nó. Nhưng không có cách nào để thay đổi số thành tên người dùng đúng không? nếu có thể, như một lợi thế.
夏 期

1
@ 夏 期 - nhìn vào đây, luyện tập.com / 2012/09/16 / . Có một tập lệnh bao bọc mà bạn có thể sử dụng như một cái móc để bắt đầu và kết thúc phiên. Tôi nghĩ rằng bạn có thể sửa đổi điều đó để in một thông điệp bắt đầu / kết thúc tùy chỉnh (cho người mới bắt đầu), ý tưởng khác sẽ là chuyển kênh đầu ra từ đó sftp-servervà tự viết lại một cách nhanh chóng.
slm

Chào slm, cảm ơn bạn rất nhiều. create your own for your sftp.log logfilecó nghĩa là, tôi nên chỉnh sửa /etc/logrotate.d/syslogvà sau đó đặt một bộ mới, như : /var/log/sftp.log { 24 weeks }? Tôi xin lỗi vì không thể hiểu đầy đủ về nó :(
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.