Centos

連接 CentOS 7 VSFTPD 時目錄內容未列出

  • December 15, 2015

作業系統:CentOS 7 帶有 VSFTPD,防火牆暫時關閉

客戶:Filezilla

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 和自動檢測之間)的所有組合,但無濟於事。我使用純 FTP,因為我沒有將 TLS 添加到我的 CentOS 機器。我有一段時間有那個協議,因為我沒有它,我只是浪費時間協商到普通的 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/log/消息:

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

我瀏覽了很多網頁,這就是為什麼我將hide_file四個被動條目添加到我的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 使用 FirewallD,而不是 iptables,但正如你所看到的:

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

以下是我仔細閱讀的一些資源:

對我錯過的任何事情有什麼想法嗎?

這個問題的解決方案是如此,如此不明顯。當我知道正確的搜尋詞時,現在很明顯,但在過去的幾天裡沒有,並且更好地理解了事情,這些部分開始到位。許多關於“VSFTPD 目錄內容未列出”的文章無休止地談論被動與主動、埠、權限、使用 hide_file、local_root 等。

當我問自己必須有一種方法來獲取詳細的日誌記錄或“vsftpd 詳細日誌記錄”時,我真正的頓悟是我的關鍵術語。可以這麼說,這個想法及其實施擊中了母親的負擔。我開始知道 SELinux 的存在。這部分導致了我的痛苦。

這篇文章,在支持 FTPS 和 SELinux 的 CentOS 中安裝和配置 VSFTPD,對解決我的問題有很大幫助。

這些說明創建了幾個文件 mypol.*,我將其刪除。這讓我可以訪問 smurfs.txt,但我仍然遇到 sub1 的問題。

我通過注意到(為什麼我花了這麼長時間?)解決了這個問題 sub1 的所有者是 root,而不是 datamover。當我固定所有權(好的,權限)時,我也可以訪問該文件夾。

我只是嘗試下載兩個文件並成功。

我仍然無法上傳到/home/ftp-docs/並且必須保持 root 作為該文件夾的所有者以及 755 權限。任何偏差都會導致 FTP 停止工作。但是,我可以上傳到 sub1。所以解決方案(解決方法?)是簡單地上傳到子文件夾。

為了讓事情順利進行,最後我必須執行以下操作,其中 /mnt/raid1 是本例中 FTP 客戶端的主目錄。(我曾經使用 /home/ftp-docs/。)

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

我使用的有用連結:

引用自:https://unix.stackexchange.com/questions/248454