Установка и запуск
Информация |
---|
Если вам нужна служба для организации загрузки по сети то, помимо данной статьи, обратитесь к статье Установка ОС Astra Linux по сети |
Для предоставления сервиса FTP в дистрибутивы ОС ОН Орёл и ОС СН Смоленск входит пакет 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".
Предупреждение |
---|
Пробелы между именем параметра, знаком равно и значением НЕ ДОПУСКАЮТСЯ. |
Файл настройки, создаваемый при установке пакета, изменяет некоторые значения настроек "по умолчанию".
Полный список параметров настройки и их значения "по умолчанию" можно посмотреть с помощью команды
Command |
---|
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, чтобы сохранилась возможность работать только по протоколу IPv4 |
Далее в примерах используется конфигурация выбора протокола, установленная по умолчанию.
FTP для локальных пользователей и только для чтения
Сразу после установки
- Сервис "слушает" протоколы IPv4 и IPv6;
- Анонимный доступ запрещен;
- Вход локальных пользователей разрешен, но запись им запрещена;
- При входе пользователь попадает в корень файловой системы.
Настройка сервера сразу после установки:
Информация |
---|
# Выбрана работа по IPv4 и по IPv6 # Анонимный доступ запрещён. # Вход локальных пользователей разрешен # Включена выдача пользователям сообщения при входе в каталог (сообщения ищутся в файле .message) # Раскомментировать, чтобы указать на использование файловой системы UTF8 |
FTP для локальных пользователей: разрешение на запись
Для краткости, повторяющиеся комментарии удалены, показаны изменения по отношению к предыдущему файлу:
Информация |
---|
listen=NO # Для локальных пользователей запись при входе через FTP разрешена dirmessage_enable=YES # локальные пользователи при входе будут перенесены ("chroot()") в домашний каталог # При использовании совместно с включенным |
Предупреждение |
---|
Пользователи, которым разрешена запись, должны быть указаны в chroot_list_file (одно имя - одна строка) |
FTP для анонимных пользователей: только чтение
Анонимные пользователи после входа попадают в каталог /srv/ftp
.
Каталог может быть изменен параметром anon_root
Информация |
---|
listen=NO # Анонимный доступ разрешен local_enable=YES # Раскомментировать, чтобы указать на использование файловой системы UTF8 |
Журнал событий
Журнал событий по умолчанию записывается в файл /var/log/vsftpd.log.
Имя файла журнала событий может быть изменено в файле настроек /etc/vsftp.conf:
Информация |
---|
# You may override where the log file goes if you like. The default is shown |
Сервис не ведёт запись журнала, если файл журнала не существует.
Чтобы запись журнала началась, нужно создать этот файл, и перезапустить службу:
Информация |
---|
touch /var/log/vsftpd.log |
Дополнения
Сообщения пользователю при входе в каталог
Включаются опцией 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 для локальных пользователей: разрешение на запись".