Linux

允許匿名上傳 Vsftpd?

  • May 26, 2020

我需要一個沒有任何安全措施的 Linux (CentOS 5.5) 上的基本 FTP 伺服器,因為伺服器和客戶端位於測試 LAN 上,沒有連接到網路的其餘部分,它本身在 NAT 防火牆後面使用不可路由的 IP沒有對 FTP 的傳入訪問。

有些人推薦Vsftpd而不是PureFTPdProFTPd。無論我嘗試什麼,我都無法讓它允許匿名使用者(即登錄為“ftp”或“匿名”並輸入任何字元串作為密碼)上傳文件:

# yum install vsftpd

# mkdir /var/ftp/pub/upload

# cat vsftpd.conf
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
xferlog_file=YES

#anonymous users are restricted (chrooted) to anon_root
#directory was created by root, hence owned by root.root
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES

#chroot_local_user=NO
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
chown_uploads=YES

當我從客戶端登錄時,這是我得到的:

500 OOPS:無法更改目錄:/var/ftp/pub/incoming

我也試過“# chmod 777 /var/ftp/incoming/”,但得到了同樣的錯誤。

有人知道如何以最低安全性配置 Vsftpd 嗎?

謝謝你。


編輯:SELinux 被禁用,這裡是文件權限:

# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0

# sestatus
SELinux status:                 disabled
# getenforce
Disabled

# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

# ll /var/
drwxr-xr-x  4 root root 4096 Mar 14 10:53 ftp

# ll /var/ftp/
drwxrwxrwx 2 ftp ftp 4096 Mar 14 10:53 incoming
drwxr-xr-x 3 ftp ftp 4096 Mar 14 11:29 pub

編輯:最新的 vsftpd.conf:

listen=YES
local_enable=YES
write_enable=YES
xferlog_file=YES

#anonymous users are restricted (chrooted) to anon_root
anonymous_enable=YES
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES

#500 OOPS: bad bool value in config file for: chown_uploads
chown_uploads=YES
chown_username=ftp

編輯:從“chown_uploads”中刪除尾隨空格,解決了 err 500,但匿名仍然不起作用:

client> ./ftp server
Connected to server.
220 (vsFTPd 2.0.5)
Name (server:root): ftp
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/ftp/pub/incoming
Login failed.
ftp> bye

在 /etc/passwd 中列出使用者“ftp”,主目錄設置為“/var/ftp”,對 /var/ftp 的訪問權限設置為“drwxr-xr-x”,/var/ftp/incoming 設置為“drwxrwxrwx” …可能是由於 PAM 造成的嗎?我在 /var/log 中找不到任何要調查的 FTP 日誌文件。


編輯:這是讓 ftp/anonymous 連接並將文件上傳到 /var/ftp 的工作配置:

listen=YES
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

您已經創建了一個名為 pub/ upload的目錄:

# mkdir /var/ftp/pub/upload

但是隨後您將上傳配置為轉到 pub/ incoming

anon_root=/var/ftp/pub/incoming

所以這是一個簡單的路徑不匹配,其餘的似乎都可以。

  1. 對於匿名登錄,更改/etc/passwd.
ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
  1. 並將其添加到您的/etc/vsftpd.conf文件中。
allow_writeable_chroot=YES
  1. 並確保ftp使用者有權 ( chmod 755) 進入到該位置的每個目錄/var/ftp/pub/

我與這個問題鬥爭了好幾個小時。vsftpd 沒有給出明確的幫助或錯誤建議。

引用自:https://serverfault.com/questions/247096