Найти тему
Записки хостера

Разбираемся в FTP-логах.

Полезный журнал.
При администрировании сайтов, расположенных на shared-хостинге (его ещё называют виртуальным), иногда может возникнуть необходимость узнать, когда и откуда в тот или иной файл сайта были внесены изменения, либо когда этот файл был добавлен на сайт или удалён с него. Если хостер сайта использует на сервере службу proftpd для работы пользователей с серверами по протоколу FTP, а вероятность этого стремится к 100%, то эта небольшая статья поможет вам разобраться в логах данной службы, чтобы ответить на заданные выше вопросы.

Первым делом.
Зачастую хостеры не настраивают ведение журналов службой FTP в разные файлы для разных пользователей. Соответственно, логи всех пользователей «сваливатются» в одну кучу. То есть, сначала запрашиваем логи у хостера. Здесь нужно понимать, какие именно журналы вам нужны. Служба proftpd ведёт их два типа: лог авторизаций, который фиксирует имя заходящего на сервер пользователя, дату и время входа, а также IP адрес, с которого произведён вход. Лог крайне полезный, но малоинформативный в плане понимания действий, которые производил пользователь на сервере. Нас интересует второй тип журнала: содержащий информацию о внесённых пользователем на аккаунте изменениях. Такой лог называется xferlog. Поэтому, помимо лога авторизаций, запрашиваем у хостера и этот лог.

Расшифровка.
Итак, открываем лог любым доступным текстовым редактором и наблюдаем примерно следующее:
--------------------------------------------------------------------------------------------
Thu Jan 30 03:44:28 2020 0 85.112.26.105 5413 /www/example.com/index.html a _ i r u9012 ftp 0 * c
Thu Jan 30 04:00:33 2020 5 131.173.84.6 1124 /dataout/R31-2.txt a _ d r u9012_data ftp 0 * c
Thu Jan 30 04:56:16 2020 0 12.34.23.127 7849 /www/example.com/themes/dark/images/slider-top.jpg b _ o r u9012_dev ftp 0 * c

--------------------------------------------------------------------------------------------
Если при настройке proftpd со стороны хостера не было выбрано иного порядка следования записей, то порядок будет именно такой. Давайте разбираться на примере первой строки (с отсылками к другим строкам, если в разбираемом пункте есть другие варианты ).
1. «Thu Jan 30 03:44:28 2020» — дата и время, в которое было выполнено действие.
2. «0» — длительность соединения.
3. «85.112.26.105» — IP пользователя, выполняющего действие.
4. «5413» — размер обарабатываемого файла (байты).
5. «/www/example.com/index.html» — имя файла, с которым выполнялось действие.
6. «a» — тип трансфера. Здесь возможны варианты:
-
«a» (передача файла в типе ASCII, наш случай);
-
«b» (передача файла в бинарном типе, в третьей строке лога).
7. «_» — тип специального действия. Варианты:
-
«_» (никаких действий не произведено, как в нашем случае);
-
«C» (сжатие файла при передаче);
-
«U» (распаковка файла при передаче).
8. «i» - направление трафика. Варианты:
-
«i» (входящий трафик, то есть, файл был сохранён со внешнего источника на сервер, как у нас);
-
«o» (исходящий трафик, то есть файл был скачан с FTP-сервера на внешний источник, как в третьей строчке нашего лога);
-
«d» (удаление файла, во второй строчке лога именно этот случай).
9. «r» - тип доступа к серверу. Варианты:
-
«r» (авторизованный при помощи логина и пароля пользователь);
-
«a» (пользователь без авторизации, то есть анонимный).
10. «u9012» - имя пользователя, выполняющего действия.
11. «ftp» - название выполнившего действия с файлом сервиса.
12. «0» - тип авторизации, использованный пользователем (если была авторизация). Варианты:
-
«0» (как в нашем случае — обычный);
-
«1» (RFC931).
13. «*» - ID пользователя, если доступно. Если не доступно, то отображается, как в нашем логе, символ звёздочки.
14. «c» - статус завершения выполняемой команды. Варианты:
-
«c» (наш вариант, означающий, что команда выполнена успешно);
-
«i» (выполнение команды прервано).
На этом всё. Расшифровка завершена.

Итог.
Эту статью вполне можно использовать, как шпаргалку при работе с FTP-логами. Надеемся, информация может кому-то пригодиться.

Если у Вас остались вопросы, пишите в комментариях, мы обязательно на них ответим, а если Вам понравилась статья, то ставьте 👍 и подписывайтесь на наш канал. ✅