RSS
 

Настройка vsftpd под linux

15 Авг

ftpМного литературы есть по этому поводу, и повторяться не хотелось бы, но по просьбам трудящихся постараюсь вкратце без особо глубоких умных объяснений написать как настроить этот простой и очень хороший сервис в linux.

В отличие от samba, которой нужна очень тонкая настройка, сервис vsftpd работает почти с нуля. То есть, вы можете, прям после установки его с пакета, запустить с дефолтным конфигом и он будет работать. Что мы можем сделать, то это создать каталоги для работы с ftp. Обычно это каталоги pub (public), incoming. Первый создается для чтения, второй – для записи. Поэтому создаем вышеуказанные каталоги. Создать их надо в каталоге /var/ftp/ или где-то в другом месте, но тогда нужно сделать ссылку на эти каталоги в /var/ftp/. При установке linux можно смонтировать каталог /var/ как отдельный раздел и тогда его можно полностью или частично задействовать под ftp. Итак, создаем каталог /vat/ftp/pub/.

# mkdir /var/ftp/pub
; создаем каталог pub
# chmod 2775 /var/ftp/pub
; назначаем права доступа к каталогу – каталог на чтение; чтение, запись и запуск файлов для собственника (root) и пользователей группы (alias), чтение и запуск файлов для других
# chown root.alias /var/ftp/pub
; назначаем собственника каталога (root)и группу (alias), пользователи которой будут иметь вышеуказанные права

 Теперь создадим каталог /var/ftp/incoming:

 # mkdir /var/ftp/incoming
; создаем каталог incoming
# chmod 3777 /var/ftp/pub
; назначаем права доступа к каталогу – каталог на чтение и запуск; запись, чтение и запуск файлов для всех
# chown root.alias /var/ftp/pub
; назначаем собственника каталога (root) и группу (alias), пользователи которой будут иметь вышеуказанные права

Теперь разберем немного дефолтный конфиг /etc/vsftpd/vsftpd.conf. Первое, что нужно сделать – обратить внимание на то, имеют ли доступ к вышеперечисленным каталогам анонимные пользователи. Обычно имеют. Поэтому в конфиге параметр anonymous_enable=YES — оставляем раскомментированым.

Строчка local_enable=YES означает разрешение локальным пользователям с использованием /etc/passwd для аутентификации заходить на ftp. Далее строка write_enable=YES разрешает писать в каталоги (тоже надо).  anon_upload_enable=YES – разрешаем загрузку аноним пользователям в разрешенные каталоги. anon_mkdir_write_enable=NO – запрещаем анонимным пользователям плодить каталоги. chown_uploads=YES и chown_username=alias – автоматически меняют права на загруженные файлы. Оставляем закомментированными.

Далее пропускаем несущественные настройки и переходим к строке chroot_list_enable=YES – «запирать» пользователей в домашнем каталоге. То есть при входе на ftp как не анонимный пользователь (вводя логин и пароль), вы попадете в свой домашний каталог и никуда из него не выберетесь, если эта сточка закомментирована или стоит chroot_list_enable=NO, то все пользователи будут попадать в корневой каталог. Строчка chroot_list_file=/etc/vsftpd/chroot_list – неотъемлемая часть предыдущей настройки – здесь в столбик прописываются пользователи, которых в случае chroot_list_enable=YES нужно «запирать» в своем каталоге.

Можно добавить список портов для пассивного режима работы, через которые будут передаваться данные. Это делается строчками pasv_min_port=30000 и pasv_max_port=30999 – выделяем 1000 портов для передачи данных. В случае использования межсетевого экрана эти строчки обязательны. Ну и еще одна важная строчка — userlist_enable=YES – при userlist_deny=YES (default) не разрешать  пользователям, определенным в файле /etc/vsftpd/user_list, входить по ftp, при этом даже не спрашивать пароль. При userlist_deny=NO – только этим пользователям из файла разрешать вход по ftp. Вот такая, немного запутанная опция.

Сохраняем конфиг, перезапускаем сервис и работаем. Как я и говорил, мы не будем касаться глубоких настроек этого чудного демона – их много, они сложные и мощные, и востребованы в случае, если вы настраиваете ftp как провайдер для своих клиентов. Там и виртуальные пользователи, там и доступ по шелу, там привязка к адресу клиента и много другое. Более подробно можно изучить сервис, прочитав мануал, который есть, наверное, в каждом дистрибутиве linux.

Чуть не забыл… Если есть межсетевой экран, то нужно обязательно разрешить порт 21/tcp для коннекта и порты для передачи данных (у нас 30000-30999). Для iptables это выглядит примерно так:

/sbin/iptables -A INPUT -p tcp —dport 21 -d X.X.X.X -j ACCEPT
/sbin/iptables -A INPUT -p tcp —dport 30000:30999 -d X.X.X.X -j ACCEPT

где Х.Х.Х.Х — ip адрес вашего ftp-сервера.

Успехов!

 

Комментарии facebook

Комментарии vkontakte

1 комментарий

Опубликовано в Linux, Сети

 

Теги:

Оставить комментарий

 

 
  1. Сергей

    Ноябрь 22, 2014 at 09:05

    Не подскажете в чем проблемма?
    Установил vsftpd, в конфиге прописал
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    Добавил пользователя, назвачил домашнюю папку.
    Конектится все ОК, но пользователь может бродить по всей системе. Как ему ограничить выход из своей папки?