Eu estudei isso uma vez quando tive que criar uma maneira de monitorar transferências SCP. O utilitário OpenSSH scp
não registra nada. Ele suporta a saída de depuração para a sessão SSH subjacente, mas isso não registra as transferências de arquivos reais que estão ocorrendo.
Da mesma forma, o servidor OpenSSH pode ser configurado para registrar detalhes sobre o que está fazendo e pode ser configurado para registrar o fato de que um usuário conectou e executou scp
, mas não registrará as transferências de arquivos reais ocorrendo.
Se você não conseguir que esses usuários usem o SFTP, existem três abordagens disponíveis para você:
-
Investigue servidores SSH / SFTP / SCP comerciais. Eles geralmente devem suportar o registro de transferências de arquivos.
-
Substitua o utilitário
scp
no servidor por um que registre os dados desejados. OpenSSH é open source. Alguém que saiba programar em C para Unix poderia baixar a fonte e modificá-la. -
Substitua o utilitário
scp
por um "wrapper" que inicialize o programa scp original e monitore o que ele faz. Existem ferramentas de depuração para o Unix que podem monitorar o que outro processo está fazendo.
Nós adotamos a terceira abordagem. Nós escrevemos um script Perl que lançou o programa scp original em strace . Strace mostraria os nomes dos arquivos sendo abertos e fechados pelo processo scp. O script Perl leu a saída strace e a converteu em entradas de log.