@ Карта сайта News Автора!

Bog BOS: FTP-сервер vsftpd: установка, настройка и использование

apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост

Последнее изменение файла: 2008.06.26
Скопировано с www.bog.pp.ru: 2024.12.03

Bog BOS: FTP-сервер vsftpd: установка, настройка и использование

Предполагается предварительное знакомство с протоколом FTP.

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

Настройка vsftpd 2.0.1

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

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

Установка vsftpd 2.0.5 в Fedora 7 для доступа в домашний каталог (хост для стенда)

Устанавливал из пакета 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 в CentOS 5.0 для анонимного доступа (репозитарий)

    Устанавливал из пакета 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:

    Настройка 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 в CentOS 4.5 для анонимного доступа (репозитарий)

    Устанавливал из пакета 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:

    Настройка 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
    

    Ссылки

    @ Карта сайта News Автора!

    Bog BOS: FTP-сервер vsftpd: установка, настройка и использование

    apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

    Последние изменения:
    2024.11.22: sysadmin: systemd-journald (централизованное хранение)
    2024.11.11: sysadmin: Linux: пространства имён
    2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост



    Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru