Linux mint ftp каталог

Установка и настройка FTP-сервера в Linux

File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.

Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:

  1. Работа с виртуальными пользователями.
  2. Работа с виртуальными IP-адресами.
  3. Конфигурирование пользователей.
  4. Поддержка
  5. SSL-шифровние для защиты передаваемых данных.
  6. Контроль полосы пропускания.

В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.

Установка vsFTPd

Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:

Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:

Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:

Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.

После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:

Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:

Запуск, перезапуск и остановка сервера:

Для включения демона vsftpd в автозагрузку используется команда:

Аналогично и с командой service.

Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:

Настройка vsFTPd

Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:

На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.

Настройка в режиме анонимного доступа

Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.

Читайте также:  Справка windows winhlp32 exe для windows

Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:

Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.

Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:

Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:

Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:

$ systemctl restart vsftpd

Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:

что в случае успешного выполнения даст примерно такой вывод:

Настройка в режиме авторизованного доступа

Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:

Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:

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

Теперь нужно перезапустить vsftpd для активации сделанных изменений:

Ограничение пользователей в своих домашних каталогах

Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:

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

которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.

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

Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:

Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:

Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.

Защита данных с помощью SSL

Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.

Для включения режима FTPS нужно задействовать следующую директиву:

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

Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Linux mint ftp каталог

Команда ftp предназначена для задействования одноименной утилиты, представляющей собой FTP-клиент с интерфейсом командной строки.

Протокол FTP (File Transfer Protocol), как несложно догадаться из его названия, предназначен для передачи файлов между компьютерами. Ввиду того, что он предусматривает передачу паролей без шифрования, он является одним из самых небезопасных сетевых протоколов наряду с протоколом Telnet и не должен использоваться в случае поддержки сервером таких более безопасных протоколов для передачи файлов, как sftp и ftps. Помимо утилиты ftp в Linux для работы с серверами FTP могут также использоваться утилиты с графическим интерфейсом, такие, как Filezilla или Nautilus. FTP-серверы принимают соединения на порту 21; для передачи данных используются другие порты, что затрудняет использование межсетевых экранов.

Базовый синтаксис команды выглядит следующим образом:

$ ftp [параметры] [узел[:порт]]

Читайте также:  Андроид совместимость с windows

Утилита работает в интерактивном режиме и поддерживает ограниченное количество параметров. Наиболее важными параметрами являются параметры -4 и -6, позволяющие использовать для связи с сервером лишь протокол IPv4 и IPv6 соответственно, параметр -p, позволяющий активировать пассивный режим (упрощающий работу в системах с межсетевыми экранами, защищающими от соединений извне), параметр -i, позволяющий не выводить запросы при передаче множества файлов в интерактивном режиме, параметр -n, запрещающий читать данные для входа на сервер из файла .netrc в домашней директории и осуществлять автоматический вход, параметр -e, деактивирующий поддержку механизма истории в рамках интерактивной сессии и параметр -g, деактивирующий поддержку механизма шаблонов имен файлов.

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

bye

exit

quit

close

disconnect

dir [имя удаленной директории] [имя локального файла]

ls [имя удаленной директории] [имя локального файла]

get [имя локального файла]

recv [имя локального файла]

help [команда]

? [команда]

mdir [имена директорий] [имя локального файла]

mls [имена директорий] [имя локального файла]

nlist [имена директорий] [имя локального файла]

put [имя удаленного файла]

send [имя удаленного файла]

Команда Назначение
! [команда] Выполнить команду в локальной системе
ascii Активировать текстовый режим передачи данных (ASCII). Он используется по умолчанию.
bell Использовать звуковой сигнал для индикации окончания передач файлов.
binary Активировать бинарный режим передачи данных.
Завершить работу утилиты.
cd Изменить рабочую директорию на удаленной системе.
chmod Изменить права доступа к файлу на удаленной системе.
Завершить сессию FTP с удаленным сервером и вернуться в интерактивный режим.
cr Переключить режим обработки переходов на новые строки. При активации их обработки будет удаляться символ возврата каретки для совместимости с UNIX-системами.
delete Удалить файл на удаленной системе.
debug [уровень отладки] Активировать режим отладки с заданным уровнем. В этом режиме утилита будет выводить все отправляемые серверу команды и ответы на них.
Вывести список содержимого директории на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла.
Получить файл с удаленной системы и сохранить его под заданным именем в локальной системе.
hash Выводить символ решетки для индикации передачи каждого 1024-байтового блока.
Вывести информацию о команде.
idle [секунды] Установить длительность периода ожидания перед автоматическим разрывом соединения с сервером.
ipany Использовать IP-адрес любого типа после разрешения имени сервера.
ipv4 Использовать адрес IPv4 после разрешения имени сервера.
ipv6 Использовать адрес IPv6 после разрешения имени сервера.
lcd [имя директории] Изменить рабочую директорию в локальной системе.
mdelete Удалить множество перечисленных файлов на удаленной системе.
Вывести список содержимого множества перечисленных директорий на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла.
mget [имена удаленных файлов] Получить множество перечисленных файлов с удаленной системы и сохранить его в локальной системе.
mkdir Создать директорию с заданным именем на удаленной системе.
modtime Показать время последней модификации файла на удаленной системе.
mput Загрузить множество перечисленных локальных файлов на удаленную систему.
newer [имя локального файла] Загрузить указанный файл с удаленной системы лишь в том случае, если он был изменен позднее указанного файла с локальной системы.
open [порт] Установить соединение с сервером с заданным адресом и портом.
passive Включить/выключить пассивный режим.
prompt Переключить режим вывода подтверждений при передаче множества файлов.
Загрузить указанный локальный файл на удаленную систему под заданным именем.
pwd Вывести имя текущей директории на удаленной системе.
reget [имя локального файла] Продолжить загрузку файла с заданным именем с удаленной системы с сохранением этого файла под заданным именем на локальной системе.
rename [имя файла] [новое имя файла] Сменить имя файла на удаленной системе.
rmdir Удалить директорию на удаленной системе.
size Вывести размер файла на удаленной системе.
system Вывести информацию об операционной системе сервера.
umask Установить значение маски прав доступа для загружаемых на сервер файлов.
user [пароль] Представиться серверу.

Установка утилиты

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

Команда для Linux Mint и Ubuntu:

$ sudo apt-get install ftp

Команда для Fedora Workstation:

$ sudo dnf install ftp

Примеры использования

Загрузка файлов на сервер

Для начала нужно соединиться с сервером. В данном случае используется анонимный сервер TELE2, поэтому в качестве имени пользователя вводится anonymous, а в качестве пароля — пустая строка (для ее ввода достаточно просто нажать на клавишу Enter).

$ ftp speedtest.tele2.net
Connected to speedtest.tele2.net.
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexu): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Сервер позволяет загружать файлы лишь в директорию upload, поэтому следует перейти в нее.

ftp> cd upload
250 Directory successfully changed.

Для корректной загрузки нужно активировать пассивный режим:

ftp> passive
Passive mode on.

Теперь можно перейти в директорию с загружаемыми файлами на локальной системе и использовать команду mput для загрузки файлов. Команда поддерживает шаблоны имен файлов и именно с помощью такого шаблона на сервер загружаются три файла изображения:

ftp> lcd nolf228/
Local directory now /home/alexu/nolf228
ftp> mput *.jpg
mput nolf228.jpg? y
227 Entering Passive Mode (90,130,70,73,97,210).
150 Ok to send data.
226 Transfer complete.
190576 bytes sent in 0.16 secs (1.1299 MB/s)
mput splash1024.jpg? y
227 Entering Passive Mode (90,130,70,73,86,152).
150 Ok to send data.
226 Transfer complete.
270176 bytes sent in 0.21 secs (1.2126 MB/s)
mput splash1280.jpg? y
227 Entering Passive Mode (90,130,70,73,84,122).
150 Ok to send data.
226 Transfer complete.
385734 bytes sent in 0.40 secs (943.9138 kB/s)

Для завершения работы утилиты достаточно ввести команду quit:

ftp> quit
221 Goodbye.

Загрузка файлов с сервера

Как и в случае загрузки файлов на сервер, в первую очередь нужно соединиться с ним. В случае анонимного сервера TELE2 используется имя пользователя anonymous и пустой пароль (ввод которого осуществляется путем простого нажатия на клавишу Enter):

$ ftp speedtest.tele2.net
Connected to speedtest.tele2.net.
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexd): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Для корректной загрузки файлов необходимо активировать пассивный режим:

ftp> passive
Passive mode on.

Чтобы убедиться в наличии на сервере нужных файлов, следует вывести список файлов из текущей директории сервера с помощью команды ls:

ftp> ls
227 Entering Passive Mode (90,130,70,73,94,9).
150 Here comes the directory listing.
-rw-r—r— 1 0 0 1073741824000 Feb 19 2016 1000GB.zip
-rw-r—r— 1 0 0 107374182400 Feb 19 2016 100GB.zip
-rw-r—r— 1 0 0 102400 Feb 19 2016 100KB.zip
-rw-r—r— 1 0 0 104857600 Feb 19 2016 100MB.zip
-rw-r—r— 1 0 0 10737418240 Feb 19 2016 10GB.zip
-rw-r—r— 1 0 0 10485760 Feb 19 2016 10MB.zip
-rw-r—r— 1 0 0 1073741824 Feb 19 2016 1GB.zip
-rw-r—r— 1 0 0 1024 Feb 19 2016 1KB.zip
-rw-r—r— 1 0 0 1048576 Feb 19 2016 1MB.zip
-rw-r—r— 1 0 0 209715200 Feb 19 2016 200MB.zip
-rw-r—r— 1 0 0 20971520 Feb 19 2016 20MB.zip
-rw-r—r— 1 0 0 2097152 Feb 19 2016 2MB.zip
-rw-r—r— 1 0 0 3145728 Feb 19 2016 3MB.zip
-rw-r—r— 1 0 0 524288000 Feb 19 2016 500MB.zip
-rw-r—r— 1 0 0 53687091200 Jul 24 2014 50GB.zip
-rw-r—r— 1 0 0 52428800 Feb 19 2016 50MB.zip
-rw-r—r— 1 0 0 524288 Feb 19 2016 512KB.zip
-rw-r—r— 1 0 0 5242880 Feb 19 2016 5MB.zip
drwxr-xr-x 2 106 109 69632 Apr 01 13:41 upload
226 Directory send OK.

Для загрузки отдельного файла используется команда get:

ftp> get 1MB.zip
local: 1MB.zip remote: 1MB.zip
227 Entering Passive Mode (90,130,70,73,99,63).
150 Opening BINARY mode data connection for 1MB.zip (1048576 bytes).
226 Transfer complete.
1048576 bytes received in 4.15 secs (247.0279 kB/s)

И, как обычно, работа с утилитой заканчивается вводом команды quit:

Источник

Читайте также:  Как изменить шрифт по умолчанию windows
Оцените статью