Назад | Перейти на главную страницу

Разрешить анонимную загрузку для Vsftpd?

Мне нужен базовый FTP-сервер в Linux (CentOS 5.5) без каких-либо мер безопасности, поскольку сервер и клиенты находятся в тестовой локальной сети, не подключенной к остальной сети, которая сама использует немаршрутизируемые IP-адреса за брандмауэром NAT. без входящего доступа к FTP.

Некоторые рекомендуют Всфтпд над PureFTPd или ProFTPd. Независимо от того, что я пытаюсь, я не могу заставить его разрешить анонимному пользователю (то есть войти в систему как «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" ошибка 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

С пользователем «ftp», указанным в / etc / passwd с домашним каталогом, установленным на «/ var / ftp», и правами доступа к / var / ftp, установленными на «drwxr-xr-x» и / var / ftp / входящим в «drwxrwxrwx» ... может быть, это из-за PAM? Я не нашел ни одного файла журнала FTP в / var / log для изучения.


Изменить: вот рабочая конфигурация, позволяющая ftp / анонимному подключаться и загружать файлы в / var / ftp:

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

Вы создали каталог под названием pub /загрузить:

# mkdir /var/ftp/pub/upload

Но затем вы настроили загрузки для перехода в pub /входящий:

anon_root=/var/ftp/pub/incoming

Так что это простое несовпадение путей, все остальное вроде нормально.

  1. Для анонимного входа измените домашний каталог пользователей ftp в /etc/passwd.

    ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
    
  2. И добавьте это в свой /etc/vsftpd.conf файл.

    allow_writeable_chroot=YES
    
  3. И убедитесь, что ftp у пользователя есть доступ (chmod 755) для входа в каждый каталог до местоположения /var/ftp/pub/

Я боролся с этой проблемой часами. vsftpd не дает четкой справки или предложений по ошибкам.

вот что у меня сработало (сказал он, душив мысленно разработчика)

vsftpd.conf:

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/var/ftp/

каталоги create / chown

mkdir /var/ftp
chown nobody:nogroup /var/ftp
mkdir /var/ftp/uploads
chown ftp:ftp /var/ftp/uploads
#edit for good measure also (gave me grief with pure-ftpd)
chmod 777 /var/ftp/uploads

изменить хомедир в

/etc/passwd:

    ftp:x:116:124:ftp daemon,,,:/var/ftp:/usr/sbin/nologin

(домашний каталог по умолчанию в debian - / srv / ftp, так что вы можете упростить себе жизнь, придерживаясь этого каталога)

загрузка возможна в / var / ftp / uploads SElinux / Apparmor отключен в этой системе, debian 10.3

Примечание: vsftp выдаст сообщение об ошибке, если исходный домашний каталог имеет права rw (также известный как chown ftp: ftp) на / var / ftp напрямую

Отредактируйте примечание: со слабой надеждой весь этот текст в некоторой степени понятен. Клаус

Вероятно, у вас включен SE linux. Вместо того, чтобы отключать все, вы можете использовать

/usr/sbin/setsebool -P ftp_home_dir 1

чтобы ftp работал правильно.

РЕДАКТИРОВАТЬ Просматривая это еще раз, если команды выше - это то, что вы действительно набрали, тогда /var/ftp/pub/incomming не существует, поэтому убедитесь, что он существует, и попробуйте еще раз.

У тебя наверное есть userlist_deny=NO в вашем файле conf. Измените это на YES и убедитесь, что имя пользователя, которое вы используете, не в /etc/vsftpd/user_list или в /etc/vsftpd/ftpusers.

Включен ли SE linux. Люди на этом форуме смогли решить проблему, отключив SE linux.

http://rackerhacker.com/2007/06/14/500-oops-error-from-vsftpd/