Ftp client linux centos

ИТ База знаний

Курс по 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 для пользователей, которые предпочитают использовать старый метод.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Вот список лучших 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.

Читайте также:  Windows ncore что это

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

Источник

Настройка FTP-сервера vsFTPd на CentOS 7

На текущий момент есть две удачные реализации FTP-сервера для Linux: vsFTPd и proFTPd. В данной инструкции речь пойдет о первом, так как его актуальная версия более свежая, в то время, как последняя версия proFTPd выпущена в 2013 году.

Установка и базовая настройка vsFTPd

Запускаем процесс установки:

yum install vsftpd

После открываем на редактирование следующий файл:

И приводим его к следующему виду:

allow_writeable_chroot=YES
pasv_min_port=40900
pasv_max_port=40999

* первые две строчки мы редактируем: anonymous_enable разрешает подключение анонимных пользователей, поэтому мы отключаем такую возможность; chroot_local_user запрещает выход за пределы домашней директории пользователя. Третью, четвертую и пятую строки мы дописываем — allow_writeable_chroot разрешает подключения пользователю, у которого есть права на запись в корневую директорию; это диапазон динамических портов, которые будут использоваться vsFTPd. Данный диапазон важно указывать, если используется брандмауэр. Сам диапазон можно задать любой из незарегистрированных портов.

Отключаем SELinux следующими командами:

sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config

* первая команда отключит SELinux, вторая — отключит его автозапуск после перезагрузки.

Добавляем правила в брандмауэр для корректной работы FTP-сервера:

firewall-cmd —permanent —add-port=20-21/tcp

firewall-cmd —permanent —add-port=40900-40999/tcp

Разрешаем автозапуск vsFTPd и запускаем его:

systemctl enable vsftpd

systemctl start vsftpd

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

useradd ftpuser -d /var/www -s /sbin/nologin

* ftpuser — имя учетной записи; /var/www — домашняя директория; /sbin/nologin запрещает локальный вход в систему.

Задаем пароль новому пользователю:

Базовая настройка закончена — можно пробовать подключаться к FTP-серверу.

vsFTPd через TLS

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

Читайте также:  Apt cacher ng alt linux

Для начала создаем сертификат:

openssl req -new -x509 -days 1461 -nodes -out /etc/vsftpd/vsftpd.pem -keyout /etc/vsftpd/vsftpd.pem -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test»

* в данном примере мы создаем самоподписный сертификат на 4 года для URL test.dmosk.local или test. Обратите внимание, это один файл, в котором содержится открытый и закрытый ключи.

Открываем на редактирование конфигурационный файл vsFTPd:

И дописываем в него следующее:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem

* где ssl_enable разрешает использование шифрования; allow_anon_ssl разрешает использовать SSL анонимным пользователям; force_local_data_ssl требует использования шифрования, и если установить YES, клиенты без шифрования не смогут подключиться; force_local_logins_ssl также требует подключение по SSL; ssl_tlsv1 — использовать TLS версии 1; ssl_sslv2 — использовать SSL версии 2; ssl_sslv3 — использовать SSL версии 3; rsa_cert_file — путь к сертификату.

systemctl restart vsftpd

Виртуальные пользователи

Устанавливаем пакет compat-db:

yum install compat-db

На всякий случай, сохраняем pam файл для авторизации vsftpd:

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back

Создаем новый файл со следующим содержимым:

auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
session required pam_loginuid.so

* где /etc/vsftpd/virtual_users — файл, в котором мы будем хранить пользователей.

Открываем конфигурационный файл сервера FTP:

И добавляем следующее:

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER

* где guest_enable разрешает виртуальных пользователей; guest_username — имя системной учетной записи, от которой работаю виртуальные пользователи; virtual_use_local_privs — виртуальные пользователи с такими же привилегиями, что и локальные; user_sub_token — имя учетной записи храниться в переменной $USER; local_root задает домашнюю директорию виртуальному пользователю.

Создаем файл с виртуальными пользователями со следующим содержимым:

ftp1
passwd1
ftp2
passwd2

* где ftp1 и ftp2 — логины; passwd1 и passwd2 — пароли.

Сразу генерируем из файла базу:

db_load -T -t hash -f /etc/vsftpd/virtual_users /etc/vsftpd/virtual_users.db

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

И также у системной учетной записи есть соответствующие права:

chown -R :ftp /home/ftp

systemctl restart vsftpd

Хранение пользователей в базе данных

В качестве базы данных можно использовать MySQL или MariaDB. В данном примере будет использоваться последняя.

Устанавливаем СУБД следующей командой:

yum install mariadb mariadb-server

Разрешаем автозапуск и запускаем сервис:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для пользователя root:

mysqladmin -u root password

Запускаем командную оболочку mariadb:

Создаем базу данных и пользователя с правами только на выборку данных:

> CREATE DATABASE vsftpd;

> GRANT SELECT ON vsftpd.* TO ‘vsftpd’@’localhost’ IDENTIFIED BY ‘passwordftp’;

* где vsftpd.* разрешает доступ на все таблицы базы vsftpd; ‘vsftpd’@’localhost’ — учетная запись, у которой есть право подключаться только с локального сервера; passwordftp — пароль для подключения.

Подключаемся к созданной базе и создаем таблицу:

> CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`password` VARCHAR( 50 ) NOT NULL ,
UNIQUE (`username`)
) ENGINE = MYISAM ;

Теперь добавим пользователя:

> INSERT INTO users (username, password) VALUES(‘ftpm1’, md5(‘password’));

Читайте также:  Как включить брендмауэры windows 10 через консоль

* где ftpm1 — логин, password — пароль.

Выходим из оболочки mariadb:

Устанавливаем модуль pam_mysql:

rpm -Uvh ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/20/Everything/x86_64/os/Packages/p/pam_mysql-0.7-0.16.rc1.fc20.x86_64.rpm

Сохраняем копию pam файла:

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back

Создаем новый и приводим его к следующему виду:

session optional pam_keyinit.so force revoke
auth required pam_mysql.so user=vsftpd passwd=passwordftp host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=password crypt=3
account required pam_mysql.so user=vsftpd passwd=passwordftp host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=password crypt=3

* где user=vsftpd passwd=passwordftp — логин и пароль для подключения к базе данных; db=vsftpd table=users — имя созданной базы данных и таблицы с пользователями; usercolumn=username passwdcolumn=password — название полей, из которых извлекаем логины и пароли для FTP-пользователей.

Настройка завешена, пробуем подключиться.

Возможные проблемы

Ошибка GnuTLS -15: An unexpected TLS packet was received

Ошибка возникает в том случае, когда у учетной записи, от которой идет подключения есть права на запись в корневую домашнюю директорию, а также используется безопасное соединение через TLS. В vsFTPd, по умолчанию, это приводит к ошибке.

Для решения проблемы воспользуйтесь любым из способов:

  1. Убираем права на запись для корневой директории, например: chmod a-w /var/www
  2. В конфигурационном файле vsftpd добавляем следующую строку:
    allow_writeable_chroot=YES

Если это не помогло, отключите шифрование, закомментировав строку ssl_enable=YES. После этого, при подключении будут появляться более информативные сообщения.

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Ошибка возникает в том случае, когда у учетной записи, от которой идет подключения есть права на запись в корневую домашнюю директорию. В vsFTPd, по умолчанию, это приводит к ошибке.

Для решения проблемы воспользуйтесь любым из способов:

  1. Убираем права на запись для корневой директории, например: chmod a-w /var/www
  2. В конфигурационном файле vsftpd добавляем следующую строку:
    allow_writeable_chroot=YES

500 OOPS: cannot change directory:/.

Не существует директории или нет прав на чтение.

Проверьте правильность настроек и то, что директория, действительно существует.

SFTP как альтернатива FTP

Если необходимо разово перенести на сервер данные, можно обойтись протоколом SSH File Transfer Protocol или SFTP. Все, что для этого нужно — доступ по SSH и программа клиент, например, WinSCP.

FTP-клиент на CentOS

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

Для этого выполняем установку клиента:

yum install ftp

И подключаемся к нашему серверу командой:

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

Trying ::1.
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftpm1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

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

* сам файл должен быть в каталоге, в котором мы были перед подключение к серверу FTP.

Если мы получим ошибку 500 active mode is disabled, use passive mode instead, просто переключаемся в пассивный режим:

Источник

Оцените статью