глобальные параметры
listen=NO – режим работы сервиса, через xinetd или в standalone;
listen_ipv6=NO – включение IPv6;
listen_address – IPv4 адрес для прослушивания сервисом (только в standalone режиме);
listen_address6 – IPv6 адрес для прослушивания сервисом (только в standalone режиме);
listen_port=21 – порт для входящих соединений (только в standalone режиме);
ftp_data_port=20 – порт используемый командой PORT;
background=NO – использование фонового режима (только в standalone режиме);
async_abor_enable=NO – включение возможности использования команды “async ABOR”;
connect_from_port_20=NO при включении исходящие с сервера соединения исходят с порта 20. Не рекомендуется т.к. при YES сервер работает с большими привилегиями;
ascii_download_enable=NO – режим передачи ASCII на загрузках;
ascii_upload_enable=NO – режим передачи ASCII на закачках;
one_process_model=NO – один процесс на пользователя вместо 2, быстрее, но менее безопасно;
pasv_enable=YES – разрешить PASV режим;
pasv_min_port – минимальное значение диапазона используемых портов в PASV режиме;
pasv_max_port – максимальное значение диапазона используемых портов в PASV режиме;
pasv_promiscuous=NO – не выполнять проверок параметров PASV. Рекомендуется не включать;
pasv_address – указывается адрес/имя который указывает при использовании PASV режима (по умолчанию, для PASV берётся ip-адрес сокета);
pasv_addr_resolve=NO – разрешает выполнять разрешение имени в ip, при использовании имени в pasv_address;
port_enable=YES – разрешить режим PORT;
port_promiscuous=NO – не делать проверок параметров PORT;
run_as_launching_user=NO – запуск сервера от имени запустившего пользователя. Не рекомендуется включать;
tcp_wrappers=NO – использование упаковщиков tcpd (hosts.allow и hosts.deny);
use_sendfile=YES – использовать sendfile() для ускорения работы;
nopriv_user=nobody – пользователь под которым работает сервер, когда ему не нужны никакие привилегии, лучше завести специального пользователя;
secure_chroot_dir=/usr/share/empty – сюда сервер делает chroot, когда ему не нужен доступ к файловой системе;
mdtm_write=YES – разрешает использовать MDTM для модификации времени доступа к файлам;
аутентификация
local_enable=NO – разрешает использовать локальные учетные записи из /etc/passwd;
userlist_enable=NO – использовать список пользователей из файла, указанного в userlist_file;
userlist_deny=YES – если задать NO, то будут допускаться только пользователи, указанные в файле, имя которого задаётся опцией userlist_file;
userlist_file – имя файла содержащего имена запрещённых или допустимых пользователей;
check_shell=YES – проверять /etc/shells при попытке входа локальных пользователей (только если vsftpd собран без PAM);
guest_enable=NO – все неанонимные входы рассматриваются от имени гостевого пользователя; это позволяет производить аутентификацию с помощью PAM;
guest_username=ftp – реальный пользователь под которым воспринимаются входы гостевых неанонимных пользователей;
no_anon_password=NO – не запрашивать пароль анонимных пользователей;
secure_email_list_enable=NO – пароли анонимных пользователей задаются в файле /etc/vsftpd.email_passwords;
email_password_file=/etc/vsftpd.email_passwords – имя файла, содержащего пароли анонимных пользователей;
virtual_use_local_privs=NO – виртуальные пользователи будут иметь привилегии локальных пользователей вместо анонимных;
pam_service_name=ftp – название PAM сервиса;
user_config_dir – каталог содержащий отдельные файлы с индивидуальными настройками для пользователей;
user_sub_token – генерация имени домашнего каталога для виртуальных пользователей (см. guest_enable) по шаблону, например с использованием $USER);
max_login_fails=3 – количество попыток ввода пароля;
delay_failed_login=1 – время между неудавшимся логином и выводом сообщения;
delay_successful_login=0 – время между удачным логином и выводом сообщения;
авторизация общая
cmds_allowed – список допустимых команд протокола FTP;
cmds_denied – список запрещенных FTP-команд;
deny_file – шаблон имён запрещённых файлов, “deny_file={*.mp3,*.avi}”;
hide_file – шаблон невидимых файлов;
download_enable=YES – позволять чтение файлов;
dirlist_enable=YES – позволять листинг каталогов;
force_dot_files=NO – показывать в листинге каталогов имена файлов, начинающиеся с ‘.’;
hide_ids=NO – скрывать имена владельцев файлов и группы;
ls_recurse_enable=NO – позволяет рекурсивный просмотр каталогов;
text_userdb_names=NO – показывать текстовые имена пользователей и групп в листинге;
use_localtime=NO – использовать локальное время вместо UTC;
write_enable=NO – позволять запись (APPE, DELE, MKD, RNFR, RNTO, RMD, SITE, STOR);
tilde_user_enable=NO – разрешать в именах файлов конструкции “~” и “~имя-пользователя”;
delete_failed_uploads=NO – удаление файлов появившихся после неудачных загрузок;
file_open_mode=0666 – маска закачиваемых файлов;
права локальных пользователей
chroot_list_enable=NO - использование списка пользователей, при аутентификации которых деляется chroot в их домашний каталог;
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=NO – при аутентификации всех локальных пользователей деляется chroot в их домашний каталог (в этом случае chroot_list_enable задаёт список исключений);
passwd_chroot_enable=NO – имя каталога для chroot извлекается из /etc/passwd по строке “/./”;
chmod_enable=YES – разрешает CHMOD для локальных пользователей, анонимные пользователи не могут в любом случае;
local_umask=077 – маска создания файлов и каталогов;
local_root – корневой каталог для локальных пользователей;
права анонимных пользователей
anonymous_enable=YES – включение анонимного входа;
anon_world_readable_only=YES – возможность скачивать файлы которые доступны только для всех;
anon_upload_enable=NO – возможность закачки файлов;
anon_umask=077 – маска создания файлов и каталогов;
anon_mkdir_write_enable=NO – возможность создания каталогов;
anon_other_write_enable NO – возможность удаления, переименования и др;
chown_uploads=NO – владелец анонимно загруженного файла устанавливается параметром chown_username;
chown_username=root – пользователь который становится владельцем загруженных файлов;
anon_root – в какой каталог переходить анонимным пользователям;
ftp_username=ftp - с правами какого пользователя обрабатывать анонимные запросы, домашний каталог этого пользователя будет корнем доступа;
журналирование
xferlog_enable=NO – журнал загрузок и записей в /var/log/vsftpd.log;
xferlog_std_format=NO – записывать журнал в формате wu-ftpd в /var/log/xferlog;
dual_log_enable=NO – записывать оба журнала: /var/log/xferlog и /var/log/vsftpd.log;
syslog_enable=NO – использовать syslog, подсистема FTPD;
vsftpd_log_file=/var/log/vsftpd.log – имя журнала в формате vsftpd;
xferlog_file=/var/log/xferlog – имя журнала в формате wu-ftpd;
log_ftp_protocol=NO – журналировать все команды FTP протокола (полезно при отладке);
no_log_lock=NO – блокировка журнала во время использования;
session_support=NO – поддержка сессий: запись в utmp и wtmp; pam_session;
setproctitle_enable= NO – состояние сессии показывается в списке процессов;
banner_file – файл с текстом приветствия;
ftpd_banner – текст приветствия;
dirmessage_enable=NO – при входе в каталог пользователь получает сообщение из файла .message;
message_file=.message – позволяет задать имя файла с сообщением в каталоге;
SSL
ssl_enable=NO – включение SSL;
ssl_sslv2=NO – использование SSLv2;
ssl_sslv3=NO – использование SSLv3;
ssl_tlsv1=YES – использование TLS;
debug_ssl=NO – журналирование диагностических сообщений SSL;
allow_anon_ssl=NO – разрешать анонимным пользователям пользоваться SSL;
force_anon_data_ssl=NO – насильно использовать SSL в анонимных соединениях;
force_anon_logins_ssl=NO – насильно использовать SSL в процесах аутентификации;
force_local_data_ssl=YES – насильно использовать SSL в неанонимных соединениях;
force_local_logins_ssl=YES – насильно использовать SSL в процесах аутентификации;
implicit_ssl=NO – установка SSL соединения происходит в первую очередь;
ca_certs_file – местонахождение сертификата от центра сертификации;
require_cert=NO – требование клиентского сертификата;
rsa_private_key_file – местонахождение закрытого ключа для SSL соединений.Если опция не определена то ожидается что ключ находится в том же файле что и сертификат;
dsa_private_key_file – местонахождение закрытого ключа для SSL соединений.Если опция не определена то ожидается что ключ находится в том же файле что и сертификат;
dsa_cert_file – местонахождение DSA ключа (не нужен если используется RSA ключ);
rsa_cert_file – местонахождение RSA ключа;
ssl_request_cert=YES – запрос клиентского сертификата (НЕтребование);
validate_cert=NO – проверка подлинности сертификатов. Самоподписанные сертификаты не пройдут порверку подлинности;
strict_ssl_read_eof=NO – загрузки должны завершаться через SSL, а не через EOF принятый через сокет. Это сделано для того чтобы убедиться что атакующий не завершил закачку подделаным TCP FIN. К сожалению по умолчанию выключено, потому что не все клиенты могут работать таким образом;
strict_ssl_write_shutdown=NO – аналогичное предыдущему, но относительно к закачкам;
ssl_cipher=DES-CBC3-SHA – используемый алгоритм шифрования;
require_ssl_reuse=YES – требовать многократного использование SSL сессии.
временнЫе параметры (в секундах)
accept_timeout=60 – время данное клиенту на установку соединения в PASV режиме;
connect_timeout=60 – время в течение которого клиент должен соединиться в PORT режиме;
data_connection_timeout=300 – таймаут в процессе передачи данных;
idle_session_timeout=300 – таймаут между FTP-командами;
управление трафиком (в байтах в секунду) и нагрузкой
anon_max_rate=0 – максимальная полоса прпускания для анонимных клиентов;
local_max_rate=0 – максимальная полоса прпускания для локальных клиентов;
max_clients=0 – максимальное количество клиентов (только в standalone режиме);
max_per_ip=0 – максимальное количество соединений с одного ip-адреса;
trans_chunk_size=0 – подстройка ограничителя полосы пропускания.