- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Топ — 5 FTP клиентов для Linux
- Best Command-Line FTP Clients for Linux
- 1. FTP
- 2. LFTP
- 3. NcFTP
- 4. cbftp
- 5. Yafc
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Установка FTP на Ubuntu 20.04
- Установка FTP в Ubuntu
- Настройка FTP Ubuntu
- Тестирование vsftpd
- Настройка домашних папок пользователей
- Настройка защищенного соединения
- Выводы
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Топ — 5 FTP клиентов для Linux
Лучшие из лучших в CLI
3 минуты чтения
Протокол передачи файлов (File Transfer Protocol — FTP) — это сетевой протокол, используемый для передачи файлов между клиентом и сервером в компьютерной сети. Самые первые приложения FTP были созданы для командной строки еще до того, как операционные системы GUI даже стали чем-то особенным, и, хотя существует несколько клиентов FTP с графическим интерфейсом, разработчики по-прежнему создают клиенты FTP на основе CLI для пользователей, которые предпочитают использовать старый метод.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Вот список лучших FTP-клиентов на основе командной строки для Linux.
Операционные системы Linux поставляются со встроенными FTP-клиентами, к которым вы можете легко получить доступ, введя команду ftp в своем терминале.
С помощью FTP вы можете подключаться к серверам анонимно (если эта функция включена на сервере) или использовать свои учетные данные пользователя, загружать и скачивать файлы между локальным компьютером и подключенными серверами, использовать псевдонимы и так далее.
Кроме того, при использовании FTP для передачи файлов между компьютерами соединение не защищено и данные не шифруются. Для безопасной передачи данных используйте sFTP (Secure File Transfer Protocol) или SCP (Secure Copy).
LFTP — это бесплатная утилита командной строки с открытым исходным кодом, разработанная для нескольких протоколов передачи файлов (например, sftp, fish, torrent) в Unix и аналогичных операционных системах.
Она включает в себя закладки, управление заданиями, поддержку библиотеки readline, встроенную команду зеркального отображения и поддержку параллельной передачи нескольких файлов.
lftp доступен для установки из репозиториев по умолчанию с помощью диспетчера пакетов, как показано ниже.
NcFTP
NcFTP — это бесплатный кроссплатформенный FTP-клиент и первая в истории альтернатива стандартной FTP-программе, разработанная для упрощения использования и нескольких улучшений функций и производительности FTP.
Его функции включают в себя повторный набор номера, фоновую обработку, автоматическое возобновление загрузки, завершение имени файла, индикаторы выполнения, поддержку других утилит, таких как ncftpput и ncftpget.
NcFTP доступен для установки из репозиториев по умолчанию с помощью диспетчера пакетов.
cbftp
ctftp — это гибкий клиент FTP / FXP, который позволяет пользователям безопасно и эффективно передавать большие файлы без использования электронной почты. Обычно он работает в командной строке, но вы можете запустить его в полу-GUI, используя ncurses.
Его функции включают в себя внутренний просмотрщик, который поддерживает несколько кодировок, листинг с пропуском, удаленные команды для команд вызова UDP, таких как race, load, fxp, raw, idle и т. Д., И шифрование данных с помощью AES-256, среди прочего.
Yafc — это FTP-клиент с открытым исходным кодом, разработанный для замены стандартной программы FTP в системах Linux с поддержкой POSIX-совместимых систем.
Он полностью бесплатен с богатым списком функций, который включает в себя рекурсивный get / put / fxp / ls / rm, организацию очередей, завершение табуляции, псевдонимы и поддержку SSH2 и прокси.
Yafc доступен для установки из репозиториев по умолчанию, используя менеджер пакетов.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Best Command-Line FTP Clients for Linux
File Transfer Protocol (FTP) is a network protocol used for transferring files between a client and a server on a computer network. The very first FTP applications were made for the command line before GUI Operating Systems even became a thing and while there are several GUI FTP clients, developers still make CLI-based FTP clients for users who prefer using the old method.
Here’s a list of the best command-line based FTP clients for Linux.
1. FTP
Linux Operating Systems ships with built-in FTP clients that you can easily access by entering the ftp command in your terminal.
With FTP you can connect to servers anonymously (if this feature is enabled on the server) or using your user credentials, download/upload files between your local machine and connected servers, use aliases, etc.
Also, when using FTP for transferring files between computers, the connection is not secure and the data is not encrypted. For a secure data transfer, use sFTP (Secure File Transfer Protocol) or SCP (Secure Copy).
Verify FTP Connection
2. LFTP
LFTP is a free and open source command-line utility designed for several file transfer protocols (e.g. sftp, fish, torrent) on Unix and like Operating Systems.
It features bookmarks, job control, support for the readline library, a built-in mirror command, and support for multiple file transfers in parallel.
lftp is available to install from the default repositories using package manager as shown.
3. NcFTP
NcFTP is a free, cross-platform FTP client and the first ever alternative to the standard FTP program developed to boasts ease of use and several feature and performance enhancements to FTP.
Its features include host redialing, background processing, auto-resume downloads, filename completion, progress meters, support for other utility programs such as ncftpput and ncftpget.
NcFTP is available to install from the default repositories using package manager as shown.
4. cbftp
ctftp is a flexible FTP/FXP client that enables users to transfer large files securely and efficiently without using emails. It typically works in the command line but you can run it in a semi-GUI using ncurses.
Its features include an internal viewer that supports multiple encodings, skip-listing, remote commands for UDP call commands such as race, download, fxp, raw, idle, etc., and data encryption with AES-256, among others.
5. Yafc
Yafc is an open source FTP client designed as a replacement for the standard FTP program on Linux systems with support for POSIX-compliant systems.
It is completely free with a rich features list that includes recursive get/put/fxp/ls/rm, queuing, tab completion, aliases, and support for SSH2 and proxy.
Yafc is available to install from the default repositories using package manager as shown.
Do you have any experience with these command line FTP clients? Or do you know alternatives that should be on this list? Feel free to drop your comments below.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Установка FTP на Ubuntu 20.04
FTP или File Transfer Protocol — это достаточно древний, но в то же время надёжный и проверенный протокол выгрузки файлов на удалённый сервер или их скачивания. Также иногда этот протокол применяется веб-мастерами для управления файлами или организации хранилища данных.
В этой статье мы рассмотрим, как выполняется установка FTP на Ubuntu 20.04, как настроить все необходимые компоненты, в том числе и защищённое соединение. Мы будем использовать FTP-сервер VSFTPD или Very Secure FTP Daemon, который обеспечивает самую надёжную защиту от уязвимостей.
Установка FTP в Ubuntu
Программа доступна из официальных репозиториев, поэтому установка FTP на Ubuntu Server не должна вызвать проблем. Сначала обновите список пакетов в репозиториях, затем установите саму программу:
sudo apt update
sudo apt install vsftpd
Когда установка будет завершена, вам необходимо включить сервис vsftpd, поскольку он не будет запущен по умолчанию, а также добавить службу в автозагрузку:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Если у вас установлен фаервол ufw, а такая ситуация возникает, когда вы пытаетесь установить FTP на Ubuntu Server, нужно открыть порты 20 и 21 для нормальной работы. Чтобы это сделать, выполните команды:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw status
Установка FTP Ubuntu завершена, но теперь вам осталось настроить всё необходимое для обеспечения безопасной работы. Никогда не используйте FTP-сервер с настройками по умолчанию в производственных сетях, это небезопасно.
Настройка FTP Ubuntu
Теперь перейдём к настройке. Нам нужно поменять всего несколько параметров, чтобы полностью защитить ваш FTP-сервер. Сначала мы рассмотрим самые очевидные настройки: отключения анонимного входа и так далее. Сначала необходимо скопировать оригинальный файл настроек, чтобы в случае проблем вернуть всё как было:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Затем откройте файл в редакторе:
sudo vi /etc/vsftpd.conf
Затем добавьте такие настройки. Вам нужно будет найти и изменить значения указанных строк, добавлять новые, если они уже есть, не стоит. Сначала отключаем анонимный вход:
Разрешаем использовать имена локальных пользователей для входа:
ля авторизованных пользователей разрешаем команды, позволяющие изменять файловую систему:
Установим значение umask для новых файлов, создаваемых по FTP:
Включаем сообщение о необходимости выбрать каталог после регистрации:
Записывать в лог файл все транзакции по передаче файлов и использовать стандартный формат лога:
xferlog_enable = YES
xferlog_std_format=YES
Использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола:
Указываем, что нужно ожидать входящих соединений:
На завершение разрешим аутентификацию только пользователей, перечисленных в файле userlist:
Указываем файл с нашими виртуальными пользователями:
По умолчанию таким пользователям запрещён вход в систему, но мы хотим совсем обратное, поэтому добавьте такую строчку:
При входе пользователей на FTP-сервер, они могут работать только в корневом каталоге FTP. Если вы хотите, чтобы пользователи были ограничены только своей домашней папкой, то необходимо раскомментировать эти строчки:
chroot_local_user = YES
allow_writeable_chroot = YES
Первая строчка указывает, что нужно разместить пользователя в изолированном домашнем каталоге, а вторая, что ему можно разрешить запись в этот каталог. Настройка FTP Ubuntu почти завершена, сохраните изменения в конфигурационном файле и перезапустите vsftpd:
sudo systemctl restart vsftpd
Тестирование vsftpd
Сервер готов, но система настроена ещё не полностью. Сначала создадим нашего тестового пользователя с помощью useradd:
sudo useradd -m -c «Test User» -s /bin/bash testuser
sudo passwd testuser
Поскольку мы хотим подключаться от его имени к FTP-серверу, то нам нужно добавить его в vsftpd.userlist:
echo «testuser» | sudo tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist
Теперь самое время подключится к нашему FTP-серверу и проверить, как там всё работает. Попробуем войти от имени анонимного пользователя:
У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.
Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.
Настройка домашних папок пользователей
Чтобы хоть как-то обойти проблемы с безопасностью, вы можете использовать другую папку вместо домашней для предоставления её пользователю. Сначала создадим такую папку для нашего пользователя:
sudo mkdir -p /home/testuser/ftp/files
Уберём право на запись для папки ftp:
sudo chown nobody:nogroup /home/testuser/ftp
sudo chmod a-w /home/testuser/ftp
Затем дайте необходимые полномочия пользователю на запись в подпапку.
sudo chown -R testuser:testuser /home/testuser/ftp/files
sudo chmod -R 0770 /home/testuser/ftp/files/
Теперь вернёмся к конфигурационному файлу vsftpd.conf. Сначала закомментируйте строчку:
Теперь добавьте такие строчки:
user_sub_token = $USER
local_root=/home/$USER/ftp
Первая из них добавляет переменную $USER, в которой содержится имя пользователя, а вторая задаёт корневую папку для каждого пользователя. Осталось снова перезапустить FTP-сервер:
sudo systemctl restart vsftpd
Теперь вы можете снова войти от имени этого пользователя и увидите, что сейчас используется указанная нами папка.
Настройка защищенного соединения
Установка FTP на Ubuntu 20.04 завершена, но в наше время небезопасно использовать открытую передачу данных через сеть. Всё, что только возможно, необходимо шифровать. Поэтому мы рассмотрим, как настроить защищённое соединение для vsftpd. Сначала создадим папку и сгенерируем сам сертификат, который будем использовать:
sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem
Затем нужно разрешить доступ к портам защищённого соединения FTP с фаерволе UFW:
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status
И осталось внести несколько правок в настройку самого FTP-сервера. Нам нужно включить ssl_enable и отключить поддержку шифрования sslv2 и sslv3, оставляем только tlsv1:
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Далее раскоментируйте такие строки:
Запретите вход анонимных пользователей по SSL:
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
Теперь установим самый сложный шифр SSL:
И настроим диапазон портов для передачи данных:
Осталось перезагрузить наш сервис:
sudo systemctl restart vsftpd
Теперь тестируем, что у нас получилось:
Как видите, мы уже не можем авторизоваться с помощью утилиты ftp. FTP-сервер выдаёт, что мы обязаны использовать шифрование. Поэтому для тестирования применим FileZilla:
Теперь все данные будут передаваться по зашифрованному соединению. Установка FTP-сервер Ubuntu завершена.
Выводы
В этой статье мы рассмотрели, как выполняется установка FTP на Ubuntu Server 20.04, также как настроить FTP для максимально безопасной работы, включая настройку работы по SSL. Если у вас остались вопросы, спрашивайте в комментариях!
Источник