Bloqueando o usuário do SFTP no cygwin

1

Eu configurei um usuário para o ssh no Windows Server 2008 R2.

Consegui alterar o diretório padrão.

A única parte que não consegui descobrir é como restringir o usuário a apenas esse diretório.

Em outras palavras, não quero que o usuário possa alterar o diretório.

Por favor, informe.

EDITAR:

Aqui é onde eu estou:

  • Cygwin instalado
  • Usuário ( James ) criado nas janelas
  • Grupo (SftpUser) criado nas janelas
  • SftpUser não está aparecendo em / etc / passwd
  • em vez disso, há algum grupo None do qual o James é membro
  • posso fazer login com meu usuário
  • cygdrive e dev estão listados (eu não quero isso)
  • cygdrive está vazio

Aqui está o cenário

Eu quero que James de sftpUser group seja restrito a sua pasta de uploads. O caminho está em uma unidade externa:

D:\uploads\james_folder\

no cygwin

/cygdrive/d/uploads/james_folder/

Eu não me importo de ter a restrição em

/home/james/upload

E, em seguida, monte o diretório no caminho inicial, mas parece que o cygwin não é empacotado com o samba.

sshd_config

Match user james
    ChrootDirectory /home/james/upload/
    ForceCommand internal-sftp
    
por meda 29.08.2014 / 18:29

2 respostas

1

Eu configurei o SFTP sobre o cygwin recentemente e percebi que não podemos esconder os seguintes diretórios:

  • / cygdrive
  • / dev

Como você pode estar ciente de que o / path / to / sftp tem que ser de propriedade da raiz e não pode ser gravado por nenhum outro usuário ou grupo, você precisa atualizar o id do usuário em / etc / passwd para 0 porque existe nenhum conceito de raiz no Windows.

Se você prender o usuário ao não-cygdrive (por exemplo, / sftp), você verá apenas / cygdrive (nada será exibido em / cygdrive).

Se você prender o usuário ao cygdrive (por exemplo, /cygdrive/d/.../sftp), verá / cygdrive / d. No entanto, você não pode mudar para nenhum diretório pai se configurá-lo corretamente.

Espero que as informações acima ajudem!

Por favor, verifique os seguintes itens:

  1. Certifique-se de que o ID do usuário atual que está efetuando login (james em seu exemplo) em / etc / passwd seja zero. É porque o cygwin irá alterar o usuário de todos os diretórios em root como o usuário atual que está efetuando login. Por favor, execute o comando ls -l / para verificar.
  2. Verifique se / home, / home / james, / home / james / upload é o usuário atual de propriedade (ou seja, equivalente a propriedade da raiz com o ID do usuário 0).
  3. Verifique se o arquivo / etc / sshd_config contém:

    Match user james
    ChrootDirectory /home/james/upload/
    ForceCommand internal-sftp
    
por 16.09.2014 / 13:50
1

Você precisa configurar um diretório ChrootDirectory em sshd_config

Instruções detalhadas para o ArchLinux estão disponíveis em chroot SFTP .

O esquema básico é o seguinte:

1) Adicione a configuração chroot a sshd_confg como:

Match User username
ChrootDirectory /home/%u
ForceCommand internal-sftp

2) Altere os direitos do diretório chroot com algo como:

chown root.root /home/<user>
usermod -d / <user>

3) Corrigindo caminho para authorized_keys com algo como:

AuthorizedKeysFile      %h/.ssh/authorized_keys

Uma postagem na lista de discussão do cygwin informa o sucesso usando esse método para restringir o acesso com uma configuração similar como acima.

    
por 29.08.2014 / 19:28