Среда, 07 Ноябрь 2012 17:52

Как расшифровать логи FTP сервера

На днях появилась задача расшифровать xferlog. Это такой лог, который ведет демон proftpd (FTP-сервер такой). С этим демоном автор работает довольно давно, но всегда довольствовался информацией из proftpd.log, который отображает кто, когда и куда авторизовался. 

 

Когда же понадобилась детальная информация по тому, кто, куда, что залил/удалил/скачал, на помощь пришёл xferlog. Однако, открыв его, автору пришлось почесать лоб и отправиться гуглить на тему расшифровки лога.

Ибо в записи вида:
Sat May 05 10:41:25 2012 0 192.168.2.21 3370 /somedir/somefile.php b _ d r ftplogin ftp 0 * c
были ясны только дата происшествия, адрес виновника, размер файла, имя файла и логин FTP-аккаунта, остальные данные били лишь обычным набором значков.

Измученный кривыми запросами, Гугл наконец-таки выдал некоторую полезную информацию.

Итак, по порядку записи данные xferlog следует читать так:
1. Текущее время в формате DDD MMM dd hh:mm:ss YYYY
в нашем случае : Sat May 05 10:41:25 2012

2. Длительность трансфера в секундах
в нашем случае: 0

3. Адрес инициации трансфера
у нас: 192.168.2.21 

4. Размер файла в байтах
наш случай: 3370

5. Полное имя файла
в нашем логе такое: /somedir/somefile.php

6. Тип трансфера в двух вариантах
- a (для передачи файлов в ASCII-типе)
- b (для передачи файлов в бинарном типе)
в нашем случае: b

7. Флаг спец. действия (один или несколько)
- C (файл был сжат)
- U (файл был рассжат)
- T (файл был затарен)
- _ (никаких действий не произведено)
наш лог показывал: _

8. Направление трансфера
- o (исходящий трансфер)
- i (входящий трансфер)
- d (удаление файла)
у нас залогировано: d

9. Вид доступа к серверу
- a (анонимный)
- r (аутентификация по логину и паролю)
наш лог сообщал: r

10. Имя пользователя
у нас: ftplogin

11. Имя сервиса, принявшего файл (обычно FTP)
поскольку других сервисов у нас и нет, в лог попало: ftp

12. Использованный метод аутентификации
- 0 (обычный)
- 1 (RFC931)
у нас: 0

13. Идентификатор авторизовавшегося пользователя. В случае, если такой ID недоступен, отдаётся *(звездочка), как и было в нашем случае.

14. Статус корректного завершения трансфера
- c (трансфер завершен)
- i (трансфер прерван).
у нас: c

Таким образом, нашу запись можно расшифровать так: 
Sat May 05 10:41:25 2012 0 192.168.2.21 3370 /somedir/somefile.php b _ d r ftplogin ftp 0 * c
В субботу, 5 мая 2012 года, в 10:41 утра, за 0 секунд, на сервере с адреса 192.168.2.21, был успешно удалён файл, размером 3370 байт, с именем /somedir/somefile.php, при помощи сервиса FTP, обычной авторизации пользователя ftplogin, бинарного типа трансфера, без использования сжатия.

2
Прочитано 2359 раз
Serg Chaika

Интернет-маркетолог с многолетним опытом  создания и продвижения сайтов. В общем портфолио более 150 клиентов 

Сайт: sergchaika.com/
Продвижение сайтов в ТОП