Servidor FTP básico do Ubuntu

33

Eu gostaria de configurar um servidor FTP básico na minha instalação do Ubuntu Server. Eu tenho jogado com o VSFTPD, mas estou tendo problemas para que o servidor me permita criar diretórios e copiar arquivos. Eu configurei o sistema para permitir usuários locais, mas parece que isso não significa que eu tenha acesso para criar diretórios. Esta pode ser uma instância em que preciso estar mais bem fundamentada na configuração do servidor Ubuntu para configurar esse servidor FTP adequadamente. O objetivo final é poder mover arquivos da minha pasta dev local para a minha pasta www para implantação. Os diretórios também precisam poder se mover. Qualquer ajuda seria muito apreciada.

JPrescottSanders
fonte
Você mencionou mover arquivos e pastas do dev local para a pasta www - você está fazendo isso tudo na mesma máquina ou em máquinas diferentes?
Marco Ceppi
Você também é vendido com o VSFTPD? Ou você estaria interessado em outros tipos de softwares de FTP como o pureftp?
Marco Ceppi
O desenvolvedor local é uma máquina completamente separada. Estou familiarizado com a movimentação de arquivos para servidores Web via FTP, talvez haja uma maneira melhor.
JPrescottSanders
Eu não sou vendido no VSFTPD, foi o primeiro que eu encontrei enquanto pesquisava no Google, se você tiver uma solução mais simples, sou todo ouvidos.
JPrescottSanders

Respostas:

42

Vou recomendar o PureFTPD porque, na minha opinião, foi o mais simples e fácil de usar. Você precisará instalá-lo primeiro: sudo apt-get install pure-ftpduma vez instalado, ele será iniciado automaticamente. Por padrão, ele usa Autenticações PAM - o que significa que usa as contas que já existem no sistema para autenticação. Tudo que você precisa fazer é criar uma conta de usuário com o diretório inicial como seu caminho www e definir a senha para essa conta. Você deve conseguir se conectar com essa combinação de usuário / senha para fazer upload / download de arquivos.

Algo assim:

sudo adduser ftpman --home /var/www/ --ingroup www-data

O que criará o ftpmanusuário e o colocará no grupo www-data que o Apache usa e o guiará pelo restante do script de instalação. Depois de definida, verifique chmoda pasta WWW se houver erros sobre ela já existentes na combinação usuário / grupo que você criou.

Por fim, se você deseja bloquear o acesso SSH para a execução dessa conta: o sudo chsh -s /bin/false ftpmanque alterará o shell do usuário para false. (Substitua ftpman pelo seu usuário ftp)

Marco Ceppi
fonte
5
O PureFTP é o mais fácil de configurar, no que me diz respeito.
Nathan Osman
1
Você tem o hábito de dar uma explicação completa sempre como um professor. Impressionante!!!
user3215
1
Eu tentei isso, mas não consigo me conectar com o usuário recém-criado. Usuários existentes funcionam bem
wim
1
Tudo isso funciona bem, exceto quando eu executo chshisso parece impedir que os usuários efetuem login também via FTP. Voltar para /bin/bashpermite que funcione novamente.
DANH
1
Obrigado e posso confirmar que passei um dia inteiro com o vsftpd e 5 minutos com o pureftpd no tempo de configuração. Para uma configuração simples e segura, use o pureftpd. Estou confuso porque mainstream touts vsftpd!
precisa saber é o seguinte
10

Na minha opinião, o SFTP é o melhor caminho a percorrer. Ei, tem a palavra "seguro" no nome, deve ser melhor :)

O SFTP usa ssh para fazer transferências de arquivos (diferente do FTPS, que é basicamente o FTP + TLS). O que isso significa é que, se você pode ssh na máquina de destino, quase sempre pode fazer o SFTP, pois ele usa os mesmos mecanismos de autenticação, para que você não precise instalar e configurar diferentes daemons de servidor (por exemplo, sem pureftpd ou vsftpd). Desde que suas permissões estejam definidas corretamente para /var/www- o que provavelmente é uma questão de sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER-, você poderá usar o SFTP imediatamente.

Atualmente, a maioria dos softwares clientes executa o SFTP com muita satisfação, e você também pode usar scpde um shell no servidor dev para copiar coisas ( scp -Rcopiará pastas inteiras e é muito útil). Você pode até dar outro passo e automatizar logins com chaves públicas, o que significa que não há mais senhas de digitação :)

Ben Williams
fonte
3
dica dica ... se você tiver clientes Windows, eles podem usar o WinSCP winscp.net/eng/index.php para acessar um servidor sftp.
LassePoulsen
De acordo com o seu comentário, o OP deve, obviamente, usar o vsftpd, porque vs significa muito seguro . :-)
qbi 9/08/10
O PureFTPD usa a mesma autenticação que o SFTP - na verdade, é mais seguro na minha opinião, porque se as informações da sua conta vazarem, ninguém como acesso SSH à sua máquina. Na pior das hipóteses, eles têm acesso a arquivos.
Marco Ceppi
Se o seu aplicativo suporta apenas FTP e você o encapsula através de SSH, qual é a diferença? :)
endolith
5

Eu recomendaria fortemente o uso do vsftpd. É um dos daemons de FTP mais seguros no Linux. Muitos outros tinham fraquezas no passado e parece que o FTP é difícil de implementar de maneira segura.

O vsftpd inicia logo após a instalação. O Ubuntu permite que usuários locais efetuem login. Portanto, inicie seu cliente FTP e efetue login como usuário normal com a senha do sistema (meu exemplo usa lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Agora estou usando algum tipo de gerenciador de arquivos (Nautilus, Shell etc.) para criar um novo diretório fooe voltar ao meu cliente FTP:

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

O diretório está lá e eu posso cdentrar nele e usá-lo. Isso também é o mesmo se você tiver usuários especiais. Lá você também pode criar diretórios e eles são imediatamente acessíveis. Aqui é importante procurar direitos de acesso.

qbi
fonte
3

Recomendo humildemente um servidor FTP que me escrevi do zero: JetFTP . É extremamente simples de instalar e usar.


Instalação:

  • Adicione meu PPA às suas fontes de software e atualize:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Execute o seguinte comando:

    sudo apt-get install jetftp
    
  • É isso aí!

O uso do JetFTP é simples - basta conectar-se à porta 8021usando um nome de login e senha no computador em que o JetFTP está sendo executado.

Nathan Osman
fonte
2

Não use ftp , é um protocolo inerentemente inseguro porque envia o nome de usuário e a senha de forma clara ao servidor. A implementação do sftp é igualmente fácil e você obtém uma enorme vantagem na segurança da sua conexão.

Stuart
fonte
problema claro é a melhor resposta :-)
Sajad Bahmani
0

Existem três maneiras diferentes de configurar um servidor ftp:

(1) FTP anônimo:

As pessoas podem acessar o servidor apenas com a conta anônima e sem uma senha. Obviamente, o administrador do servidor definirá um limite para envios para impedir que os usuários coloquem arquivos ilegais, como músicas / filmes / jogos piratas.

(2) FTP com acesso anônimo e usuários com uma conta com senha:

Este método permite que usuários anônimos e com senha entrem no servidor. Eles terão acesso apenas a um diretório especificado, exceto pela raiz do usuário que pode visualizar / modificar / excluir todos os arquivos e / ou pastas.

(3) FTP com suporte ao mysql para autenticação de usuários virtuais:

Este método permite o acesso ao servidor apenas para alguns grupos de usuários que não possuem uma conta de shell de autenticação de usuários virtuais no sistema. Ele usa um servidor mysql externo que armazena informações do usuário.

Primeira opção: FTP anônimo

Antes de iniciar a criação de um servidor ftp anônimo, você deve adicionar um usuário chamado ftp ao seu sistema, com um diretório inicial também. Este passo é realmente fácil, basta seguir estes comandos:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Isso permite que apenas essa conta grave nesta pasta. Você pode usar mais variáveis ​​para especificar o que o servidor ftp fará. aqui estão alguns exemplos:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Segunda opção: '' 'Usuários de conta anônima e com senha' ''

Para tornar possível ter usuários de contas anônimas e com senha no mesmo servidor, siga este pequeno guia:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Terceira opção: '' 'Usuários virtuais com Mysql' ''

Para criar um servidor com suporte ao mysql, siga estas etapas:

Faça o download e instale o Gerenciador de usuários para PureFTPd, que você pode encontrar aqui http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Descompacte-o e faça upload de todo o seu conteúdo no diretório www do servidor da web e, em seguida, escreva no seu navegador este link link http: //localhost/ftp/install.php Siga todas as etapas que o instalador solicitar para você Copie e salve rge pureftpd-mysql .conf no diretório do gerenciador de usuários pureftpd

Feito. Acesso ao painel de administração usando este link http: // localhost / ftp

Mais opções para adicionar antes de iniciar o processo do servidor

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

E veja isso em alguns aplicativos de servidor ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

Sajad Bahmani
fonte
4
Ao copiar e colar uma resposta de outro lugar, você sempre deve creditar a fonte .
quer
0

A instalação padrão do VSFTPD não permite nenhuma alteração de criação / modificação por padrão. Você precisa editar /etc/vsftpd.confe descomentar a seguinte linha ...

write_enable=YES

Além disso, você precisa configurar as permissões apropriadas do sistema de arquivos nos respectivos arquivos e pastas.

Simon East
fonte