Настройка vsftpd в CentOS

 

vsftpd (Very Secure Ftp Daemon) разрабатывался Chris Evans, недовольным уровнем безопасности, производительности и сложностью настройки как "классического" FTP-сервера wu-ftpd, так и ProFTPD. Бесплатен (GPL). Текущая версия - Jul 2015 - vsftpd-3.0.3. Настраивается с помощью одного очень простого файла конфигурации (можно иметь несколько экземпляров, привязанных к разным адресам и/или портам). Возможен запуск в автономном режиме или через inetd/xinetd. Поддерживается SSL, IPv6, виртуальные пользователи, управление трафиком, настройки в зависимости от имени и IP адреса пользователя.

 

Настройка vsftpd

 

Сам сервер (/usr/sbin/vsftpd) имеет ровно один параметр - имя файла конфигурации.

 

Файл конфигурации (обычно /etc/vsftpd/vsftpd.conf) состоит из директив. Каждая директива располагается на отдельной строке. Строка, начинающаяся с "#", является комментарием. Директива состоит из имени опции и значения, разделённых символом "=" без пробелов. Опции делятся на логические (NO, YES), строчные и неотрицательные целые:

 

режимы работы и общие параметры

listen NO (автономная работа без inetd/xinetd)

listen_ipv6 NO

listen_address

listen_address6

listen_port 21 (в автономном режиме)

ftp_data_port 20

background NO (перейти в фоновый режим при автономном запуске)

async_abor_enable NO

connect_from_port_20 NO (при включении исходящие с сервера соединения исходят с порта 20, при выключении сервер может работать с несколько меньшими привилегиями)

ascii_download_enable NO

ascii_upload_enable NO

one_process_model NO (один процесс на пользователя вместо 2, быстрее, но менее безопасно)

pasv_enable YES (разрешить режим PASV)

pasv_min_port 0

pasv_max_port 0

pasv_promiscuous NO (не делать проверок параметров PASV)

pasv_address (по умолчанию, для PASV берётся адрес сокета)

port_enable YES (разрешить режим PORT)

port_promiscuous NO (не делать проверок параметров PORT)

run_as_launching_user NO (сервер будет работать от имени запустившего пользователя)

tcp_wrappers NO (переменная VSFTPD_LOAD_CONF в /etc/hosts.allow задаёт имя конфигурационного файла vsftpd)

use_sendfile YES (использовать sendfile() для ускорения работы)

nopriv_user nobody (под этим пользователем сервер работает, когда ему не нужны никакие привилегии, лучше завести специального пользователя)

secure_chroot_dir /usr/share/empty (сюда сервер делает chroot, когда ему не нужен доступ к файловой системе)

аутентификация и права входа

local_enable NO (использовать /etc/passwd для аутентификации пользователей)

userlist_enable NO (пользователи из файла, заданного опцией userlist_file, не допускаются до запроса пароля)

userlist_deny YES (если задать NO, то будут допускаться только пользователи, указанные в файле, имя которого задаётся опцией userlist_file)

userlist_file (имя файла содержащего имена запрещённых или допустимых пользователей)

check_shell YES (проверять /etc/shells при попытке входа локальных пользователей)

guest_enable NO (все неанонимные входы рассматриваются от имени гостевого пользователя; это позволяет производить аутентификацию с помощью PAM (pam_userdb) относительно файла имён виртуальных пользователей)

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

user_config_dir (позволяет задавать часть параметров в зависимости от имени пользователя; из этого каталога читается файл с именем пользователя, который рассматривается как дополнение к файлу конфигурации)

user_sub_token (генерация имени домашнего каталога для виртуальных пользователей (см. guest_enable) по шаблону, например с использованием $USER)

авторизация общая

cmds_allowed (список допустимых команд протокола FTP)

deny_file (шаблон имён запрещённых файлов, "deny_file={*.mp3,*.mov,.private}")

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 (позволять команды STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, SITE)

tilde_user_enable NO (разрешать в именах файлов конструкции "~" и "~имя-пользователя")

права локальных пользователей

chroot_list_enable NO (в файле /etc/vsftpd.chroot_list задаётся список пользователей, при аутентификации которых деляется 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 (SITE 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

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_sslv2 NO

ssl_sslv3 NO

ssl_tlsv1 YES

allow_anon_ssl NO (разрешать анонимным пользователям пользоваться SSL)

force_local_data_ssl YES

force_local_logins_ssl YES

dsa_cert_file

rsa_cert_file /usr/share/ssl/certs/vsftpd.pem

ssl_ciphers DES-CBC3-SHA

интервалы ожидания (в секундах)

accept_timeout 60 (для PASV)

connect_timeout 60 (для PORT)

data_connection_timeout 300 (замирание в процессе передачи данных)

idle_session_timeout 300

управление трафиком (в байтах в секунду) и нагрузкой

anon_max_rate 0

local_max_rate 0

max_clients 0

max_per_ip 0

trans_chunk_size 0

 

  • 546 Пользователи нашли это полезным
Помог ли вам данный ответ?

Связанные статьи

CentOS Установка сертификата SSL

Использование SSL совместно с веб сервером Apache позволяет защитить конфиденциальные данные при...

Настройка и установка Suhosin на сервер

Сегодня не для кого не секрет что вебсерверы подвержены атакам злоумышленников. Причин по которым...

Установка файрволла APF - Advanced Policy Firewall

Нет смысла обьяснять необходимость файрволла на сервере. Удачным выбором среди серверных...

Обновление версии PHP с 5.1 до 5.2 в CentOS 5

В шаблоне CentOS 5 x86_64 + ISPmanager устанавливаемом на наших VPS серверах установлен PHP...

Использование утилиты screen на VDS с операционной системой Linux

В составе стандартных комплектаций операционных систем Linux есть очень удобная утилита Screen...