オペレーティングシステム: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 ~]#
私が読んだいくつかのリソースは次のとおりです。
- FTP ファイルZilla
- 接続先への長さなし
- 手動モードで動作するようにvsftpdを設定する
- VSFTPDはディレクトリの内容をリストしません。(私の質問)
- CentOS 7でVSFTPDをインストールして構成する方法
- ユーザーがアップロードできるようにVSFTPDを設定する
- デフォルトのFTPルートフォルダの設定
- ディレクトリリストが表示されない
- VSFTPDはユーザーを刑務所に入れます
私が逃したことについてのアイデアはありますか?
答え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
私が使用する便利なリンク: