Установка и настройка ftp-сервера vsftpd.
Contents
Введение
Цель этой статьи - рассмотреть более подробно этапы внедрения сервера разделения файлов средством FTP, используя vsftpd (Very Secure FTP Daemon).
Установка
Установите vsftpd через Aptitude или ?apt-get :
aptitude install vsftpd
После завершения установки, сервер будет автоматически запущен, и начнёт слушать TCP порт 21. Проверить что сервер успешно запустился можно с помощью команды netstat:
# netstat -npl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 22468/vsftpd
Если ваш ftp-сервер "vsftpd" находится не за firewall, то перед тем как настроить "vsftpd" для использования, будет разумно временно остановить его:
/etc/init.d/vsftpd stop
Настройка
Файл со значениями по умолчанию параметров настройки находится в /etc/vsftpd.conf
В файле с настройками используются три различных типа параметров:
- Логические параметры - основные параметры, которые могут содержать логические значения: либо YES либо NO;
- Числовые параметры - параметры, содержащие различные значения в числах, т.н. время в секундах или номер порта для соединения;
- Строковые параметры - содержат строку, т.н. путь к каталогу в файловой системе на диске: /var/run/vsftpd/;
Отдельно стоит отметить тот факт, что параметры (и их значения) могут отсутствовать в файле с настройками, это означает, что используется значение по умолчанию, обозначаемое как "Default:" в "man vsftpd.conf". Многие, не зная этого, уверены, что параметрам требуется напрямую указывать значения, и поэтому их файл с настройками вырастает до огромных размеров, хотя, на самом деле, обычно необходимо записать в файл настроек "/etc/vsftpd.conf" всего лишь несколько параметров, для установки значений вместо значений по умолчанию, если значения по умолчанию остальных параметров настройки приемлемы, то значит они не нуждаются в повторном добавлении.
Многие параметры настройки зависят от других параметров, например, если те параметры, от которых они зависят, отключены, то интересующие вас параметры настройки просто не будут работать. Некоторые параметры являются взаимоисключающими, то есть, это значит что они не будут работать в паре с определёнными другими установленными параметрами.
Символ решётки "#" - переводит автоматически следующую за ним всю строку, в комментарий, не используемый программой vsftpd.
Анонимный доступ
По умолчанию разрешён только анонимный аккаунт, который имеет доступ к каталогу /srv/ftp/. Если вы хотите его отключить:
anonymous_enable=NO
Для того, чтобы изменить каталог по умолчанию, используйте параметр anon_root :
anon_root=/data/directory
Если вы хотите оставить анонимный доступ, то Вам возможно потребуется установить следующие параметры:
anon_upload_enable=YES anon_mkdir_write_enable=YES
anon_upload_enable - разрешает или запрещает запись в каталог анонимного пользователя (значение переменной anon_root) (по умолчанию выключено(NO));
anon_mkdir_write_enable - разрешает в том же самом каталоге создание каталогов (по умолчанию выключено(NO));
Также Вы можете указать владельца загруженных на ftp-сервер "vsftpd" файлов: Полезным может оказаться факт указания точных прав существующего в операционной системе пользователя как владельца загруженных файлов :
chown_uploads=YES chown_username=username
Авторизованный доступ
Для того, чтобы разрешить авторизацию существующих в операционной системе пользователей, раскомментируйте:
local_enable=YES
Для того, чтобы разрешить таким (локальным) пользователям права на запись:
write_enable=YES
Содержание пользователей в «песочнице»
Пользовательские права могут иметь доступ к файлам всей системы, это всегда очень не желательно, и способствует компроментации машины; редактируя параметры Vsftpd.conf, пользователей можно поместить в «песочницу»:
chroot_local_user=YES
Их корень FTP будет тогда их личным каталогом.
Пользовательский аккаунт из системы может использоваться не только для ftp, но и для других случаев; для того, чтобы авторизоваться в системе в совершенно другом месте, например: ssh, getty (логин терминала). Пользователь будет иметь в таком случае также доступ к оболочке системы shell. Вы можете настроить, приведённые в примере, службы для того, чтобы блокировать возможность авторизации через аккаунт пользователя на службе или поместить его в «песочницу», но универсальное решение состоит в том, чтобы отключить shell для аккаунта пользователя.
Для этого, shell пользователя назначается в false, простой бинарник, который возвращает сигнал ошибки :
usermod -s /bin/false
Затем необходимо добавить false в список оболочек shell:
/bin/false >> /etc/shells
SFTP - SSL
Известные проблемы и их решения
Кодировки
Дополнительная информация
Файл хорошо прокомментирован на английском языке, а также, все параметры хорошо задокументированы и находятся под тем же именем в руководстве на страницах man:
man vsftpd.conf
Перевод файла "FAQ", содержащего часто задаваемые вопросы, из последней версии vsftpd доступен ?здесь
Сама программа располагается в каталоге "/usr/sbin/vsftpd", возможно, в разных дистрибутивах файл vsftpd.conf находится в разных местах, узнать его расположение, к примеру, можно командой "whereis vsftpd".
Перевод последней версии странички vsftpd_conf.html доступен здесь
После установки следует обратить внимание на файлы, содержащие документацию в каталоге "/usr/share/doc/vsftpd", каталог "EXAMPLE" уже содержит различные примеры файла настроек "vsftpd.conf".
Перевод различных примеров с документацией из каталога "EXAMPLE" последней версии vsftpd доступен здесь
Ссылки
vsftpd — Официальный сайт "Very Secure FTP Daemon"
vsftpd - manpage of VSFTPD.CONF — Официальный сайт "vsftpd", Руководство по VSFTPD.CONF