Linux e Apache: contas de usuário FTP / SFTP para Hosts Apache Virtuais?

1

Problema

Os sites da nossa empresa estão todos localizados em um servidor Web de alto desempenho, incluindo vários projetos internos e de desenvolvimento.

Alguns sites são sites públicos que precisam de atualizações regulares de back-end. Essas atualizações são feitas por uma empresa de SEO / design terceirizada.

Eu preciso configurar uma única conta de FTP que a empresa de terceiros possa usar para acessar SOMENTE esses sites via FTP (ou, idealmente, SFTP), a fim de modificar arquivos lá. Eu NÃO quero que eles tenham qualquer acesso ao resto do nosso servidor ou aos nossos outros sites.

Exemplo

Para ilustrar minha situação, vamos supor que por um momento eu tenha quatro sites configurados como Hosts Virtuais no Apache:

internalsite1.com
internalsite2.com
contentsite1.com
contentsite2.com

Eles existem no meu servidor nos seguintes locais:

/var/www/html/
    /internalsite1.com
    /internalsite2.com
    /contentsite1.com
    /contentsite2.com

Agora, preciso dos hosts "contentsite" para permitir o acesso por meio de uma conta de FTP para modificar arquivos. Os hosts de "site interno" devem ser acessíveis apenas pelos usuários que estão conectados (por meio do SSH padrão).

** O que eu tentei **

Hoje, experimentei modificar minha configuração de SSH para criar usuários em chroot usando os recursos internal-sftp e ChrootDirectory do OpenSSH. No entanto, a configuração estava ficando muito complicada e não posso arriscar quebrar o acesso SSH ao meu servidor, então recuei dessa abordagem.

Atualmente, estou tentando descobrir como usar vsftpd para atingir meu objetivo. mas até agora só consigo configurar uma única conta com acesso a um único diretório. Isso provavelmente seria suficiente, mas o vsftpd tem dúzias de opções e nenhuma documentação clara sobre como alcançar essa configuração em particular.

A questão

Como posso permitir que uma única conta de usuário ftp acesse várias localizações de diretório no servidor, uma representando cada uma delas?

Observação : links para tutoriais clear são bem-vindos.

EDIT: Embora eu prefira que eles façam login via SFTP, eu me conformaria com o acesso FTP comum. Eu só preciso criar uma única conta FTP no servidor que tem acesso a cada um dos três locais do site em questão .-

    
por Brian Lacy 02.11.2010 / 17:56

2 respostas

2

Considere chroot'ing os usuários. Aqui está um guia para o Ubuntu, mas deve ser adaptável.

link

    
por 02.11.2010 / 18:19
3

Aqui está um guia para instalar e configurar scponly , um pacote que fornece um shell de login alternativo . A idéia básica é que você defina o shell de login de um usuário como /usr/bin/scponly e, em seguida, esse usuário só poderá usar SFTP ou SCP; ele / ela não pode obter um shell de linha de comando.

O pacote scponly também oferece uma opção chroot, envolvendo um segundo shell de login alternativo ( /usr/sbin/scponlyc ) e uma pequena configuração extra. Não deixe de ler todo o tópico do fórum, pois algumas dicas adicionais são dadas por outros em resposta ao artigo principal.

O guia é um pouco específico do Ubuntu, mas deve funcionar tão bem com o Debian, ou qualquer distribuição derivada do Debian. Se o seu Linux não é nenhum desses, você ainda deve conseguir baixar o código, compilá-lo e seguir as etapas descritas no guia.

    
por 02.11.2010 / 19:08