Как установить и настроить FTP Linux.

Введение.

Сегодня сервер FTP становится обязательной частью любого офиса. Без его работы не обходится ни одна серьёзная компания. Узел на базе FTP входит в пятёрку основных серверов, составляющих ядро ИТ компании. Основная задача сервера FTP — передача больших файлов между пользователями. Ранние уже говорилось о Web сервере, сервере баз данных, портале, сервере NFS, сейчас поговорим о сервере FTP. Одним из популярных Linux серверов поддерживающих FTP протокол, является vsftpd сервер.

vsftpd — very Secure FTP Daemon -очень безопасный FTP-демон

vsftpd — very Secure FTP Daemon -очень безопасный FTP-демон

Сервер vsftpd распространяется под лицензией GPL — служит для обмена данными в каналах разной пропускной способности, позволяя:

  • изменять конфигурацию виртуальных IP-адресов
  • создавать виртуальных пользователей
  • работать автономно или как служба inetd
  • использовать гибкую конфигурацию
  • регулировать полосу пропускания
  • настраивать IP-адресс источника
  • поддержка IPv6
  • использовать SSL шифрование
  • выполнять управление в консольном или GUI режиме
  • Стенд:
    • ALT Linux сервер, имя lin-ftp; ip-10.0.2.36;

Подготовка vsftpd.

Прежде чем перейти к развёртыванию vsftpd сервера, как приложения, нам понадобится базовый сервер Linux минимальной конфигурации. Предполагаем, что FTP должен работать, как отдельный сервер, обслуживая только FTP соединения — повышается надёжность, безопасность, простота в обслуживании. Найти оборудование для выделенного FTP сервера несложно, если использовать облачную технологию Azure, Hyper-V, KVM…

Не используйте старое, на выброс, оборудование в качестве FTP сервера.

Установка vsftpd консольная.

После установки сервера Linux минимум необходимо:

  • выделить статический IP адрес для сервера
  • настроить DNS имя сервера, стендовое lin-ftp
  • скачать последние пакеты обновления сервера

Переходим к установке сервера FTP используя консоль.

# apt-get update
# apt-get install vsftpd

Редактируем файл конфигурации службы xinetd — управляет FTP процессом.

xinetd — the eXtended InterNET services Daemon — расширенная служба (демон) управления сетевыми соединениями.

# vim /etc/xinetd.d/vsftpd
# default: off 
# description: The vsftpd FTP server. 
service ftp 
{ 
         disable     = no 
         socket_type = stream 
         protocol    = tcp 
         wait        = no 
         user        = root 
         nice        = 10 
         rlimit_as   = 200M 
         server      = /usr/sbin/vsftpd 
#        server_args =
         only_from   = 0/0 
}

Перезапуск службы xinetd — работает автоматически, но всё же поможем ей в ручную.

# systemctl restart xinetd

В дереве каталогов /etc создаётся папка vsftpd, с файлами:

  • конфигурации
  • предупреждений
  • каталогом профилей для пользователей FTP
Вид: папка сервера vsftpd
Вид: каталог vsftpd

Файл предупреждений содержит строку сообщения — появляется при перегрузке сервера FTP.

Вид: баннер предупреждения сервера vsftpd
Вид: баннер предупреждения.

Остаётся проверить работу сервера FTP. Отметим толко, что установка из «коробки«, допускает подключение пользователя anonymous для чтения каталога FTP. Это означает — любой пользователь, зная имя или IP адрес сервера FTP может просматривать его каталог.

Для проверки работы, с помощью mcedit редактора, создадим тестовый файл test-ftp и скопируем его в каталог /srv/public — просматривает служба сервера FTP.

mc — GNU Midnight Commander — файловый менеджер

С помощью mc создадим сессию FTP и убедимся, что всё работает.

Вид: режим FTP соединения c сервером из mc консоли.
Вид: режим FTP соединения.
Вид:запись адреса vsftpd сервера.
Вид:адрес FTP сервера.
Вид: подключение к ftp серверу.
Вид: подключение к FTP серверу.

Эти же действия можно сделать используя консольный FTP клиент, предварительно установив его.

# apt-get update
apt-get install ftp

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

# ftp lin-ftp
Connected to lin-ftp (10.0.2.15).
220 (vsFTPd 3.0.3)
Name (localhost:user): anonymous
331 Please specify the password.
Password: anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (10.0.2.15,202,225).
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp             0 Dec 31 00:00 test-ftp
226 Directory send OK.
ftp> exit

Проверьте соединение с lin-ftp из рабочей станции, используя любой клиент FTP или браузер набрав адрес ftp://ctu-lin.

Установка vsftpd графическая.

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

Регистрируемся в ЦУС сервера FTP, как показано ниже и переходим в секцию настроек FTP.

ЦУС — вэб интерфейс центра управления системой.

Вид: регистрация в ЦУС ALT Linux.
Вид: адрес ЦУС FTP сервера.
Вид: продолжение регистрация в ЦУС  ALT Linux
Вид: регистрация в ЦУС FTP сервера.

Устанавливаем уровень, режим эксперта, в настройках ЦУС.

Вид: режим эксперта настроек ЦУС для отображения сервера vsftpd.
Вид: режим эксперта настроек ЦУС сервера FTP.

После выполнения всех действий, открывается вкладка, FTP сервер. Внимательно знакомимся с предлагаемыми кнопками и выбираем нужные.

Вид; окно настроек vsftpd сервера ALT Linux.
Вид; окно настроек FTP сервера.

Если флажок установлен «Разрешить закачку файлов» в каталоге /srv/public создаётся папка incoming

Заключение.

Закончив установку базового сервера минимальной конфигурации и сервера FTP переходим к тонким настройкам. Прежде всего необходимо определить политику доступа к FTP и нагрузку. Пользовательский доступ зависит от регламента использования FTP в организации. Нагрузка определяется скоростью ЦПУ, размером ОЗУ и дискового пространства сервера FTP. Здесь можно предложить следующий вариант. Системный раздел располагается на отдельном диске ~ 10Гб. Пространство под FTP каталог рассчитывается из максимального размера «прокачиваемой» информации.

Дополнительный диск монтируется к каталогу хранилища сервера FTP с использованием сценария mapftp. Можно использовать файл /etc/fstab для подключения диска, но лишний раз лучше не трогать системные файлы.

#!/bin/bash
# файл mapftp
# монтировать диск ftp к серверу lin-ftp
mount lin-ftp /srv/public 

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

Файл mapftp должен находится в каталоге /usr/local/bin.

Для автозагрузки сценария mapftp воспользуемся командой crontab.

# crontab -e
#| minute (0-59),
#|	hour (0-23),
#|	|	day of the month (1-31),
#|	|	|	month of the year (1-12),
#|	|	|	|	day of the week (0-6 with 0=Sunday).
#|	|	|	|	|	commands
@reboot                                 mapftp

Полезные ссылки.

Официальный сайт
Русифицированный сайт
Файл конфигурации vsftpd.conf
Файл конфигурации vsftpd.conf5