Carregar apenas SFTP com OpenSSH e Linux?

3

Gostaria de configurar um servidor SFTP com privilégios de upload somente.

De volta ao dia, sei que fiz isso com FTP no FreeBSD através do uso de SETUID. Todos os arquivos enviados foram automaticamente de propriedade do root, com outros tendo apenas permissão de gravação. Eu aprendi que este método não funciona no Linux (por favor me corrija se eu estiver errado).

Eu também encontrei alguns daemons FTP permitindo isso definindo uma umask para arquivos enviados e negando o uso de chmod.

O mais próximo que cheguei é o seguinte:

  • Defina uma umask em /etc/pam.d/sshd para que os arquivos carregados sejam criados automaticamente com permissões somente de gravação (por exemplo, 0222). Isso é ótimo, exceto que o OpenSSH permite ao usuário chmodar qualquer arquivo para que ele possa fazer o download de qualquer arquivo. Eu não consigo encontrar uma maneira de bloquear o uso do comando chmod - parece ser um comando interno e alterando / bin / chmod para 0700 não bloqueia os usuários de executar o chmod.
  • Use o Gamin ou um cronjob e escreva um script para alterar automaticamente a propriedade dos arquivos à medida que eles são criados. Isso parece uma espécie de hack e depende de um script para ser executado corretamente e parece muito de um hack e um pouco complexo para o que eu preciso.

Estou executando o RHEL 6 com o OpenSSH 5.3p1.

O objetivo é ter uma conta SFTP que possa ser compartilhada com segurança entre 50 pessoas para entregar arquivos ao servidor, em vez de criar 50 contas SFTP.

    
por PunchMonkey 21.07.2011 / 14:40

2 respostas

1

O ProFTPd suporta definitivamente um modo de emulação ssh para uso do sftp, e tenho quase certeza de que ele terá o conjunto usual de opções de configuração do ftpd-normal para forçar propriedades, controlar uploads e coisas do tipo. Eu acho que definitivamente valeria a pena olhar para o seu uso. Eu não posso ajudar com a configuração somente de upload ftpd, mas aqui está o meu código de configuração para obter o suporte SFTP:

LoadModule mod_sftp.c

<VirtualHost 12.34.56.78>
  SFTPEngine            on
  Port                  443
  SFTPLog               /var/tmp/proftpd-sftp.log
  SFTPHostKey           /etc/ssh/ssh_host_rsa_key
  SFTPHostKey           /etc/ssh/ssh_host_dsa_key
  DefaultRoot           /home/testuser
<Limit LOGIN>
  AllowGroup            sftponly
  DenyAll
</Limit>
</VirtualHost>

O Port 443 foi porque já tínhamos sshd em execução na porta 22, além disso, tivemos que oferecer suporte a vários clientes por trás de vários firewalls extremamente estúpidos, e a porta 443 é o único destino que quase todos os sites permitir desimpedido. Há algumas outras coisas sobre como limitar o acesso a um grupo de usuários e fazer o chroot de todos eles no mesmo lugar, o que você provavelmente não precisará, mas eu o incluo porque posso afirmar que essa configuração funciona como está.

    
por 11.08.2012 / 10:02
0

link

link

    
por 21.07.2011 / 15:50

Tags