Мне нужен базовый 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
Так что это простое несовпадение путей, все остальное вроде нормально.
Для анонимного входа измените домашний каталог пользователей ftp в /etc/passwd
.
ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
И добавьте это в свой /etc/vsftpd.conf
файл.
allow_writeable_chroot=YES
И убедитесь, что 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/