Conteúdo do diretório não listado ao conectar-se ao VOS do CentOS 7

1

SO: CentOS 7 com VSFTPD com firewall desativado no momento

Cliente: Filezilla

Configurações do VSFTPD:

Usado [root@Turbo ~]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to the DataMover FTP service.
chroot_local_user=YES
local_root=/home/ftp-docs
listen=YES
listen_ipv6=NO
pasv_enable=YES
pasv_max_port=65534
pasv_min_port=1024
pasv_address=192.168.20.88
hide_file=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Configurações do FileZilla:

Logon Type          Normal
Port                21
Server Type         Default (tried UNIX)
Transfer Mode       Passive (tried Active)
Charset             Auto detect
Encryption          Only use plain FTP (insecure)

Eu tentei todas as combinações de modo de transferência e tipo de servidor (entre UNIX e detecção automática) sem sucesso. Eu usei o FTP simples, pois não adicionei o TLS à minha máquina do CentOS. Eu tive esse protocolo por um tempo, como eu não tenho, eu só perdi tempo negociando até FTP simples.

Aqui está a saída do Filezilla:

Status: Disconnected from server
Status: Connecting to 192.168.20.88:21...
Status: Connection established, waiting for welcome message...
Status: Connected
Status: Retrieving directory listing...
Status: Directory listing of "/" successful

O que é interessante é que eu não vejo o banner de boas-vindas. Eu meio que esperava ver isso, já que o log do Filezilla diz "esperando por uma mensagem de boas vindas ...".

Como a mensagem de boas-vindas, o conteúdo do diretório está em branco.

O usuário está bem. Eu entrei como usuário e fiz um cd ~ e pude verificar se eu estava no diretório /home/ftp-docs .

Os arquivos de log mostram um grande vazio.

/ var / log / messages:

Dec 11 09:23:35 Turbo systemd: Reloading.
Dec 11 09:23:35 Turbo systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket'
Dec 11 09:23:35 Turbo systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket'
Dec 11 09:23:36 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74.
Dec 11 09:23:37 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74.
Dec 11 09:23:37 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74.
Dec 11 09:23:40 Turbo systemd: Stopping Vsftpd ftp daemon...
Dec 11 09:23:40 Turbo systemd: Stopped Vsftpd ftp daemon.
Dec 11 09:23:45 Turbo systemd: Starting Vsftpd ftp daemon...
Dec 11 09:23:45 Turbo systemd: Started Vsftpd ftp daemon.

Com todos os meus testes hoje, o / var / log / xferlog mostra o vazio.

Tue Dec  8 15:48:35 2015 1 ::ffff:192.168.20.74 0 /CreativeCloudSet-Up.exe b _ i r datamover ftp 0 * i
~                                                                                                                                                                                                   

Minha linha de comando no servidor também está bem.

[root@Turbo ~]# systemctl daemon-reload
[root@Turbo ~]# systemctl stop vsftpd
[root@Turbo ~]# systemctl start vsftpd
[root@Turbo ~]# vi /var/log/messages
[root@Turbo ~]# vi /var/log/xferlog 
[root@Turbo ~]# 

Apenas por causa da integralidade, o conteúdo do diretório base é bom.

[root@Turbo ~]# ls -l /home
total 4
drwxr-xr-x.  3 root ftp-users   35 Dec  9 16:29 ftp-docs
...
[root@Turbo ~]# 
[root@Turbo ~]# cd /home/ftp-docs/
[root@Turbo ftp-docs]# ls -l
total 4
-rwxr--r--. 1 datamover root 13 Dec  8 15:47 smurfit.txt
drwxr--r--. 2 root      root  6 Dec  9 16:29 sub1
[root@Turbo ftp-docs]# 

Pesquisei várias páginas da Web, por isso adicionei hide_file e as quatro entradas passivas ao meu arquivo de configuração vsftpd.conf . Outras pessoas tiveram um problema de conexão. Isso é e não foi problema meu. Eu me conecto bem. Eu simplesmente não vejo nada.

Embora eu tenha o firewall desativado no momento, aqui está minha configuração iptables :

vi /etc/sysconfig/iptables

# FTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:65535 -j ACCEPT

Eu li que o CentOS 7 usa o FirewallD, não o iptables, mas como você pode ver:

[root@Turbo ~]# firewall-cmd --get-active-zones
FirewallD is not running
[root@Turbo ~]# 

Aqui estão alguns dos recursos que eu li:

Alguma opinião sobre qualquer coisa que eu tenha perdido?

    
por Sarah Weinberger 10.12.2015 / 02:03

1 resposta

1

A resolução para este problema foi tão, não tão óbvia. Quando eu conhecia os termos de pesquisa apropriados, óbvios agora, mas não nos últimos dois dias, e entendendo melhor as coisas, as peças começaram a se encaixar. Muitas postagens sobre o "conteúdo do diretório VSFTPD não listado" falavam incessantemente sobre passivo versus ativo, portas, permissões, uso de hide_file, local_root e outros.

A verdadeira epifania que tive veio, quando me perguntei, deve haver uma maneira de obter registros detalhados ou "log de verbosidade vsftpd" foi o meu termo-chave. Esse pensamento e sua implementação atingiram a carga mãe, por assim dizer. Eu fiquei sabendo da existência do SELinux. Isso parcialmente causou minha miséria.

Neste artigo, Instalação e configuração do VSFTPD no CentOS com suporte a FTPS e SELinux , fez muito para resolver o meu problema.

As instruções criaram alguns arquivos, mypol. *, que eu deletei. Isso me deu acesso ao smurfs.txt, mas eu ainda tive um problema com o sub1.

Resolvi esse problema percebendo (por que demorei tanto?) que o proprietário de sub1 era root, não datamover. Quando eu fixei a propriedade (ok, permissões), também tive acesso a essa pasta.

Eu tentei fazer o download dos arquivos e do sucesso.

Ainda não consigo fazer o upload para /home/ftp-docs/ e preciso manter o root como o proprietário dessa pasta, além de 755 permissões. Qualquer desvio faz com que o FTP pare de funcionar. Eu posso, no entanto, fazer o upload para sub1. Então, a solução (solução alternativa?) É simplesmente fazer o upload para uma subpasta.

Para fazer as coisas funcionarem, eu tive que fazer o seguinte no final, onde / mnt / raid1 é o diretório home para o cliente FTP neste caso particular. (Eu costumava usar / home / ftp-docs /.)

# /sbin/restorecon -v /mnt/raid1
# setsebool -P ftpd_full_access 1

Links úteis que usei:

por 11.12.2015 / 22:46