Вход:  Пароль:  
FreeSource: ShuvakinNikolay ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия ShuvakinNikolay за 2005-12-06 09:45:55..

Установка ФТП сервера vsftpd из исходников.


В качестве дистрибутива были использованы файлы загруженные с сайта http://vsftpd.beasts.org. Имя архива vsftpd-2.0.3.tar.gz.
В дистрибутиве ASPLinux 10 есть аналогичный rpm-пакет, он работает однако я не нашел в нем возможность изменить директорию для ftp сервера, поэтому я решил использовать исходники.


Перейдем в директорию в которую распаковали архив и от имени простого пользователя даем команду make.
(Процедура установки подробно описана в файле README поставляемом вместе с архивом)
По этой команде в текущем каталоге должен собраться бинарный файл vsftpd. В моем случае он не собрался из-за того что на сервере не было установлено gcc, поэтому собирать бинарник мне пришлось на другом компьютере а затем копировать его на данный.
Проверить создался ли бинарный файл или нет можно командой ls -l vsftpd. Результат должен быть примерно следующий:


-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd


Далее необходимо проверить существует ли в системе пользователь nobody, если такого нет, то его нужно создать командой useradd (это и все дальнейшие действия выполняются от root).
Также нужно создать директорию /usr/share/empty которая нужна для установки сервера.
Создаем пользователя ftp для анонимного доступа к ftp и задаем ему домашний каталог:


mkdir /ftpdir //создали директорию в корне
useradd -d /ftpdir ftp //добавили пользователя и определили ему домашний каталог.


Теперь нужно выполнить команды:


chown root.root /ftpdir
chmod og-w /ftpdir


Далее make install
Затем:


cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/share/man/man5
cp vsftpd.8 /usr/local/share/man/man8
cp vsftpd.conf /etc


Сервер может быть запущен в режиме standalone или через xinetd. Если запускать через xinetd то мы получим больше функций и возможностей. Но сначала нужно попробовать запустить сервер в режиме standalone. Для этого в файл vsftpd.conf нужно внести строку listen=YES
Эта строка говорит о том что сервер стартует не из xinetd.
Перед запуском нужно проверить не запущены ли другие ftp-серверы. Команда для запуска в режиме standalone следующая:


/usr/local/sbin/vsftpd &


Если никаких ругательных сообщений не появилось, значит сервер запустился нормально и уже можно попробовать подсоединиться к нему с локального хоста (127.0.0.1). У меня запустить сервер в таком режиме не получилось. Сервер сказал что он не может быть запущен в режиме standalone. По-этому я перешел к запуску через xinet.d
Для этого нужно скопировать примеры конфигурационных файлов в соответствующие места. В каталоге где распакованы исходники есть каталог EXAMPLE в котором находятся примерные файлы конфигураций для разных назначений сервера. В файле INSTALL рекомендуют брать конфигурационные файлы из подкаталога /EXAMPLE/INTERNET_SITE


cp vsftpd.xinetd /etc/xinetd.d/vsftpd
cp vsftpd.conf /etc


После чего перезапускаем xinetd


/etc/rc.d/init.d/xinetd restart


Сервер нормально запустился. В принципе конфигурационные файлы взятые из каталога EXAMPLE нормально работают и без изменений, но у меня возникла проблема с каталогом incoming: Если один пользователь записал туда файл то другой не мог забрать, не хватало прав. После поисков информации на community.asplinux.ru мне удалось найти описание подобной проблемы. Я написал письмо этому человеку и он мне прислал свой конфиг, который я немного подправил для себя и проблема с каталогом incoming вроде бы решилась. Ниже приведен мой работающий vsftpd.conf


# Access rights
anonymous_enable=YES
local_enable=NO
write_enable=YES
anon_umask=000
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# Security
anon_world_readable_only=YES
connect_from_port_20=YES
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
# Features
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
ftpd_banner=Welcome to VGTS Linux ftp service.
# Performance
one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
anon_max_rate=50000


Вот собственно и все.



 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]