Мир твоих увлечений · статьи сайта

Установка и настройка vsftpd

14 мая 2008 · автор: admingold · *nix

Установка и настройка vsftpd

Автор: Andy.


 На работе захотели файловую помойку из под виндов убрать, и перевести на FreeBSD. Для этих целей отыскался старый - престарый компьютер (2xCeleron 300/Abit BP-6/128mb/20Gb). Словом, сгодится.
Решил ftp поднять. Поднимать FTP посредством демона, идущего с операционкой не хотелось, хотелось что-нибудь эдакого.
Поиск по инету, случайно привел на
сайт разработчиков vsftpd. Поглядев список серверов, на которых запахивает этот демон, я решил поставить именно его. Оговорюсь сразу, нужен именно файл сервер, где все могут складывать файлы, удалять их, создавать директории и тд.

Итак, сперва, обновим порты:

portsnap fetch update

Далее, собираем программу

cd /usr/ports/ftp/vsftpd/&& make install clean

Окно выбора опций довольно скромное. Предлагают установить скрипты в rc.d и возможность безопасных соединенией SSL. Так как фтп локальный, наворот в виде SSL просто не нужен. Отмечаем первый пункт.
Собственно, после сборки мы получаем vsftpd, примеры, в которых содержаться некие базовые настройки vsftpd под конкретные задачи. Примеры доступны по адресу /usr/local/share/doc/vsftpd/EXAMPLE, но это не столь важно, ибо присутствует man и пример конфигурационного файла ;). Во FreeBSD, vsftpd, после инсталляцииб кладет конфигурационный файл в /usr/local/etc/vsftpd.conf.
Поскольку создатели озаботились о резервной копии конфигурационного файла, смело приступим к редактированию оригинала.


#возможность работы в автономном режиме
listen=YES #позволяем анонимных пользователей, учетки anonymous и ftp являются синонимами 
anonymous_enable=YES #разрешаем локальных пользователей (локальные пользователи - это те, 
которые #зарегестрированы в системе, то есть на них есть учетные записи) local_enable=YES 
#разрешаем любые формы записи на FTP сервер write_enable=YES #разрешаем анонимным 
пользователям upload anon_upload_enable=YES #разрешаем анонимным пользователям создавать 
директории anon_mkdir_write_enable=YES #разрешаем анонимным пользователям переименовывать 
файлы anon_other_write_enable=YES #у анонимов пароль спрашивать не будем no_anon_password=YES 
#директория нашей помойки (если пользователь присутствует) anon_root=/home/ftp/ 
#разрешаем соединение по 20 порту connect_from_port_20=YES #поддержка древних FTP 
клиентов async_abor_enable=YES #используем родное время, а не GMT use_localtime=YES 
#небольшое приветствие ftpd_banner=Hello! We come in peace! #возможность работы как 
фоновый процесс background=YES


Честно говоря, у меня не получилось под анонимным пользователем заливать файлы (вроде бы аноним, завязан с виртуальными пользователями, может, если их создать, то аноним будет работать). Прогуглив вопрос, и поглядев информацию на эту тему, стало ясно, что не у одного меня, похожие грабли. В документации на ALT Linux советовали создавать пользователя vsftp с шеллом /sbin/nologin (это у нас, у них он другой, какой не помню уже ;) ). Поэтому действуем так, создаем пользователя (имя любое) lissyara. Шелл, естественно nologin, пароль lissyara. Вроде бы все. Всем все можно, директория, куда будут складываться файлы, прописана. Осталость передать директорию root'у, иначе vsftpd не даст в нее писать. Сменим владельца:  


chownroot ~ftp


Затем, дописываем в /etc/vsftpd.conf следующие строки:


#директория файловой помойки (для существующей учетной записи)
local_root=/home/lissyara #непривелегированный пользователь (так советовали делать в документации, оступать 
#не стал) nopriv_user=lissyara #дабы пользователи не шлындали по директориям системы, запираем их 
в домашней chroot_local_user=YES

Проверяем:


ftp192.168.0.251 Connected to 192.168.0.251. 220 Welcome to blah FTP service. Name (192.168.0.251:root): 
radiant 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. 
Using binary mode to transfer files. ftp> mkdir test 257 "/test" created ftp> ls 229 Entering Extended 
Passive Mode (|||64303|) 150 Here comes the directory listing. drwx------ 2 1003 1003 512 May 28 00:47 
test 226 Directory send OK. ftp>

Работает, директория создается, файлы заливаются.
После чего, добавляем строку запуска в /etc/rc.conf


vsftpd_enable="YES" 

Перезагружаемся (можно запускать демона руками, из /usr/local/etc/rc.d/),
и проверяем:


USERCOMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS root vsftpd 705 0 tcp4 *:21 *:*

Вариант, приведенный в статье, является самым простейшим, и не содержит и 10 части тех возможностей, которые предоставляет этот демон. Для более тонкой настройки, этого не самого плохого демона, посоветую гуглить интернет, а так же обратиться к руководству по vsftpd, перевод которого я выполнил.

Следует так же, отметить одну особенность, vsftpd не поддерживает перекодировку, поэтому, если вас не смущает нечитабелная windows кириллица, то можете смело ставить vsftpd и пользоваться.

Хочется выразить благодарность thresh'у, за помощь и тестирование моего ftp сервера. И Raven2000 за
внесение поправок.

В процессе поиска ответов, на возникавшие вопросы, были использованы следующие материалы:

Сайт vsftpd -
http://vsftpd.beasts.org
Сайт разработчика, который дорабатывает vsftpd - http://vsftpd.devnet.ru
Статья CoderInside на opennet - http://www.opennet.ru/base/net/vftpd_virtual.txt.html



размещено: 2007-06-06,
последнее обновление: 2007-07-13,
автор:
Andy

Оригинал: снимок Wayback Machine от 02.06.2008.

Статичная копия: без входа, поиска, комментариев и скриптов. Ники и тексты авторов — как были; адреса почты скрыты.