Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
ОС СН Ленинград 8.1.

Table of Contents


Info
titleДанная статья применима к:
  • ОС ОН Орёл 2.12;
  • ОС СН Смоленск 1.6;
    • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

    • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и  исп. 2

    • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

    • Astra Linux Common Edition 2.12



    Установка и запуск

    Info
    Если вам нужна служба для организации загрузки по сети то, помимо данной статьи, обратитесь к статье Установка ОС Astra Linux по сети

    Для предоставления сервиса FTP в дистрибутивы ОС ОН Орёл и ОС СН Смоленск Astra Linux входит пакет vsftpd.
    По умолчанию он не устанавливается.

    Установить пакет можно с помощью графического менеджера пакетов или из командной строки командой 

    Command
    sudo apt install vsftpd

    После установки сервис запускается автоматически, режим запуска описан ниже.

    Дополнительно в дистрибутивы входит графический инструмент для администрирования сервера FTP fly-admin-ftp.
    Установить его можно с помощью графического менеджера пакетов или из командной строки командой 

    Command
    sudo apt install fly-admin-ftp 

    После установки инструмент доступен через меню "Пуск" - "Панель управления" - "Сеть" - "FTP-сервер". 

    Настройка

    При установке сервиса автоматически создается конфигурационный файл /etc/vsftpd.conf,
    в который записываются значения наиболее важных параметров по умолчанию.

    В файле с настройками используются три различных типа параметров:

    • Логические параметры - параметры, содержащие только логические значения: либо YES либо NO;
    • Числовые параметры - параметры, содержащие значения в числах, т.н. время в секундах или номер порта для соединения;
    • Строковые параметры - содержат строку, т.н. путь к каталогу в файловой системе на диске, например: /run/vsftpd/;

    В файле с настройками присутствуют не все параметры, это означает, что для отсутствующих параметров используется значение по умолчанию, обозначаемое как "Default:" в "man vsftpd.conf".

    Warning
    Пробелы между именем параметра, знаком равно и значением НЕ ДОПУСКАЮТСЯ.

    Файл настройки, создаваемый при установке пакета, изменяет некоторые значения настроек "по умолчанию".
    Полный список параметров настройки и их значения "по умолчанию" можно посмотреть с помощью команды

    Command
    man vsftpd.conf

    Символ решётки "#" - переводит автоматически следующую за ним всю строку, в комментарий, не используемый программой vsftpd.

    Выбор IP-протокола

    Для выбора IP-протокола предназначены два связанных логических параметра. 
    Их значения по умолчанию разрешают работу по протоколам IPv4 и IPv6

    Code Block
    listen=NO # работать только по протоколу IPv4. По умолчанию значение NO. Если установить значение YES, то параметр listen_ipv6 нужно установить в NO
    listen_ipv6=YES # работать по протоколам и IPv4 и IPv6. По умолчанию значение YES. Если установить значение NO, то параметр listen нужно установить в YES, чтобы сохранилась возможность работать только по протоколу IPv4

    Далее в примерах используется конфигурация выбора протокола, установленная  по умолчанию.

    FTP для локальных пользователей и только для чтения

    Сразу после установки

    • Сервис "слушает" протоколы IPv4 и IPv6;
    • Анонимный доступ запрещен;
    • Вход локальных пользователей разрешен, но запись им запрещена;
    • При входе пользователь попадает в корень файловой системы.

    Настройка сервера сразу после установки:

    Info

    # Выбрана работа по IPv4 и по IPv6
    listen=NO
    listen_ipv6=YES

    # Анонимный доступ запрещён.
    anonymous_enable=NO

    # Вход локальных пользователей разрешен
    local_enable=YES

    # Для локальных пользователей запись при входе через FTP запрещена. Как разрешить запись - см. ниже.
    #write_enable=YES

    # Включена выдача пользователям сообщения при входе в каталог (сообщения ищутся в файле .message)
    dirmessage_enable=YES

    # Отображать время в локальной временной зоне. По умолчанию - в GMT
    use_localtime=YES

    # Включено журналирование операций записи/скачивания. 
    xferlog_enable=YES

    # Использовать 20-й порт для исходящих соединений (см. ниже)
    connect_from_port_20=YES

    # Имя специального пустого каталога, недоступного пользователю ftp для записи
    # Используется как безопасный chroot() когда сервису vsftpd не нужен файловый доступ.
    secure_chroot_dir=/run/vsftpd/empty

    # Имя сервиса для авторизации через PAM
    pam_service_name=vsftpd

    # Размещение сертификатов для защищенных соединений
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO

    # Раскомментировать, чтобы указать на использование файловой системы UTF8
    # utf8_filesystem=YES

    FTP для локальных пользователей: разрешение на запись

    Для краткости, повторяющиеся комментарии удалены, показаны изменения по отношению к предыдущему файлу:

    Info

    listen=NO
    listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES

    # Для локальных пользователей запись при входе через FTP разрешена
    write_enable=YES

    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    secure_chroot_dir=/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    # Раскомментировать, чтобы указать на использование файловой системы UTF8
    #utf8_filesystem=YES

    # локальные пользователи при входе будут перенесены ("chroot()") в домашний каталог
    chroot_local_user=yes

    # При использовании совместно с включенным chroot_local_user означает список пользователей, которые не помещаются в chroot().
    # По умолчанию список содержится в файле /etc/vsftpd.chroot_list, но можно указать любой другой путь к файлу используя chroot_list_file опцию.
    chroot_list_enable=yes
    chroot_list_file=/etc/vsftpd.chroot_list


    Warning
    Пользователи, которым разрешена запись, должны быть указаны в chroot_list_file (одно имя - одна строка)

    FTP для анонимных пользователей: только чтение

    Анонимные пользователи после входа попадают в каталог /srv/ftp
    Каталог может быть изменен параметром anon_root

    Info

    listen=NO
    listen_ipv6=YES

    # Анонимный доступ разрешен
    anonymous_enable=YES

    local_enable=YES
    #write_enable=YES
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    secure_chroot_dir=/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO

    # Раскомментировать, чтобы указать на использование файловой системы UTF8
    # utf8_filesystem=YES

    Журнал событий

    Журнал событий  по умолчанию записывается в файл /var/log/vsftpd.log.
    Имя файла журнала событий может быть изменено в файле настроек /etc/vsftp.conf:

    Info

    # You may override where the log file goes if you like. The default is shown
    # below.
    #xferlog_file=/var/log/vsftpd.log

    Сервис не ведёт запись журнала, если файл журнала не существует.
    Чтобы запись журнала началась, нужно создать этот файл, и перезапустить службу:

    Info

    touch /var/log/vsftpd.log
    service vsftpd restart

    Дополнения

    Сообщения пользователю при входе в каталог

    Включаются опцией dirmessage_enable=YES.

    Имя файла, в котором ищутся сообщения, по умолчанию .message, может быть изменено параметром message_file

    20-й порт и работа в пассивном режиме

    При работе по протоколу FTP между клиентом и сервером устанавливается два соединения:

    • управляющее (по нему идут команды)
    • и соединение передачи данных (по нему передаются файлы).

    Управляющее соединение одинаково для Активного и Пассивного режима.

    Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль».
    Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

    • В активном режиме, когда клиент говорит «Привет!», он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных.
      FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.
    • В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных.

    Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных.
    В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.

    Ошибка "500 OOPS: vsftpd: refusing to run with writable root inside chroot ()"

    Из соображений обеспечения максимальной безопасности vsftpd не позволяет пользователям осуществлять запись в свои домашние каталоги.
    Появление ошибки 500 обозначает, что:


    Info

    на сервере включено разрешение на запись (write_enable=YES),
    сервер обнаружил вход совершенно нормального локального пользователя,
    совершенно нормально имеющего право  записи в свой собственный домашний каталог,
    и, на основании наличия такого права, сервер отказывается впустить пользователя.

    Для настройки разрешений на запись см. раздел "FTP для локальных пользователей: разрешение на запись".