vsftpd
Sempre que instalo centos
, configuro apenas o ambiente jail para os usuários e o restante é a configuração padrão do vsftpd
. Criei usuário e tentei conectar com filezila
cliente FTP, mas não consegui conectar no modo passivo. Eu sempre mudo para o transfer settings
modo ativo para me conectar com sucesso, ftp server
caso contrário, recebo
Error: Failed to retrieve directory listing
Então, existe uma maneira de alterar qualquer diretiva no vsftp.conf
arquivo e podemos nos conectar em modo passivo ao servidor?
Responder1
Para configurar o modo passivo para vsftpd você precisa definir alguns parâmetros em vsftpd.conf.
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
Isso ativa o modo passivo e restringe-o ao uso das onze portas para conexões de dados. Isso é útil porque você precisa abrir essas portas no seu firewall.
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
Se depois de testar tudo funcionar, salve o estado do seu firewall com
service iptables save
que atualizará o /etc/sysconfig/iptables
arquivo.
Para fazer isso no CentOS 7 você deve usar o novo firewalld, não o iptables:
Encontre sua zona:
# firewall-cmd --get-active-zones
public
interfaces: eth0
Minha zona é 'pública', então defino minha zona como pública, adiciono o intervalo de portas e depois recarregamos:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
O que acontece quando você faz uma conexão
Seu cliente faz uma conexão com o servidor vsftpd na porta 21.
O servidor responde ao cliente informando a qual porta conectar-se no intervalo especificado acima.
O cliente estabelece uma conexão de dados na porta especificada e a sessão continua.
Há uma ótima explicação dos diferentes FTPmodosaqui.
Responder2
Para ativar o modo passivo, defina as seguintes opções de configuração em seu vsftp.conf:
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx
É claro que você pode alterar a porta inicial e final e deve substituir o xxx pelo IP público do seu servidor.
Além disso, você deve abrir o intervalo de portas do modo passivo em seu firewall. No centos, você pode carregar o ip_conntrack_ftp
módulo para lidar com conexões FTP em seu firewall. Edite /etc/sysconfig/iptables-config
e adicione ip_conntrack_ftp à opção IPTABLES_MODULES. Depois reinicie o iptables:
/sbin/service iptables restart
Responder3
Ao lado de pasv_enable=YES
, especifique um intervalo de portas no qual o VSFTP executará o modo PASV:
pasv_min_port=50000
pasv_max_port=50999
pasv_enable=YES
Não se esqueça de configurar o iptables para permitir a transmissão de pacotes nestas portas:
iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT
Responder4
Normalmente, não é o servidor FTP, vsftpd, mas o firewall como o iptable que impede o uso do modo passivo (bloqueando a conexão TCP necessária para transferência de dados).