CentOS 7 VSFTPD接続時にディレクトリの内容が一覧表示されない

CentOS 7 VSFTPD接続時にディレクトリの内容が一覧表示されない

オペレーティングシステム:VSFTPDを含むCentOS 7、ファイアウォールが一時的にオフになる

クライアント:ファイルジラ

VSFTPD構成設定:

使用される[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

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)

私は転送モードとサーバータイプ(UNIXと自動検出の間)のすべての組み合わせを試しましたが、役に立ちませんでした。 CentOSシステムにTLSを追加していないため、通常のFTPを使用しています。私はしばらくこのプロトコルを持っていましたが、それがなかったので、通常のFTPと交渉するのに時間を無駄にしていました。

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

面白いのは、ウェルカムバナーが見えないということです。 Filezillaのログに「ようこそメッセージを待っています...」と書かれているので、私はこれを見ると半分予想しました。

ようこそメッセージと同様に、このディレクトリの内容は空です。

ユーザーは問題ありません。ユーザーとしてログインして操作を実行しcd ~、ディレクトリへのアクセス権があることを確認できました/home/ftp-docs

ログファイルにはほとんど空の内容が表示されます。

/var/ログ/メッセージ:

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.

今日、すべてのテストを終えた後、/var/log/xferlog が空であることがわかります。

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

サーバーのコマンドラインも問題ありません。

[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 ~]# 

完全性のために、ホームディレクトリの内容は大丈夫です。

[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]# 

私はかなり多くのWebページを読んだので、hide_file設定ファイルに4つの手動エントリを追加しましたvsftpd.conf。他の人は接続に問題があります。それは私の問題ではなく、私の問題ではありません。私はよく接続されています。私は何も見ることができません。

現在ファイアウォールは無効になっていますが、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

CentOS 7はiptablesではなくFirewallDを使用していることを読んでいますが、ご覧のように次のようになります。

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

私が読んだいくつかのリソースは次のとおりです。

私が逃したことについてのアイデアはありますか?

答え1

この問題に対する解決策はあまり明確ではありません。正しい検索語を知って(今は明らかですが、過去数日間はそうではありません)、状況をよりよく理解するにつれて、フラグメントが所定の位置にあり始めます。 「VSFTPDディレクトリの内容がリストされていません」に関する多くの投稿は、手動およびアクティブ、ポート、権限、hide_fileの使用、local_rootなどについて無限に話します。

冗長なロギングを取得する方法や、「vsftpd冗長なロギング」が私のキーワードでなければならないと自らに尋ねたとき、本当の悟りが来ました。このアイデアとその実装は、母の肩に当たったと言うだけで十分です。 SELinuxの存在について学びました。これは部分的に私の痛みに貢献しました。

この記事は、FTPSとSELinuxをサポートするCentOSでのVSFTPDのインストールと構成、私の問題を解決するために多くの努力を払った。

この手順に従ってmypol.*ファイルが複数作成されましたが、それらを削除しました。これによりsmurfs.txtにアクセスできますが、sub1にはまだ問題があります。

sub1の所有者がdatamoverではなくルートであることを確認して問題を解決しました(なぜそれほど時間がかかりましたか?)。所有権(権限)を固定すると、フォルダにもアクセスできます。

私はちょうど両方のファイルをダウンロードしようとしましたが、うまくいきました。

それでもアップロードできず、/home/ftp-docs/ルートをフォルダの所有者と755の権限で維持する必要があります。偏差が発生すると、FTP 動作が停止します。ただし、sub1にはアップロードできます。したがって、回避策(解決方法)は単にサブフォルダにアップロードすることです。

タスクを実行するには、最後に次のことを行う必要がありました。ここで、/mnt/raid1 は、この例では FTP クライアントのホームディレクトリです。 (私は/home/ftp-docs/を使用しました。)

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

私が使用する便利なリンク:

関連情報