Введение.
Сегодня сервер FTP1 становится обязательной частью любого офиса. Без его работы не обходится ни одна серьёзная компания. Узел на базе FTP входит в пятёрку основных серверов, составляющих ядро ИТ компании. Основная задача сервера FTP — передача файлов больших размеров между пользователями. Ранние уже говорилось о Web сервере, сервере Баз данных, Портале и сервере NFS. Сейчас поговорим о сервере FTP (vsftpd). Одним из популярных Linux серверов поддерживающих FTP протокол, является vsftpd2 сервер.
Сервер vsftpd распространяется под лицензией GPL. Обеспечивает обмен данными в каналах разной пропускной способности.
- Позволяет:
- изменять конфигурацию виртуальных IP-адресов
- создавать виртуальных пользователей
- работать автономно или как служба inetd3
- использовать гибкую конфигурацию
- регулировать полосу пропускания
- настраивать IP-адресс источника
- поддержка IPv6
- использовать SSL шифрование
- выполнять управление в консольном или GUI режиме
- Стенд:
- ALT Linux сервер, имя lin-ftp; ip-10.0.2.36;
Подготовка vsftpd.
Прежде чем перейти к развёртыванию узла vsftpd, как приложения, нам понадобится базовый сервер Linux минимальной конфигурации. Серверная часть FTP должна работать, как отдельный узел, обслуживая только FTP соединения, этим повышается надёжность, безопасность и простота в обслуживании. Найти» железо» для сервера FTP несложно, для этого можно использовать и облачную технологию Azure, Hyper-V, KVM…
Не используйте старое, на выброс, оборудование в качестве FTP сервера.
Развёртывание сервера FTP возможно из консольного режима и с помощью графики GUI4.
Установка vsftpd консольная.
- Требования:
- скачать последние пакеты обновления
- выделить статический IP адрес
- включить в DNS5 имя сервера, стендовое lin-ftp
Установка.
# apt-get update
# apt-get install vsftpd
Редактируем файл конфигурации службы xinetd6 управляющей FTP процессом.
# 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 и:
- файл конфигурации — conf
- файл предупреждений — banner_fail
- каталог профилей пользователей — user_conf
![Каталог vsftpd](https://kabtim.ru/wp-content/uploads/2024/07/ftp.jpeg)
Графический клиент FTP.
Остаётся проверить работу сервера FTP. Отметим только, что установка из «коробки«, допускает подключение пользователя anonymous7 для чтения каталога FTP. Это означает — любой пользователь, зная имя или IP адрес сервера FTP может просматривать каталоги и скачивать файлы.
Для проверки, с помощью mcedit8 редактора, создадим тестовый файл test-ftp и скопируем его в каталог /srv/public, который просматривает служба сервера FTP.
mc — GNU Midnight Commander — файловый менеджер
С помощью mc создадим сессию FTP и убедимся, что всё работает.
![Выбор режима FTP соединения.](https://kabtim.ru/wp-content/uploads/2024/07/ftp3_0.jpeg)
![Ввод адреса FTP сервера.](https://kabtim.ru/wp-content/uploads/2024/07/ftp3.jpeg)
![Подключение к FTP серверу.](https://kabtim.ru/wp-content/uploads/2024/07/ftp3_1.jpeg)
В роли графического9 клиента может выступать любой браузер, если в его адресной строке ввести ftp://ctu-lin.
Проблемы при FTP соединении.
При больших нагрузках сервер пишет предупреждение.
![Баннер предупреждения при FTP соединение.](https://kabtim.ru/wp-content/uploads/2024/07/ftp1.jpeg)
Консольный клиент FTP.
К преимуществам консольного соединения с сервером FTP относится скорость, простота использования и вывод статистики работы.
Установка консольного клиента.
# apt-get update
# apt-get install 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
Установка vsftpd графическая.
Для графической, с использованием браузера, настройки сервера потребуется дополнительные пакеты.
# apt-get update
# apt-get install vsftpd
# apt-get install alterator-vsftp
Регистрируемся в ЦУС10 сервера FTP, как показано ниже и переходим в секцию настроек.
![Адрес ЦУС FTP сервера.](https://kabtim.ru/wp-content/uploads/2024/07/ftp4-1.jpeg)
![егистрация в ЦУС FTP сервера.](https://kabtim.ru/wp-content/uploads/2024/07/ftp4_1.jpeg)
Устанавливаем режим эксперта в настройках ЦУС.
![Режим эксперт настроек ЦУС.](https://kabtim.ru/wp-content/uploads/2024/07/ftp5.jpeg)
После выполнения всех действий, открывается вкладка, FTP сервер. Внимательно знакомимся с предлагаемыми кнопками и выбираем нужные.
![Окно настроек FTP сервера.](https://kabtim.ru/wp-content/uploads/2024/07/ftp5_1.jpeg)
Если флажок установлен «Разрешить закачку файлов» 11
Расширение сервера.
В процессе эксплуатации, информация накапливаемая на дисках сервера может достигать критических размеров. Перед администратором становится задача, как увеличить дисковое пространство. Дополнительный диск можно смонтировать воспользовавшись сценарием mapftp.
Сценарий mapftp хранится в каталоге /usr/local/bin.
#!/bin/bash
# файл mapftp
# монтировать диск ftp к серверу lin-ftp
mount lin-ftp /srv/public
Для автозагрузки mapftp воспользуемся командой crontab12.
# 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
Теперь, при каждом старте, дополнительный FTP диск будет под монтирован к основной файловой системе сервера.
Каталоги FTP сервера.
- В работе vsftpd участвуют:
- /etc/xinetd.d/vsftpd — файл настроек службы
- /etc/vsftpd — каталог конфигурационных файлов
- /var/~ftp — ссылка на рабочий каталог
- /usr/sbin/vsftpd — путь к команде запуска vsftpd
- /usr/share/man/man8/vsftpd.8.xz — путь к man
- /srv/public — рабочий каталог, права 755
Заключение.
Закончив установку базового сервера минимальной конфигурации и сервера FTP переходим к тонким настройкам. Прежде всего необходимо определить политику доступа и нагрузку. Пользовательский доступ зависит от регламента использования FTP в организации. Нагрузка определяется скоростью ЦПУ, размером ОЗУ и дискового пространства сервера. Здесь можно предложить следующий вариант. Системный раздел располагается на отдельном диске ~ 10Гб. Пространство под FTP каталог рассчитывается из максимального размера «прокачиваемой» информации.
Полезные ссылки.
Официальный сайт vsftpd
Русифицированный сайт vsftpd
Файл конфигурации vsftpd.conf
Файл конфигурации vsftpd.conf5
Сноски
- FTP (File Transfer Protocol) для передачи файлов через Интернет или локальную сеть ↩︎
- vsftpd — very Secure FTP Daemon очень безопасный FTP-демон ↩︎
- inetd демон, запускает по необходимости другие сетевые серверные процессы ↩︎
- graphical user interface — графический пользовательский интерфейс ↩︎
- Domain Name System «система доменных имён») ↩︎
- xinetd — the eXtended InterNET services Daemon — расширенная служба (демон) управления сетевыми соединениями. ↩︎
- «безымянный» ↩︎
- Midnight Commander (полуночный командир) ↩︎
- некоторые графические клиенты: WinSCP, Core FTP LE, CuteFTP, Cyberduck, FileZilla … ↩︎
- центр управления системой ALT Linux ↩︎
- в /srv/public создаётся папка incoming ↩︎
- crontab – это таблица с расписанием запуска скриптов и программ ↩︎