Настройка vsftpd

Приветствую всех. Сегодня я расскажу о настройке простого и в то же время безопасного FTP сервера vsftpd, который распространяется под лицензией GPL, работающий на UNIX системах, включая Linux. Он является безопасным и быстрым в работе, так же стоит отметить его стабильность.

Особенности:

  • поддержка виртуальных хостов
  • возможность создания виртуальных пользователей
  • может работать как самостоятельный демон или совместно с inetd
  • гибкая конфигурация
  • поддержка ограничения скорости канала
  • поддержка IPv6
  • поддержка SSL
  • и многое другое

vsftpd используется такими популярными проектами, как FreeBSD, GNU, KDE (полный список).

Теперь ближе к делу... Лезем в порты и ставим сервер:

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

По окончанию установки правим конфиг, у меня он получился таким:

# Разрешить анонимным пользователям вход на FTP сервер?
anonymous_enable=NO
#
# Разрешить локальным пользователям входить на сервер.
local_enable=YES
#
# Разрешить любые FTP команды записи.
write_enable=YES
#
# Маска для новых файлов
local_umask=027
#
# Разрешить анонимным пользователям заливать файлы на сервер. 
# Не забудьте создать директорию с правами на запись, принадлежащую
# пользователю FTP.
anon_upload_enable=NO
#
# Разрешить анонимным пользователям создавать новые директории.
anon_mkdir_write_enable=NO
#
# Активировать сообщения в директориях. 
dirmessage_enable=YES
#
# Включить лог закачки/скачки.
xferlog_enable=YES
#
# Передавать данные через 20 порт (ftp-data)?
connect_from_port_20=NO
#
# Если вы хотите сделать так, чтобы загруженными файлами анонимных
# пользователей владел другой пользователь, то включите эту опцию.
# Не рекомендуются использовать для этих целей пользователя - root.
#chown_uploads=YES
#chown_username=whoever
#
# Файл для ведения логов
#xferlog_file=/var/log/vsftpd.log
#
# Использовать стандартный ftpd xferlog формат.
# Учтите, что в этом случае для ведения логов будет использоваться файл /var/log/xferlog.
#xferlog_std_format=YES
#
# Время простоя сессии (в секундах).
idle_session_timeout=600
#
# Время простоя при передачи данных.
data_connection_timeout=120
#
# Здесь рекомендуется указывать непривилегированного пользователя в системе
nopriv_user=nobody
#
# Включить, чтобы сервер обрабатывал асинхронные ABOR запросы.
# Не рекомендуется по соображениям безопасности.
async_abor_enable=NO
#
# Разрешить скачку/закачку в ASCII режиме. На некоторых ftp серверах
# через подобнуу фичу можно вызвать отказ в обслуживании (DoS),
# используя команду "SIZE /big/file" в ASCII режиме.
# vsftp может определить подобную атаку и предотвратить.
ascii_upload_enable=NO
ascii_download_enable=NO
#
# Приветственное сообщение:
ftpd_banner=Welcome to FTP server.
#
# Вы можете указать запрещенные email адреса для входа анонимным пользователям.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# chroot,ить локальных пользователей в домашнюю папку?
# Так же вы можете указать список пользователей, которых нужно chroot,ить.
# Если chroot_local_user включено, тогда пользователи в том списке
# не будут запираться в домашней папке.
chroot_local_user=YES
chroot_list_enable=NO
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# Включить обработку опции "-R" в команде ls. Эта фишка отключена по умолчанию,
# для исключения ситуации, при которой удаленные пользователи могут вызвать 
# большое количество операций ввода/вывода.
ls_recurse_enable=YES
#
# При включенной опции, vsftpd работает в режиме демона.
# Эта опция не может совместно использоваться с listen_ipv6.
listen=NO
#
# Подключать клиентов через IPv6 сокеты. Для подключения клиентов через IPv4 и IPv6
# сокеты, вы должны запускать два демона vsftpd, то есть использовать два конф. файла.
# Одна из опций listen всегда должна быть закомментирована!!
#listen_ipv6=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty

# Для использования vsftpd в режиме демона, раскомментируйте следующие две строки:
# listen=YES
# background=YES

# The  maximum  port  to allocate for PASV style data connections.
# Can be used to specify a  narrow  port  range  to  assist  fire-
# walling.
pasv_max_port=65000
# The  minimum  port  to allocate for PASV style data connections.
# Can be used to specify a  narrow  port  range  to  assist  fire-
# walling.
pasv_min_port=60000

Теперь, когда конфиг готов, запустим установленный сервис. У меня он будет работать через inted, поэтому в файл /etc/inetd.conf я добавил следующую строку:

ftp     stream  tcp     nowait  root    /usr/local/libexec/vsftpd vsftpd /usr/local/etc/vsftpd.conf

Заставляем inetd перечитать конфиг:

# service inetd reload

Проверим, висит ли сервис на нужном порту:

# sockstat -4 | grep 21
root     inetd      1220  5  tcp4   *:21                  *:*

Если сервис работает, то на этом настройка FTP сервера закончена. Если же нет, то читайте логи и проверяйте конфиг.

Добавить комментарий

CAPTCHA
Протокол SMB
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Яндекс.Метрика