Пример настройки vsftpd во FreeBSD


/etc/vsftpd.conf:

# Запускаем как демон, а не из inetd.
listen=YES
background=YES
listen_address=192.168.1.1

# Включаем возможность использования tcpwrapper, лимиты через /etc/hosts.allow
tcp_wrappers=YES

# Пускаем только пользователей имеющих валидный shell, присутствующий в /etc/shells
check_shell=YES

# Вместо реальных владельцев файлов всегда показываем ftp:ftp
hide_ids=YES

# Общее максиамльно допустимое число коннектов.
max_clients=100

# Разрешенное число коннектов с одного IP.
max_per_ip=5

# Таймаут при ожидании команды
idle_session_timeout=300

# Таймаут при передаче данных
data_connection_timeout=60

# Непривилегированный пользователь, для того чтобы делать под ним, что можно выполнить без root.
nopriv_user=ftp

# Запрещаем рекурсивный вызов "ls -R"
ls_recurse_enable=NO

# Ограничение скорости прокачки для анонимных и локальных пользователей (байт в сек.)
anon_max_rate=50000
local_max_rate=100000

# Включаем ведение лога операций.
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

# Расширенные логи всех команд
log_ftp_protocol=YES


# ------------ Настрйоки для анонимного сервера

# Если сервер публичный, пускающий анонимных пользователей
anonymous_enable=YES
anon_umask=077

# Корень анонимного ftp архива
anon_root=/usr/local/ftp

# Запрещаем анонимным пользователям запись данных, если нужно разрешить
# запись для локальных пользовтелей (write_enable=YES)
anon_upload_enable=NO

# Запрещаем создавать директории.
anon_mkdir_write_enable=NO

# Запрещаем переименовывать и удалять
anon_other_write_enable=NO

# Если нужно запретить доступ к определенным типам файлов по маске
# deny_file={*.mp3,*.mov, *.avi, .filelist}

# Если нужно скрыть определенные типы файлов при выводе списка, но дать скачать тем кто знает точное имя.
# hide_file={*.mp3,*.mov, *.avi}

# Если анонимную закачку необходимо разрешить, нужно дополнительно использовать chown_uploads=YES и chown_username=ftp_anon_user

# Если нужно пускать анонимных пользователей только при правильном введении email (аналог паролей для ограничения доступа к публичному ftp), заданного в файле определенном директивой email_password_file, нужно установить
# secure_email_list_enable=YES

# ------------ Настрйоки для входа локальных пользователей

# Если сервер разрешает вход локальных пользователей, присутствующих в системе
local_enable=YES

# "-rw-r--r--"
local_umask=022

# Разрешаем показ файлов начинающихся с точки (например, .htaccess) для кривых ftp-клиентов
force_dot_files=YES

# Разрешаем пользователям записывать/изменять свою информацию на сервер. если нужно запретить запись данных - write_enable=NO
# Более тонкий тюнинг через "cmds_allowed=PASV,RETR,QUIT"
write_enable=YES

# Для всех пользователей делаем chroot, делаем корнем их домашнюю директорию,
# Список логинов для которых не нужно делать chroot задаем в vsftpd.chroot_list
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

# Активируем список пользователей которым запрещен вход по FTP (например, root)
userlist_enable=YES
userlist_file=/etc/ftpusers

Обновлено: 12.03.2015