É possível forçar o SFTP em vez de permitir o fallback do SCP?

3

Eu tenho um servidor Red Hat 5.4 com o openssh OpenSSH_4.3p2 e tenho tentado configurar os logs do scp / sftp no meu servidor, mas estou com alguns problemas.

Eu segui as instruções nesta outra postagem . Isso funciona muito bem se os usuários optarem por transferir arquivos usando o pscp ou um cliente SFTP, como cyberduck, filezilla, winscp, etc. Nesses casos, posso saber a árvore de diretórios que foi navegada.

No entanto, se os usuários escolherem fazer rsync (com scp como protocolo) ou se chamarem o comando scp explicitamente, a única coisa que é registrada é o evento de login / logout. A árvore real navegada para transferir os arquivos não aparece na trilha de log.

Existe uma maneira de desabilitar o scp enquanto ainda permite o sftp? Ou existe uma maneira de forçar os comandos scp a se comportarem como sftp?

Talvez este problema não exista em portas openssh mais recentes. No entanto, como a Red Hat não lançará mais atualizações para minha versão 5.4 do sistema operacional (e não queremos atualizar o servidor), estou preso ao que tenho.

Alguma sugestão?

    
por mmgm 19.02.2013 / 16:50

1 resposta

6

Não tenho certeza sobre o registro do SCP . Eu dei uma olhada nisso. Todo scp faz é chamar scp na outra extremidade em um modo ligeiramente diferente. sshd deve ser capaz de registrar o que é exec. De o código , parece que sshd precisa de LogLevel=DEBUG para escrever o exec, mas isso não está saindo para mim no DEBUG ou em qualquer nível superior (6.1p1). Infelizmente, uma vez que sshd tenha executado algo, o binário em execução pode fazer o que quiser embaixo, então ajudaria se o binário também implementasse o registro em log. Não há registro em log real em scp , de modo que seria necessário um remendo de alguns tipos.

Isso imediatamente leva meu cérebro a escrever um invólucro para scp para pelo menos obter alguma informação.

mv /usr/bin/scp /usr/bin/scp.ori; touch /usr/bin/scp; chmod 755 /usr/bin/scp;

Em seguida, coloque o seguinte em /usr/bin/scp

#!/bin/sh

logger -i -p auth.info "scp ran with [$*]"
/usr/bin/scp.ori "$@"

O script seria apagado pelos lançamentos e é um pouco desonesto. Você só vê realmente um lado do comando scp que pode ser um pouco breve (por exemplo, scp -r user@host:/home/user/ ./ é -r -f /home/matt/ no host)

Também é importante notar que se as pessoas tiverem acesso ao shell, elas poderão copiar o que quiserem sem usar scp ou sftp.

< end edit >

É possível forçar um Subsytem para um login. O seguinte é para membros do grupo sftponly que eu quero ser capaz apenas de acessar um local chroot específico para que seus usuários tenham um shell de /usr/sbin/nologin . Eu não acho que você vai precisar de mais de ForceCommand em sshd config.

Subsystem       sftp    internal-sftp
Match group sftponly
         ChrootDirectory /pub/user/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
         PasswordAuthentication yes

Espero que você possa anexar seu registro e você esteja ausente.

    
por 19.02.2013 / 17:38