четверг, 30 мая 2019 г.

Простой сервер FTP для локальной сети

Установка простого сервера ftp производилась с целью выбора механизма обмена файлами между двумя компьютерами. Во избежание гневных комментариев хотелось бы обратить внимание на то, что публикация рассматривает вопрос настройки сервера ftp только для частного случая, соответствующего предъявляемым ниже требованиям.

Требования к обмену по протоколу ftp или начальные условия:

– обмен файлами/папками производится между компьютерами с установленной системой Linux Mint 19.1;

– компьютеры являются доверенными узлами, так как расположены в домашней локальной сети. То есть, "враги" отсутствуют, доступа к серверу извне не имеется;

– для доступа к серверу ftp должна быть использована уже имеющаяся учётная запись пользователя системы, на которой установлен сервер ftp;

– доступ к данным сервера ftp должен быть аналогичен тому, как это производится при использовании SSH, но без шифрования.

Предпринимаемые ранее попытки установки сервера ftp (пакет vsftp имеется в менеджере пакетов Synaptic), работа которого удовлетворяла бы изложенным требованиям, в конечном итоге завершались неудачей по причине некорректной его настройки, определяемой файлом конфигурации.

После экспериментов были найдены настройки сервера vsftpd, соответствующие заявленным начальным условиям, которые приведены ниже. С большинством настроек сервера vsftp можно ознакомиться здесь.

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
# Анонимный доступ к серверу не используется.
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=NO
use_localtime=YES
xferlog_enable=NO
connect_from_port_20=YES
# Изменение владельца закачанных анонимно файлов не производится по причине отсутствия анонимного доступа к серверу.
#chown_uploads=YES
#chown_username=whoever
# Протоколирование работы сервера ftp не производится за отсутствием востребованности
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
idle_session_timeout=900
# Двухминутный режим тайм-аута не востребован.
#data_connection_timeout=120
# Пользователь ftpsecure отсутствует
#nopriv_user=ftpsecure
# команда "async ABOR" не используется
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
# Приветственные сообщения сервера не нужны.
#ftpd_banner=Welcome to blah FTP service.
# Cписок анонимных паролей e-mail ответов, которые не логинятся, нее нужен.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
# Cписок локальных пользователей, которые находятся в клетке chroot() в своих домашних директориях, не используется.
# chroot_list_enable below.
#chroot_local_user=YES
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
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_filesystem=YES

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

Так как в системе используется графическое окружение xfce, то для доступа через менеджер файлов Thunar был создан значок запуска (кнопка запуска), в котором в качестве команды введена необходимая команда. Пример:

thunar "ftp://minter@H-4.vot/home/minter"

minter – это имя существующего пользователя на компьютере с именем H-4.

H-4.vot  – полное доменное имя компьютера в домашней локальной сети.

Сервер dhcp роутера передаёт клиентам имя домена vot, а разрешение имён узлов в адреса IP производится сервером dns. Роутером домашней сети выступает MikroTik.

Указание клиентам имени домена:


Скрипт, обеспечивающий автоматическую запись на сервере dns имени узла и соответствующего ему адреса IP, а также удаление этой записи после истечения срока аренды



изложен в этой публикации.

При обращении к серверу ftp некоторые каталоги помечены значком крестика:



Несмотря на это, с доступом в данные каталоги проблем не имеется. Например, для Dropbox:


При обращении к серверу ftp через менеджер файлов каталог, который сервер ftp предоставляет в доступ, монтируется. После завершения необходимых действий его рекомендуется отмонтировать: