<
  • Главная
Статьи

Bog BOS: FTP-сервер vsftpd: установка, настройка і використання

Bog BOS: FTP-сервер vsftpd: установка, настройка і використання

Остання зміна файлу: 2008.06.26
Скопійовано з www.bog.pp.ru: 2019.07.10

Передбачається попереднє знайомство з протоколом FTP .

vsftpd (Very Secure Ftp Daemon) розроблявся Chris Evans, незадоволеним рівнем безпеки, продуктивності і складністю налаштування як "класичного" FTP-сервера wu-ftpd , так і ProFTPD . Безкоштовний (GPL). Поточна версія - 2.0.5 (липень 2006). Налаштовується за допомогою одного дуже простого файлу конфігурації (можна мати кілька екземплярів, прив'язаних до різних адресах і / або портам). Можливий запуск в автономному режимі або через inetd / xinetd. Підтримується SSL, IPv6, віртуальні користувачі, управління трафіком, настройки в залежності від імені та IP адреси користувача.

Сам сервер (/ 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

Встановлював з пакета vsftpd-2.0.5-17.fc7 (i386). Потрібно порожній каталог / usr / share / empty / і окремий користувач (я взяв користувача ftp, в якості домашнього каталогу / var / ftp, користувач ftp не є його власником, / sbin / nologin). До складу пакету входять скрипт запуску (/etc/rc.d/init.d/vsftpd, для кожного файлу конфігурації /etc/vsftpd/*.conf запускається свій екземпляр сервера), /etc/pam.d/vsftpd (/ etc / vsftpd / ftpusers використовується як заборонний список) і настройка ротації журналів (/etc/logrotate.d/vsftpd.log).

Налаштування /etc/vsftpd/vsftpd.conf:

  • listen = YES
  • listen_port = 21
  • ftp_data_port = 20
  • listen_ipv6 = NO
  • async_abor_enable = YES
  • connect_from_port_20 = YES
  • ascii_upload_enable = YES
  • ascii_download_enable = YES
  • pasv_enable = YES
  • # Відповідні правила в iptables
  • pasv_min_port = від
  • pasv_max_port = до
  • pasv_promiscuous = NO
  • port_enable = YES
  • port_promiscuous = NO
  • tcp_wrappers = NO
  • nopriv_user = ftp
  • #
  • local_enable = YES
  • userlist_enable = YES
  • userlist_deny = NO
  • # Сюди список допущених до своїх домашніх каталогах
  • userlist_file = / etc / vsftpd / user_list_enable
  • check_shell = NO
  • guest_enable = NO
  • pam_service_name = vsftpd
  • #
  • download_enable = YES
  • dirlist_enable = YES
  • force_dot_files = YES
  • hide_ids = NO
  • ls_recurse_enable = YES
  • text_userdb_names = YES
  • use_localtime = NO
  • write_enable = YES
  • tilde_user_enable = NO
  • #
  • chroot_list_enable = NO
  • # Домашній каталог буде виглядати як корінь
  • chroot_local_user = YES
  • chmod_enable = YES
  • local_umask = 022
  • #
  • anonymous_enable = NO
  • anon_world_readable_only = YES
  • anon_upload_enable = NO
  • anon_mkdir_write_enable = NO
  • anon_other_write_enable = NO
  • chown_uploads = NO
  • anon_root = / tmp
  • ftp_username = ftp
  • # Патронів не шкодувати
  • xferlog_enable = YES
  • xferlog_file = / var / log / xferlog.log
  • xferlog_std_format = YES
  • dual_log_enable = YES
  • syslog_enable = YES
  • vsftpd_log_file = / var / log / vsftpd.log
  • log_ftp_protocol = YES
  • no_log_lock = NO
  • session_support = YES
  • setproctitle_enable = YES
  • ftpd_banner = Welcome to ... FTP service.
  • dirmessage_enable = NO
  • #
  • ssl_enable = NO
  • #
  • accept_timeout = 60
  • connect_timeout = 60
  • data_connection_timeout = 300
  • idle_session_timeout = 300
  • Налаштування iptables в / etc / sysconfig / iptables

    -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport від: до -j ACCEPT

    запуск:

    service vsftpd start # дивимося в журнал syslog chkconfig --level 345 vsftpd on

    Проблема з SELinux : Як зазвичай, політика обмежує права процесу vsfdpd неправильна. Цю політику можна правити , Але простіше тупо скопіювати / usr / sbin / vsftpd в / usr / sbin / vsftpd2 (і поміняти /etc/init.d/vsftpd).

    Встановлював з пакета vsftpd-2.0.5-10.el5 (x86_64). Потрібно порожній каталог / usr / share / empty / і окремий користувач (я взяв користувача ftp, в якості домашнього каталогу / var / ftp, користувач ftp не є його власником, / sbin / nologin). Передбачуваний каталог для роздачі: / var / ftp замінений на / mirror / anonftp. До складу пакету входять скрипт запуску (/etc/rc.d/init.d/vsftpd, для кожного файлу конфігурації /etc/vsftpd/*.conf запускається свій екземпляр сервера), /etc/pam.d/vsftpd (/ etc / vsftpd.ftpusers використовується як заборонний список) і настройка ротації журналів (/etc/logrotate.d/vsftpd.log).

    Налаштування /etc/vsftpd/vsftpd.conf:

    • anonymous_enable = YES
    • local_enable = NO
    • write_enable = NO
    • anon_upload_enable = NO
    • anon_mkdir_write_enable = NO
    • anon_other_write_enable = NO
    • xferlog_enable = YES
    • connect_from_port_20 = YES
    • xferlog_std_format = YES
    • nopriv_user = ftp #?
    • async_abor_enable = YES
    • ascii_download_enable = YES
    • ftpd_banner = текст запрошення
    • ls_recurse_enable = YES
    • pam_service_name = vsftpd
    • userlist_enable = YES
    • listen = YES
    • listen_address = IP-адреса
    • tcp_wrappers = YES
    • hide_ids = YES
    • syslog_enable = YES
    • # Відповідні правила в iptables
    • pasv_min_port = від
    • pasv_max_port = до
    • anon_root = / mirror / anonftp
    • local_root = / mirror / anonftp
    • guest_enable = NO
    • anon_world_readable_only = YES

    Налаштування iptables в / etc / sysconfig / iptables

    -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport від: до -j ACCEPT

    запуск:

    service vsftpd start # дивимося в журнал syslog chkconfig --level 345 vsftpd on

    Проблема з SELinux : В CentOS 5 є політика обмежує права процесу vsfdpd. Цю політику можна правити , Але я тоді про це не знав і вважав за краще тупо скопіювати / usr / sbin / vsftpd в / usr / sbin / vsftpd2 (і поміняти /etc/init.d/vsftpd).

    Встановлював з пакета vsftpd-2.0.1-5.EL4.5. Потрібно порожній каталог / usr / share / empty / і окремий користувач (я взяв користувача ftp, в якості домашнього каталогу / var / ftp, користувач ftp не є його власником, / sbin / nologin). Передбачуваний каталог для роздачі: / var / ftp замінений на / mirror / anonftp. До складу пакету входять скрипт запуску (/etc/rc.d/init.d/vsftpd, для кожного файлу конфігурації /etc/vsftpd/*.conf запускається свій екземпляр сервера), /etc/pam.d/vsftpd (/ etc / vsftpd.ftpusers використовується як заборонний список) і настройка ротації журналів (/etc/logrotate.d/vsftpd.log).

    Налаштування /etc/vsftpd/vsftpd.conf:

    • anonymous_enable = YES
    • local_enable = NO
    • write_enable = NO
    • anon_upload_enable = NO
    • anon_mkdir_write_enable = NO
    • anon_other_write_enable = NO
    • xferlog_enable = YES
    • connect_from_port_20 = YES
    • xferlog_std_format = YES
    • nopriv_user = ftp #?
    • async_abor_enable = YES
    • ascii_download_enable = YES
    • ftpd_banner = текст запрошення
    • ls_recurse_enable = YES
    • pam_service_name = vsftpd
    • userlist_enable = YES
    • listen = YES
    • listen_address = IP-адреса
    • tcp_wrappers = YES
    • hide_ids = YES
    • syslog_enable = YES
    • # Відповідні правила в iptables
    • pasv_min_port = від
    • pasv_max_port = до
    • anon_root = / mirror / anonftp
    • local_root = / mirror / anonftp
    • guest_enable = NO
    • anon_world_readable_only = YES

    Налаштування iptables в / etc / sysconfig / iptables

    -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport від: до -j ACCEPT

    запуск:

    service vsftpd start # дивимося в журнал syslog chkconfig --level 345 vsftpd on

    Bog BOS: FTP-сервер vsftpd: установка, настройка і використання

    Copyright © 1996-2018 Sergey E. Bogomolov; www.bog.pp.ru (КДБ знає все, навіть те що у Вас на диску;)


    Новости
    • Виртуальный хостинг

      Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
      Читать полностью

    • Редизайн сайта

      Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
      Читать полностью

    • Консалтинг, услуги контент-менеджера

      Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
      Читать полностью

    • Трафик из соцсетей

      Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
      Читать полностью

    • Поисковая оптимизация

      Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
      Читать полностью