По сути, я хочу регистрировать каждый файл, отправленный или полученный через SCP на сервере.

Допустим, пользователь делает SCP с Сервера-1 на Сервер-2. Я выяснил способ получения логов на стороне отправителя, но как получить то, что было передано на стороне получателя?

Я хочу, чтобы журналы на стороне получателя содержали имена файлов, которые были переданы ему через SCP.

Также для получения журналов на стороне отправителей я использую мой скрипт bash, который сначала сохраняет имя файла в файл журнала, а затем использует SCP для его передачи. Есть ли лучший способ сделать это?

Заранее спасибо за любое предложение.

2 ответа2

0

Вы, вероятно, используете программный пакет OpenSSH. Утилита OpenSSH scp ничего не регистрирует. Он поддерживает отладочный вывод для основного сеанса SSH, но он не будет регистрировать фактические передачи файлов, которые происходят.

Точно так же сервер OpenSSH может быть настроен для регистрации сведений о том, что он делает, и он может быть настроен для регистрации факта, что пользователь подключился и запустил scp , но он не будет регистрировать фактические передачи файлов, которые происходят.

Если вы не можете заставить этих пользователей использовать SFTP, вам доступны три подхода:

  1. Исследовать альтернативные (другими словами, коммерческие) серверы SSH/SFTP/SCP. Как правило, они должны поддерживать протоколирование передачи файлов.

  2. Замените утилиту scp на сервере той, которая регистрирует нужные вам данные. OpenSSH является открытым исходным кодом. Кто-то, кто знает, как программировать на C для Unix, может загрузить исходный код и изменить его.

  3. Замените утилиту scp на "обертку", которая запускает оригинальную программу scp и следит за тем, что она делает. Для Unix существуют инструменты отладки, которые могут отслеживать, что делает другой процесс.

Мне нужно было регистрировать передачи scp один раз, и я использовал третий подход. Я написал скрипт на Perl, который запустил оригинальную программу scp под strace. Strace выведет имена файлов, которые открываются и закрываются процессом scp. Скрипт Perl проанализировал вывод strace и выяснил, какие файлы были переданы.

0

Вы можете попробовать заменить команду scp на сервере модифицированной версией, которая делает то, что вам нужно. scp - очень простая программа, и добавление в нее кода регистрации не должно быть сложной задачей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .