Как применять ProFTPD на Ubuntu 22.04

Posted by

Задача: Адаптировать установку и настройку сервиса ProFTPd на LTS системе Ubuntu 22.04 Server, т.к. нужно знать нюансы ведь новые сервисы в компании появляются, а значит функционал доступа по FTP будет снова задействован. Да есть доступ к серверу через scp, но для выкладывания с последующим скачиванием для других, лучше просто выложить на FTP и пусть скачиваю либо, как у нас клиент 1C 7.7 связывается с сайтом и взаимодействует с файлами обмена. Ранее я для боевых сайтов расписывал, как для Ubuntu 18.04 использовать/настраивать сервис ProFTPD:

Сейчас адаптирую все под Ubuntu 22.04 LTS Server с учетом своих наработок.

Шаг №1: Подготавливаю систему к последующему использованию:

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №2: Устанавливаю приложение ProFTPd на Ubuntu 22.04 Server через дефолтные репозитарии:

Шаг №3: Устанавливаю Webсервис Nginx:

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №4: Создаю свой конфигурационный файл на основе дефолтных настроек с учетом моих требований.

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №5: Перезапускаю сервис proftpd:

закомментировал #IdentLookups off в /etc/proftpd/proftpd.conf

Шаг №6: Создаю файл в котором будут указаны виртуальные учетные записи ftp и их пароли в зашифрованном виде:

Шаг №7: Добавляю в файле где перечислены оболочки консоли, которые можно назначать пользователям, что есть еще пустая (/bin/false), т.е. без доступа к интерпретатору команд:

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №8: Получаю идентификатор учетной записи Webсервиса, т.е. www-data:

Шаг №9: Определяю, какой ID пользователя самый последний в системе:

но лучше не после этого создавать, а к примеру, с 10000

Шаг №10: Создаю виртуального пользователя:

Шаг №11: Проверяю содержимое файла /etc/proftpd/ftpd.passwd:

Шаг №12: Теперь с учетом задания которое я поставил себе оформляя ее как заметку нужно дать виртуальным пользователем доступ на запись в указанный домашним каталогом:

Шаг №13: Проверяю, что могу подключить к FTP с другой машины и в качестве авторизации указываю один из созданных виртуальных логинов со своим паролем (Login: ftp1 Pass: Aa1234567aA)

Настройки подключения через winscp

  • File protocol: FTP
  • Encryption: No encryption
  • Host name: 172.33.33.117
  • Port number: 21
  • User name: ftp1
  • Password: Aa1234567aA

Настройки подключения к ProFTPd через WinSCP

Т.к. права 770, то успешно имею полные права в каталоге /var/www/html

Права 770, имею полные права под пользователем ftp1

Если нужно через консоль передать с локальной системы на удаленную:

ftp> put out.txt

Если нужно через консоль с текущей передать на удаленную:

ftp> get out.txt out1.txt

т.е. на локальной системе с которой я инициализировал подключение через FTP в каталоге откуда делал ftp IP-Address 21 будет файл out1.txt

ls -l out1.txt

-rw-r--r-- 1 ekzorchik ekzorchik 286104 апр 8 13:32 out1.txt

итого доступ в назначенный /var/www/html/ каталог для виртуального пользователя сервиса ftp1 работает. Права на чтение, запись, выполнение есть, т.е. я могу обновлять файлы сайта.

Итого заметка работоспособна. Если смотреть на нее и на нее же, но написанную ранее на базе Ubuntu 18.04 Server то ничего не изменилось, кроме одного единственного параметра в конфигурационном файле на который у меня пожаловался сервис при запуске. Это кстати хорошо, я за единство настройки конфигурационных файлов сервисов дабы проще было администрировать и понимать, что не так если что-то не работает. Ах да, я администрировать должен только я, а не множество людей.

На этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.