Содержание

Перейти к концу метаданных
Переход к началу метаданных

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

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

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

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

apt install vsftpd

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

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

apt install fly-admin-ftp 

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

Настройка

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

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

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

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

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

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

man vsftpd.conf

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

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

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


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

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

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

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

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

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


# Выбрана работа по 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=/var/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 для локальных пользователей: разрешение на запись

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


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=/var/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

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

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

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


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=/var/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

Дополнения

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

Включаются опцией 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 обозначает, что:


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

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

  • Нет меток