Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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

Если вам нужна служба для организации загрузки то, помимо данной статьи, обратитесь к статье Установка ОС 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 для локальных пользователей: разрешение на запись".

  • No labels