Estou tentando configurar o FTP no Amazon Cloud Server, mas sem sorte. Eu pesquiso na net e não há etapas concretas para fazê-lo.
Eu encontrei esses comandos para executar:
$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart
Mas não sei onde escrevê-las.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
fonte
fonte
Respostas:
Jaminto fez um ótimo trabalho ao responder à pergunta, mas recentemente eu mesmo passei pelo processo e queria expandir a resposta de Jaminto.
Suponho que você já tenha uma instância do EC2 criada e tenha associado um endereço IP elástico a ela.
Etapa 1: instalar o vsftpd
SSH para o servidor EC2. Tipo:
Isso deve instalar o vsftpd.
Etapa 2: abrir as portas FTP na sua instância do EC2
Em seguida, você precisará abrir as portas FTP no seu servidor EC2. Faça logon no Console de gerenciamento do AWS EC2 e selecione Grupos de segurança na árvore de navegação à esquerda. Selecione o grupo de segurança atribuído à sua instância do EC2. Em seguida, selecione a guia Entrada e clique em Editar:
Adicione duas regras TCP personalizadas com intervalos de portas 20-21 e 1024-1048. Para Origem, você pode selecionar 'Qualquer lugar'. Se você decidir definir Origem como seu próprio endereço IP, saiba que seu endereço IP poderá mudar se estiver sendo atribuído via DHCP.
Etapa 3: faça atualizações no arquivo vsftpd.conf
Edite seu arquivo conf vsftpd digitando:
Desabilite o FTP anônimo alterando esta linha:
para
Em seguida, adicione as seguintes linhas na parte inferior do arquivo vsftpd.conf:
Seu arquivo vsftpd.conf deve ter a seguinte aparência - exceto se substitui o endereço pasv_address pelo seu endereço IP público:
Para salvar as alterações, pressione Escape, digite
:wq
e pressione Enter.Etapa 4: reiniciar o vsftpd
Reinicie o vsftpd digitando:
Você deverá ver uma mensagem parecida com:
Se isso não funcionar, tente:
Etapa 5: criar um usuário de FTP
Se você der uma olhada em / etc / vsftpd / user_list, verá o seguinte:
Isso está basicamente dizendo: "Não permita que esses usuários acessem o FTP". O vsftpd permitirá o acesso de FTP a qualquer usuário que não esteja nesta lista.
Portanto, para criar uma nova conta FTP, você pode precisar criar um novo usuário no seu servidor. (Ou, se você já tiver uma conta de usuário que não esteja listada em / etc / vsftpd / user_list, poderá pular para a próxima etapa.)
Criar um novo usuário em uma instância do EC2 é bastante simples. Por exemplo, para criar o usuário 'bret', digite:
Aqui está como será:
Etapa 6: restringindo os usuários aos seus diretórios pessoais
Neste ponto, seus usuários de FTP não estão restritos aos seus diretórios pessoais. Isso não é muito seguro, mas podemos corrigi-lo facilmente.
Edite seu arquivo conf vsftpd novamente, digitando:
Remova o comentário da linha:
Deve ficar assim quando terminar:
Reinicie o servidor vsftpd novamente da seguinte maneira:
Tudo feito!
Apêndice A: Sobrevivendo a uma reinicialização
O vsftpd não inicia automaticamente quando o servidor é inicializado. Se você é como eu, isso significa que, depois de reiniciar sua instância do EC2, você sentirá um momento de terror quando o FTP parecer estar quebrado - mas, na realidade, ele simplesmente não está funcionando !. Aqui está uma maneira prática de corrigir isso:
Como alternativa, se você estiver usando redhat, outra maneira de gerenciar seus serviços é usar essa interface gráfica do usuário para controlar quais serviços devem iniciar automaticamente:
Agora o vsftpd será iniciado automaticamente quando o servidor for inicializado.
Apêndice B: Alterando o diretório inicial do FTP de um usuário
* NOTA: Iman Sedighi postou uma solução mais elegante para restringir o acesso dos usuários a um diretório específico. Consulte a excelente solução postada como resposta *
Você pode criar um usuário e restringir o acesso ao FTP a uma pasta específica, como / var / www. Para fazer isso, você precisará alterar o diretório inicial padrão do usuário:
Neste exemplo específico, é típico dar permissões de usuário ao grupo 'www', que geralmente é associado à pasta / var / www:
fonte
step 3
após a adição de linhas no arquivo, como posso salvá-lo?Para habilitar o ftp passivo em um servidor EC2, você precisa configurar as portas que o servidor ftp deve usar para conexões de entrada e abrir uma lista de portas disponíveis para as conexões de dados do cliente ftp.
Não conheço o linux, mas os comandos que você postou são as etapas para instalar o servidor ftp, configurar as regras do firewall ec2 (por meio da API da AWS) e configurar o servidor ftp para usar as portas permitidas no firewall ec2 .
Portanto, esta etapa instala o cliente ftp (VSFTP)
> yum install vsftpd
Estas etapas configuram o cliente ftp
mas as outras duas etapas são mais fáceis de executar por meio do console amazon em grupos de segurança do EC2. Lá, você precisa configurar o grupo de segurança designado ao seu servidor para permitir conexões nas portas 20,21 e 1024-1048
fonte
Obrigado @ clone45 pela boa solução. Mas eu tinha apenas um problema importante no apêndice b de sua solução. Imediatamente depois de alterar o diretório inicial para var / www / html, não consegui me conectar ao servidor por meio de ssh e sftp, pois sempre mostra os seguintes erros
ou no FileZilla, recebi este erro:
Mas eu poderia acessar o servidor através da conexão FTP normal.
Se você encontrou o mesmo erro, basta desfazer o apêndice b da solução @ clone45, defina o diretório inicial padrão do usuário:
Mas quando você define o diretório inicial padrão do usuário, o usuário tem acesso a muitas outras pastas fora de / var / www / http. Portanto, para proteger seu servidor, siga estas etapas:
1- Criar grupo sftponly Crie um grupo para todos os usuários que você deseja restringir o acesso apenas a ftp e sftp para var / www / html. para fazer o grupo:
2- Prenda o chroot Para restringir o acesso desse grupo ao servidor via sftp, você deve prender o chroot para não permitir que os usuários do grupo acessem qualquer pasta, exceto a pasta html, dentro do diretório inicial. para fazer isso, abra o /etc/ssh/sshd.config no vim com o sudo. No final do arquivo, por favor, comente esta linha:
E adicione esta linha abaixo disso:
Então substituímos o subsistema pelo sftp interno. Em seguida, adicione as seguintes linhas abaixo:
Após adicionar esta linha, salvei minhas alterações e reiniciei o serviço ssh:
3- Adicione o usuário ao grupo sftponly Qualquer usuário que você queira restringir seu acesso deve ser membro do grupo sftponly. Portanto, associamos a sftponly por: sudo usermod -G sftponly nome de usuário
4- Restrinja o acesso do usuário a apenas var / www / html Para restringir o acesso do usuário a apenas a pasta var / www / html, precisamos criar um diretório no diretório inicial (com o nome de 'html') desse usuário e montar / var / www para / home / nome de usuário / html da seguinte maneira:
5- Defina o acesso de gravação Se o usuário precisar de acesso de gravação para / var / www / html, você deverá prender o usuário em / var / www, que deve ter root: propriedade e permissões de root de 755. Você precisará fornecer / var / www / html propriedade de root: sftponly e permissões de 775 adicionando as seguintes linhas:
6- Bloquear o acesso ao shell Se você deseja restringir o acesso ao não acessar o shell para torná-lo mais seguro, basta alterar o shell padrão para bin / false, como a seguir:
fonte
sudo mount --bind /var/www /home/username/html
me disseram que não há pasta www. Presumo que isso seja feito a partir da raiz (onde está a pasta / home)?sudo chown root:www /var/www/html
states chown: grupo inválido: 'root: www'sudo usermod -s /sbin/nologin username
devido às restrições de shell padrão do módulo pam do vsftpd (e parece funcionar melhor no meu caso). E a parte 4mount
precisa ser feita em todas as reinicializações, por isso é uma boa ideia colocá-la no rc.local.Ótimo artigo ... funcionou como uma brisa no Amazon Linux AMI.
Mais dois comandos úteis:
Para alterar a pasta de upload FTP padrão
Passo 1:
Etapa 2: crie uma nova entrada na parte inferior da página:
Para aplicar permissão de leitura, gravação e exclusão nos arquivos da pasta, para que você possa gerenciar usando um dispositivo FTP
fonte
Caso você tenha o ufw ativado, lembre-se de adicionar ftp:
Levei 2 dias para perceber que eu habilitei o ufw.
fonte
Não estará ok até você adicionar seu usuário ao grupo www pelos seguintes comandos:
Isso resolve o problema de permissão.
Defina o caminho padrão adicionando isto:
fonte
Não se esqueça de atualizar o firewall do iptables se você tiver um para permitir os intervalos 20-21 e 1024-1048.
Faça isso em / etc / sysconfig / iptables
Adicionando linhas como esta:
E reinicie o iptables com o comando:
fonte
Simplifiquei as etapas do clone45:
Abra as portas como ele mencionou
fonte
Eu segui a resposta do clone45 até o fim. Um ótimo artigo! Como eu precisava do acesso ao FTP para instalar plug-ins em um dos meus sites wordpress, alterei o diretório inicial para / var / www / mysitename. Então continuei adicionando meu usuário ftp ao grupo apache (ou www) assim:
Depois disso, ainda vi esse erro na página de instalação do plug-in do WP: "Não foi possível localizar o diretório de conteúdo do WordPress (wp-content)". Pesquisou e encontrou esta solução em uma sessão de perguntas e respostas do wp.org: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content e adicionou o seguinte ao final do wp- config.php:
Depois disso, meu plugin WP foi instalado com sucesso.
fonte
talvez valha a pena mencionar, além da resposta do clone45 :
Nota: Problemas com permissões de gravação podem aparecer como os seguintes erros do FileZilla :
Referências:
Corrigindo permissões de gravação para usuários FTP com chroot no vsftpd
VSFTPd parou de funcionar após a atualização
fonte
Caso você esteja recebendo uma senha incorreta do 530
Mais 1 passo necessário
no arquivo / etc / shells
Adicione a seguinte linha
/ bin / false
fonte
O FileZila é uma boa ferramenta de FTP para configurar com o Amazon Cloud.
Você precisa executar essas etapas apenas uma vez, depois ele fará o upload do conteúdo para o mesmo endereço IP e o mesmo site.
fonte