Полезный журнал.
При администрировании сайтов, расположенных на 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-логами. Надеемся, информация может кому-то пригодиться.
Если у Вас остались вопросы, пишите в комментариях, мы обязательно на них ответим, а если Вам понравилась статья, то ставьте 👍 и подписывайтесь на наш канал. ✅