Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 22 Следующий »


Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • 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


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

FTP (англ. File Transfer Protocol) — протокол передачи файлов по сети, являющийся одним из старейших прикладных протоколов. Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключаться анонимно. 


Для организации установки ОС  по сети используется не только протокол FTP, но и протокол TFTP. Это разные протоколы. Подробнее см. Установка Astra Linux по сети (UEFI или Legacy BIOS).

Настройки протокола, применяемые по умолчанию при установке пакета могут быть небезопасны. Перед установкой пакета рекомендуется определить безопасные настройки и применить их сразу после установки.

Для предоставления доступа по протоколу FTP в дистрибутивы Astra Linux входит пакет vsftpd. По умолчанию этот пакет не устанавливается. Установить пакет можно с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

sudo apt install vsftpd

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

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

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

Установка и настройка

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

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

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

Изначально в конфигурационном файле присутствуют не все параметры, это означает, что для отсутствующих параметров используется значение "по умолчанию".

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

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

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

Настройки, принятые по умолчанию

Сразу после установки пакета служба vsftpd получает следующие настройки:

  • сервис подключается ко всем сетевым интерфейсам, IPv4 и IPv6 (параметры listen=NO и listen_ipv6=YES);
  • подключение пользователей без аутентификации запрещено (параметр anonymous_enable=NO);
  • подключение локальных и доменных пользователей разрешено (параметр local_enable=YES) . Для успешного подключения должен существовать домашний каталог пользователя;
  • пользователям разрешено только чтение;
  • рабочим каталогом пользователя после аутентификации становится его домашний каталог, однако пользователи не ограничены в смене каталогов, и, например, могут перейти в корневой каталог файловой системы, получая доступ на чтение ко всем файловым объектам. Порядок доступа при этом будет определяться действующими правилами дискреционного и мандатного управления доступом, однако наличие такого доступа может быть нежелательно с точки зрения безопасности;
  • служба не настроена на работу с файловыми объектами, имена которых содержат кириллицу.

Пример настройки службы сразу после установки:

# Выбрана работа по 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

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

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

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

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

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

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

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

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 обозначает, что:


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

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

  • Нет меток