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

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
serg_sk
Бывший модератор
Сообщения: 2749
Статус: <3 Anime
ОС: Gentoo Linux <3

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

Сообщение serg_sk »

Наконец-то я выбрал таки ftp-сервер. И выбор мой как вы поняли остановился на vsftpd, правда не на официальном, а на vsftpd от http://vsftpd.devnet.ru/rus/, т.к. он имеет дополнительные возможности.
Теперь опишу причины, по которым я выбрал именно vsftpd:

Код: Выделить всё

1. Простой и удобный файл конфигурации с отличной документацией в man vsftpd.conf.
2. Виртуальные пользователи. Отлично работает, хотя мне это пока не нужно, но кто знает.
3. Мощнейшее управление пользователями.
4. Интеграция с SSL. (Еще предстоит настроить)
5. Поддержка перекодировок. Можно прописывать для каждого пользователя отдельно.
6. Возможность задавать правила доступа для анонимных пользователей.

Шаг 1. Установка. (Gentoo Linux)
Скачиваем архив с ebuild'ом vsftpd-2.0.5e.
Распаковываем содержимое в свой overlay, у меня это /usr/overlay/portage. Далее скачиваем сам vsftpd и кладём в /usr/portage/distfiles/.
После того как все это сделано, набираем emerge vsftpd.
В Gentoo Linux пользователь ftp создаётся автоматически с домашней директорией в /home/ftp. Если у вас не Gentoo Linux, то вам надо выполнить следующее:

Код: Выделить всё

# useradd nobody
# mkdir /home/ftp
# useradd -d /home/ftp ftp
# chown root.root /home/ftp
# chmod og-w /home/ftp

Шаг 2. Настройка.
Сначала нужно определиться что нам нужно от сервера. Лично мне нужно было, пускать анонимусов с правом записи в /home/ftp/incomming и чтением всего остального. Далее пускать только определенных локальных пользователей в определенные директории. Для анонимусов, т.к. они все у меня пользуются виндовсом, сделать перекодировку utf8(сервер)<->cp1251(клиент), для остальных пользователей перекодировку не делать.
Конфигурационный файл сервера находится в /etc/vsftpd/vsftpd.conf.

Код:

listen=YES #запускается без использования xinetd. listen_address=172.16.23.125 #привязка к ip и порту. listen_port=30005 anonymous_enable=YES #разрешаем вход анонимусам. local_enable=YES #разрешаем вход локальным пользователям. write_enable=YES #разрешаем выполнение команд STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE. anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #даем анонимусам право записи и т.п. dirmessage_enable=YES #показывать сообщение при первом входе в каталог. connect_from_port_20=YES chown_uploads=YES #изменять владельца загуржаемых файлов chown_username=ftpserg #собственно указывается новый владелец xferlog_enable=YES xferlog_file=/var/log/vsftpd.log idle_session_timeout=600 data_connection_timeout=120 nopriv_user=nobody ascii_upload_enable=NO ascii_download_enable=NO ftpd_banner=Welcome to CrazyNetwork FTP server. convert_charset_enable=YES #включаем перекодировку local_charset=UTF8 #локаль сервера remote_charset=WIN1251 #локаль клиента user_config_dir=/etc/vsftpd/vusers #указываем директорию с конфигурациями наших пользователей chroot_local_user=YES #чрутим локальных пользователей в их домашний каталог chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list userlist_file=/etc/vsftpd/user_list #список пользователей которым позволено подключаться к серверу userlist_enable=YES # сами userlist_deny=NO # правила

В /etc/vsftpd/user_list прописываем имена пользователей, которым будет разрешено подключаться к серверу, каждое имя с новой строки, анонимуса и ftp тоже следует вписать :)
Сейчас у нас сервер настроен на допуск пользователей из списка с перекодировкой utf8<->cp1251. Для пользователя ftpserg отключим перекодировку. Для этого создаём файл: /etc/vsftpd/vusers/ftpserg и прописываем туда строку:

Код: Выделить всё

convert_charset_enable=NO

Если этого пользователя надо чрутнуть не в /home/ftp, а наример в /var/www/mysite.com/, то в этот же файл пишем следующее:

Код: Выделить всё

local_root=/var/www/mysite.com/

Да, еще нужно правильно выставить правда на содержимое вашего ftp-сервера. Чтобы анонимусы могли писать в incomming на это папку следует поставить права 777 или 773, кому как нравится :)
Шаг 3. Запуск.

Код: Выделить всё

/etc/init.d/vsftpd start

И все, радуемся жизни :)

P.S. Замечания и дополнения приветствуются.
Оригинал тут.
Не ждали?! А я приперся!
Помойка Gentoo'шника
-------
Спасибо сказали:

Аватара пользователя
serg_sk
Бывший модератор
Сообщения: 2749
Статус: <3 Anime
ОС: Gentoo Linux <3

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

Сообщение serg_sk »

По просьбам трудящихся:
пример user_list

Код: Выделить всё

FTP ~ # cat /etc/vsftpd/user_list
ftpserg
ftpmax

Такое содержание будет и в /etc/vsftpd/chroot_list, у меня он просто пуст.

Код: Выделить всё

FTP ~ # ls /etc/vsftpd/vusers/
ftpserg  pioneer  vid

Тоесть в этой директории создаем файлы конфигурации и именуем их, как ники соответствующих пользователей, которым мы хотим сделать индивидуальные конфигурации.

Код: Выделить всё

FTP ~ # cat /etc/vsftpd/vusers/ftpserg
convert_charset_enable=NO

В данном случае я для пользователя ftpserg не делаю перекодировку имен файлов, а оставляю все как есть.

В принципе это все описано в посте выше :)
Не ждали?! А я приперся!
Помойка Gentoo'шника
-------
Спасибо сказали:

Аватара пользователя
kidoz
Сообщения: 180
ОС: Archlinux/Gnome

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

Сообщение kidoz »

Права доступа для anonymous.
Для это надо добавить в /etc/vsftpd/vsftpd.conf (/etc/vsftpd.conf) две строчки:

Код: Выделить всё

add_default_rule=1
pasv_addr_rules=/etc/vsftpd/vsftpd.pasv_rules.conf #Указывает серверу откуда читать данные с правилами доступа. Можно заменить на /etc/vsftpd.pasv_rules.conf Кому как удобней.

Далее надо создать vsftpd.pasv_rules.conf тут /etc/vsftpd/ или тут /etc/ в зависимости от того как вы указывали в vsftpd.conf.
В нем создаем в таком виде правила:

Код: Выделить всё

# LocalIP RemoteMask PassiveAddress rem_char anon anon_upl anon_md anon_oth anon_del
 0.0.0.0  192.168.0.175/32 0.0.0.0         UTF8      yes   yes           yes          yes         yes     #Можно располагать и через один пробел, так сделано для наглядности.

Поподробней о параметрах:

Код: Выделить всё

LocalIP и PassiveAddress - указываем ip FTP-сервера.
RemoteMask - указываем ip клиента
rem_char - кодировка, которую использует пользователь. (UTF8, WIN1251, KOI8R и другии)
anon - тут можно разрешить/запретить анонимный вход. (yes/no)
anon_upl - разрешить/запретить загрузку на сервер. (yes/no)
anon_md - разрешить/запретить создание каталогов. (yes/no)
anon_oth - разрешить/запретить запись на сервере. (yes/no)
anon_del - разрешить/запретить удалять файлы, папки. (yes/no)
irc.freenode.net #archlinux-ru (UTF-8)
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

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

Сообщение Voler »

listen=YES
local_enable=YES
write_enable=YES
dirmessage_enable=YES
chown_uploads=YES
chown_username=Zet-Techno
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=300
data_connection_timeout=50
ftpd_banner=Welcome to Serv FTP server.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_file=/etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
max_per_ip=2
max_clients=10


Из сети конекчусь нормально, а вот по внешнему порту нет. Что не так?
Спасибо сказали:

4umodan
Сообщения: 73
ОС: Ubuntu 9.10

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

Сообщение 4umodan »

хм, а у меня ругается на директивы convert_charset, говорит, что таких не бывает
Спасибо сказали:

Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

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

Сообщение Corsair »

4umodan, потому что они бывают только в девнетовском vsftpd. В официальном их нет.
Жестокий стоячий админ (с) коллега
Спасибо сказали:

Аватара пользователя
Nika
Сообщения: 229
Статус: irc bot

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

Сообщение Nika »

vsftpd установлен, конфиг я настроила - прописала nopriv_user=ftp
домашний каталог у него /home/ftp
в этом каталоге я создала 2 папки, права на чтение этих папок есть у всех.

но - когда захожу на ФТП - там пусто!! :dash2:


UPD: проблема в другом, vsftpd вообще не запускается :)

UPD2: serg_sk, спасибо огромное, хорошая статья, очень мне помогла в настройке!! :dance3:
Спасибо сказали:

Аватара пользователя
Redfoxnet
Сообщения: 394
ОС: Gentoo

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

Сообщение Redfoxnet »

Не могу зарегистрироваться на девнетовском форуме. Интересует такой вопрос - как подружить этот vsftpd с пользователями из OpenLDAP ?
vsftpd из репозитория (Debian lenny/sid amd64) c OpenLDAP хорошо подружился и работает, а девнетовский не может найти пользователей, при одинаковом конфиге (разница только в месте расположения и, в закоментированных строчках перекодировки локали). Конфиги, если надо приложу, но только днем.
Portage 2.1.7.16 (default/linux/amd64/10.0, gcc-4.4.2, glibc-2.11-r1, 2.6.32-gentoo-r2 x86_64) @ Intel® Core&#153;2 Duo CPU E6750

Челябинская группа пользователей GNU/Linux

Спасибо сказали:

Аватара пользователя
Игорище
Сообщения: 214
Статус: экспериментатор
ОС: Fedora 8/13, WindowsXP

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

Сообщение Игорище »

serg_sk писал(а):
20.01.2007 12:15
В Gentoo Linux пользователь ftp создаётся автоматически с домашней директорией в /home/ftp. Если у вас не Gentoo Linux, то вам надо выполнить следующее:

Код: Выделить всё

# useradd nobody
# mkdir /home/ftp
# useradd -d /home/ftp ftp
# chown root.root /home/ftp
# chmod og-w /home/ftp

Шаг 2. Настройка.

А возможно ли (и если да, то как) открыть по фтп некую папку, не лежащую в /home, например /store/video...?
Desktop: PentiumD 2.0Ghz, 2GbRAM, video - intel, Fedora 14 x86_64, Gnome
Laptop 1: Toshiba Satellite M100, WinXP HE SP3
Laptop2: IBM Thinkpad R30, Debian 4.0 etch, Gnome
и целый зоопарк в VirtualBox...
Спасибо сказали:

Аватара пользователя
Redfoxnet
Сообщения: 394
ОС: Gentoo

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

Сообщение Redfoxnet »

смонтировать /store/video в /home/ftp/video
Portage 2.1.7.16 (default/linux/amd64/10.0, gcc-4.4.2, glibc-2.11-r1, 2.6.32-gentoo-r2 x86_64) @ Intel® Core&#153;2 Duo CPU E6750

Челябинская группа пользователей GNU/Linux

Спасибо сказали:

Аватара пользователя
Игорище
Сообщения: 214
Статус: экспериментатор
ОС: Fedora 8/13, WindowsXP

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

Сообщение Игорище »

Redfoxnet писал(а):
28.10.2008 18:42
смонтировать /store/video в /home/ftp/video

Я не тормоз, я медленный газ (с) :crazy:
Спасибо! :rolleyes:
Desktop: PentiumD 2.0Ghz, 2GbRAM, video - intel, Fedora 14 x86_64, Gnome
Laptop 1: Toshiba Satellite M100, WinXP HE SP3
Laptop2: IBM Thinkpad R30, Debian 4.0 etch, Gnome
и целый зоопарк в VirtualBox...
Спасибо сказали:

kosteel
Сообщения: 330
Статус: Root Lamer
ОС: Debian GNU/Linux 5.02 amd64

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

Сообщение kosteel »

а как по простому сделать, чтобы все локальные юзеры заходили на сервер и чрутились в один каталог?
в системе есть несколько локальных пользователей без домашних каталогов и есть каталог для ftp-сервера /var/ftoroot нужно, чтобы анонимус заходил в папку ./anon, а локальные пользователи в ./auth. Заморачиваюсь со всевозможными chroot_list_enable и иже с ним, но при входе сервер отвечает "can not chroot"
Ничто не вечно под рутом
Спасибо сказали:

Аватара пользователя
vlav
Сообщения: 242

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

Сообщение vlav »

Подскажите что надо сделать, чтобы локальные пользователи, зашедшие по фтп, не могли видеть по ls ничего ниже своей домашней директории?
любимая ОС- FC
Спасибо сказали:

Аватара пользователя
sergldom
Сообщения: 26
ОС: Debian

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

Сообщение sergldom »

Зачрутить их в свой домашний каталог, то есть:
chroot_local_user=YES
Спасибо сказали:

avatar77
Сообщения: 10

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

Сообщение avatar77 »

Подскажите пожалуйста, можно решить эту проблему!
в официальном vsftpd стандартный лог выглядит нормально, все через пробелы, в девнетовской версии через табуляцию, можно это как то исправить, не понимают анализаторы этот лог файл, пробывал - awstats и w3perl. Я бы оставил официальную версию, но там нет функции перекодировки :( ...
Спасибо сказали:

Rusya89
Сообщения: 10
ОС: Slackware 12.1

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

Сообщение Rusya89 »

avatar77 писал(а):
19.02.2009 23:52
Подскажите пожалуйста, можно решить эту проблему!
в официальном vsftpd стандартный лог выглядит нормально, все через пробелы, в девнетовской версии через табуляцию, можно это как то исправить, не понимают анализаторы этот лог файл, пробывал - awstats и w3perl. Я бы оставил официальную версию, но там нет функции перекодировки :( ...


Наложите патч перекодировки на стандартные исходники и соберите, а вообще странно, с опциями логирования игрались? там есть несколько вариантов ведения лога, если мне память не изменяет.
Спасибо сказали:

Madslyy
Сообщения: 1
ОС: XP

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

Сообщение Madslyy »

А для чего ФТП использовали?
Спасибо сказали:

Аватара пользователя
Arkey
Сообщения: 12
ОС: Ubuntu 8.10

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

Сообщение Arkey »

Ого, пользуясь случаем, благодарю за хороший мануал .
Сам по нему полгода назад настраивал. Забыл уже, а тут наткнулся.
Тогда линуха для меня была темный лес. Но разобрался, вроде. :)
Intel Core 2 Duo, 3 GB Ram, Nvidia 9800 GT, Ubuntu 9.04.
Ubuntu Server 8.04.2 LTS. Postfix.
Debian Lenny 5.0.1 Postfix + Squerrel Mail + Jabber Server Openfire
ALTLinux 4.0 Stargazer + Squid
Спасибо сказали:

vadim2
Сообщения: 2

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

Сообщение vadim2 »

Никак не могу сделать, чтобы доступ к фтп был открыт только определённому диапазону ип, подскажите пожалуйста.
Спасибо сказали:

Аватара пользователя
student777
Сообщения: 15
ОС: XP

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

Сообщение student777 »

как запретить root'у конектиться как с локалки, так же и с глобала?

есть ли такая возможность у этого сервера ?

или без iptables не обойтись ?
Спасибо сказали:

Аватара пользователя
BlackHawk
Сообщения: 40
ОС: Gentoo, OpenSuSE

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

Сообщение BlackHawk »

student777 писал(а):
30.03.2009 03:25
как запретить root'у конектиться как с локалки, так же и с глобала?

в vsftpd.conf прописать

Код: Выделить всё

userlist_enable=YES
userlist_file=/path/to/file
userlist_deny=YES

в файле, указанном директивой userlist_file прописать юзеров, которым запрещено логиниться(каждого с новой строки)
при userlist_deny=NO войти смогут только пользователи, указанные в этом файле
Gigabyte GA-EP35-DS3/Core2Duo E7300 2.66GHz/2 Gb RAM/120 + 300 Gb HDD/Radeon HD 3870 512Mb
OpenSUSE 11.1 kernel-2.6.27.7/Xorg 7.4/KDE 4.2.4/Compiz 0.8.2
Спасибо сказали:

armagedonkr
Сообщения: 1

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

Сообщение armagedonkr »

Смонтировал разделы и в каждой папке появилась дополнительная папка "lost+found".
Вопрос: Как возможностями vsftpd можно скрыть данные папки?
Спасибо сказали:

Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

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

Сообщение BSDevil »

Поправил стандартный ебилд под последнюю версию rus vsftpd
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Спасибо сказали:

Аватара пользователя
kpocobok
Сообщения: 92

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

Сообщение kpocobok »

А как можно расшарить сразу несколько папок? Допустим /home/www/ и /var/log/ ?
С помощью local_root я так понял, что можно расшарить только одну папку.
Спасибо сказали: