|
Введение
FTP (англ. File Transfer Protocol) — протокол передачи файлов по сети, являющийся одним из старейших прикладных протоколов. Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключаться анонимно.
| Для организации установки ОС по сети используется не только протокол FTP, но и протокол TFTP. Это разные протоколы. Подробнее см. Автоматическая установка Astra Linux Special Edition 1.7. |
Настройки протокола, применяемые по умолчанию при установке пакета могут быть небезопасны. Перед установкой пакета рекомендуется определить безопасные настройки и применить их сразу после установки. |
Установка и запуск
Для предоставления доступа по протоколу FTP в дистрибутивы Astra Linux входит пакет vsftpd. По умолчанию этот пакет не устанавливается. Установить пакет можно с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:
| sudo apt install vsftpd |
После установки сервис запускается автоматически, режим запуска описан ниже.
Дополнительно в дистрибутивы входит графический инструмент для администрирования сервера FTP fly-admin-ftp. Установить его можно с помощью графического менеджера пакетов или из командной строки командой
| sudo apt install fly-admin-ftp |
После установки инструмент доступен через меню "Пуск" - "Панель управления" - "Сеть" - "FTP-сервер".
При установке сервиса автоматически создается конфигурационный файл /etc/vsftpd.conf, в который записываются значения наиболее важных параметров по умолчанию.
В конфигурационном файле используются три различных типа параметров:
/run/vsftpd/;Изначально в конфигурационном файле присутствуют не все параметры, это означает, что для отсутствующих параметров используется значение "по умолчанию".
| Пробелы между именем параметра, знаком равно и значением НЕ ДОПУСКАЮТСЯ. |
Файл настройки, создаваемый при установке пакета, изменяет некоторые значения настроек "по умолчанию". Полный список параметров настройки и их значения "по умолчанию" можно посмотреть с помощью команды
| man vsftpd.conf |
Символ решетки "#" - переводит автоматически следующую за ним всю строку в комментарий, не используемый программой vsftpd.
Сразу после установки пакета служба vsftpd получает следующие настройки (перечислены наиболее важные параметры, полный список с подробными пояснениями см. man vsftpd.conf):
listen=NO и listen_ipv6=YES).anonymous_enable=NO).local_enable=YES) . Для успешного подключения должен существовать домашний каталог пользователя.Пример настройки службы сразу после установки:
# Выбрана работа по IPv4 и по IPv6 # Анонимный доступ запрещен. # Вход локальных пользователей разрешен # Включена выдача пользователям сообщения при входе в каталог (сообщения ищутся в файле .message) # Раскомментировать, чтобы указать на использование файловой системы UTF8 |
Для выбора IP-протокола предназначены два логически связанных параметра конфигурации - listen и listen-ipv6. Их значения, принятые по умолчанию, разрешают работу по протоколам IPv4 и IPv6:
listen=NO # работать только по протоколу IPv4. По умолчанию значение NO. Если установить значение YES, то параметр listen_ipv6 нужно установить в NO listen_ipv6=YES # работать по протоколам и IPv4 и IPv6. По умолчанию значение YES. Если установить значение NO, то параметр listen нужно установить в YES, чтобы сохранилась возможность работать только по протоколу IPv4 |
Далее в примерах используется конфигурация выбора протокола, установленная по умолчанию.
Для ограничения доступа пользователей к файловой системе используется параметр конфигурации chroot_local_user=YES. При значении параметра YES доступ пользователей к файловой системе по умолчанию будет ограничен назначаемым при входе рабочим каталогом (chroot-каталогом). По умолчанию это стандартный домашний каталог пользователя. При этом для повышения безопасности дополнительно требуется, чтобы пользователь не имел права записи в chroot-каталог (см. Ошибка "500 OOPS: vsftpd: refusing to run with writable root inside chroot ()"). Для устранения ошибки входа возможны следующие варианты действий:
allow_writeable_chroot=YES. Может быть нежелательным с точки зрения требований безопасности;Можно создать и использовать отдельный каталог с требуемым запретом или разрешением записи, используя параметр local_root=<имя_каталога>. Значение параметра, указанное в файле /etc/vsftpd.conf будет применяться ко всем пользователям. Порядок индивидуальной настройки см. ниже.
Параметры, задаваемые в файле /etc/vsftpd.conf применяются ко всем пользователям и могут быть переопределены индивидуальными пользовательскими конфигурационными файлами. Для задания индивидуальных параметров:
/etc/vsftpd.conf добавить параметр user_config_dir=<каталог_индивидуальных_настроек>.Для того, чтобы разрешить запись пользователям используется параметр write_enable=YES.
Для управления правами анонимного доступа используются параметры anon_mkdir_write_enable, anon_other_write_enable, anon_upload_enable. Подробное описание см. man vsftpd.conf. Также см.
FTP для анонимных пользователей: только чтение
По умолчанию подключения без аутентификации (анонимные подключения) запрещены. Анонимные подключения нежелательны с точки зрения безопасности, однако необходимы для организации сетевых репозиториев. Для разрешения анонимных подключений:
anonymous_enable=NO на anonymous_enable=YES.Журнал событий по умолчанию записывается в файл /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
При работе по протоколу FTP между клиентом и сервером устанавливается два соединения:
Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных.
В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.
Из соображений обеспечения максимальной безопасности vsftpd не позволяет пользователям осуществлять запись в свои домашние каталоги.
Появление ошибки 500 обозначает, что:
|
В случае анонимного пользователя домашним каталогом считается каталог, заданный параметром anon_root.
Для настройки разрешений на запись см. раздел Ограничение доступа пользователей к файловой системе.
Подробная информация по всем клиентам доступна в из встроенный справках (опции --help или -h) и в справочной системе man.
Стандартный и самый простой интерактивный клиент ftp. Входит в состав всех основных репозиториев Astra Linux.
Клиент: /usr/bin/netkit-ftp, доступен как /usr/bin/ftp.
Альтернативный интерактивный клиент ftp. Входит в состав расширенных репозиториев Astra Linux x.7.
Клиент: /usr/bin/inetutils-ftp, доступен как /usr/bin/ftp.
Альтернативный улучшенный интерактивный клиент ftp. Входит в состав расширенных репозиториев Astra Linux x.7.
Клиент: /usr/bin/ncftp3, доступен как /usr/bin/ncftp.
Инструмент командной строки, позволяющий выполнять команды FTP в пакетном режиме. Входит в состав всех основных репозиториев Astra Linux.
Клиент: /usr/bin/lftp