Установка и настройка proftpd ubuntu

Обновлено: 07.07.2024

В этом выпуске заметок я покажу на практическом применении, как поднять FTP ресурс задействовав лишь один конфигурационный файл — да есть и такое имя ему: ProFTPd. Вообще если честно без разница какое программное обеспечение использовать, а главное чтобы Вы с ним уже работали и имели разносторонние взгляды на решение Вашей поставленной задачи. И вот сейчас заметка для себя, но ведь она также может и пригодиться Вам. Все рассматриваемые действия ниже ориентированы на Ubuntu Trusty самой последней версии и с последними обновлениями на момент данной заметки.

14.04.1-Ubuntu SMP Thu Nov 24 19:22:30 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.5 LTS

Настраиваю правильный часовой пояс на системе в рамках моего текущего месторасположения:

$ sudo rm -f /etc/localtime

$ sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаю утилиту proftpd из дефолтных репозитариев Ubuntu Trusty:

$ sudo apt-get install proftpd -y

Run proftpd: standalone

Всегда делаю бекап дефолтного конфигурационного файла и на его основе создаю свой:

$ sudo mv /etc/proftpd/proftpd.conf

$ sudo cp /etc/proftpd/proftpd.conf.backup /etc/proftpd/proftpd.conf

$ sudo nano /etc/proftpd/proftpd.conf

DisplayChdir .message true

PassivePorts 49152 65534

ExtendedLog /var/log/proftpd/auth.log AUTH auth

SetEnv TZ :/etc/localtime

(Если нужно вывести содержимое конфигурационного файла без символов комментария: ekzorchik@srv-host:

Запретить тем учетным записям которые Вы бы не хотели чтобы имели возможность подключаться к текущего разворачиваемому FTP сервису можно путем внесения их логина в данный файл:

$ sudo bash -c "cat /etc/ftpusers | head -n 5"

Запускаю сервис proftpd:

$ sudo service proftpd start

* Starting ftp server proftpd [ OK ]

$ sudo service proftpd status

ProFTPD is started in standalone mode, currently running.

$ sudo netstat -tlpn | grep proftpd

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2094/proftpd:

Теперь проверяю, как работает данный FTP сервис, вот только по дефолту подключившись к нему под текущей учетной записью я попадаю в собственный каталог /home:

$ ftp localhost 21

Connected to localhost.

220 ProFTPD 1.3.5rc3 Server (srv-host) [127.0.0.1]

Name (localhost:ekzorchik): ekzorchik

331 Password required for ekzorchik

Password: 712mbddr@

230 User ekzorchik logged in

Remote system type is UNIX.

Using binary mode to transfer files .

ftp> ls

200 PORT command successful

150 Opening ASCII mode data connection for file list

226 Transfer complete

ftp> quit

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

$ sudo mkdir -p /var/www/ftp

(Добавить строку после всех имеющихся)

$ sudo nano /etc/shells

$ sudo service proftpd restart

uid=106(ftp) gid=65534(nogroup) groups=65534(nogroup)

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Теперь создаем виртуального пользователя развернутого FTP ресурса:

$ sudo mkdir /var/www/ftp/user1

$ sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=wp --shell=/bin/false --home=/var/www/ftp/user1 --uid=107 --gid=33

ftpasswd: using alternate file: /etc/proftpd/ftpd.passwd

ftpasswd: creating passwd entry for user wp

Password: Aa1234567

Re-type password: Aa1234567

ftpasswd: entry created

Теперь посмотрим содержимое файла где хранится пароль виртуального пользователя:

$ sudo bash -c "cat /etc/proftpd/ftpd.passwd"

$ sudo chown -R 107:33 /var/www/ftp/user1/

drwxr-xr-x 2 107 www-data 4096 Dec 4 16:53 user1

$ sudo service proftpd stop

$ sudo service proftpd start

Проверяю, как я смогу зайти под созданным пользователем на FTP ресурс:

$ ftp localhost 21

Connected to localhost.

220 ProFTPD 1.3.5rc3 Server (srv-host) [127.0.0.1]

Name (localhost:ekzorchik): wp

331 Password required for wp

530 Login incorrect.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> quit

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

$ sudo tail -f /var/log/proftpd/proftpd.log

2016-12-04 16:59:00,717 srv-host proftpd[2330] srv-host (localhost[127.0.0.1]): error: unable to open passwd file '/etc/proftpd/ftpd.passwd': Permission denied

2016-12-04 16:59:00,717 srv-host proftpd[2330] srv-host (localhost[127.0.0.1]): USER wp: no such user found from localhost [127.0.0.1] to 127.0.0.1:21

$ sudo chmod 440 /etc/proftpd/ftpd.passwd

$ sudo chown proftpd.root /etc/proftpd/ftpd.passwd

$ sudo service proftpd start

* Starting ftp server proftpd [ OK ]

$ sudo netstat -tulpn | grep :21

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2531/proftpd:

$ ftp localhost 21

Connected to localhost.

220 ProFTPD 1.3.5rc3 Server (srv-host) [127.0.0.1]

Name (localhost:ekzorchik): wp

331 Password required for wp

230 User wp logged in

Remote system type is UNIX.

Using binary mode to transfer files.

200 PORT command successful

150 Opening ASCII mode data connection for file list

226 Transfer complete

257 "/user1" is the current directory

Вот теперь подключение под виртуальным пользователем прошло успешно и его каталог есть обозначенный user1, только вот что плохо, что пользователь может покинуть его и посмотреть какие каталоги есть еще:

ftp> cd /

250 CWD command successful

ftp> ls

200 PORT command successful

150 Opening ASCII mode data connection for file list

drwxr-xr-x 2 wp www-data 4096 Dec 4 13:53 user1

226 Transfer complete

ftp> pwd

ftp> mkdir user2

550 user2: Permission denied

Ладно с этим я еще побадаюсь, я ведь пока изучаю как работает данный ftp сервис, а потому могу совершать непростительные ошибки настройки.

Решение: чтобы виртуальный пользователь FTP ресурса был ограничен только своим домашним каталогом нужно:

$ sudo nano /var/www/ftp/user1/.ftpaccess

<Limit READ WRITE DIRS>

Так, а теперь еще усложним задачу, нужно чтобы только через безопасное (TLS/SSL) подключение был доступ на FTP ресурс:

$ sudo mkdir /etc/ssl/proftpd

$ sudo openssl req -x509 -days 3650 -nodes -newkey rsa:4096 -keyout /etc/ssl/proftpd/proftpd.key -out /etc/ssl/proftpd/proftpd.crt

Generating a 4096 bit RSA private key

Common Name (e.g. server FQDN or YOUR name) []: 192.168.1.153

$ sudo chmod 600 /etc/ssl/proftpd/proftpd.key

$ sudo nano /etc/proftpd/proftpd.conf

PassivePorts 49152 65534

$ sudo nano /etc/proftpd/tls.conf

TLSOptions NoCertRequest AllowClientRenegotiations

$ sudo nano /etc/default/proftpd

$ sudo service proftpd stop

* Stopping ftp server proftpd [ OK ]

$ sudo service proftpd start

* Starting ftp server proftpd

$ sudo netstat -tlpn | grep proftpd

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2726/proftpd:

Теперь если пытаться подключиться как обычно, просто на 21 порт сервис ответит ошибкой, что так нельзя и он работает только если задействовать TLS:

$ ftp localhost 21

Connected to localhost.

220 ProFTPD 1.3.5rc3 Server (srv-host) [127.0.0.1]

Name (localhost:ekzorchik): wp

550 SSL/TLS required on the control channel

Remote system type is UNIX.

Using binary mode to transfer files.

Проверяю возможность подключения по зашифрованному соединению из своей рабочей станции под управлением Ubuntu 12.04.5 Precise Desktop Gnome Classic amd64 ноутбука Lenovo ThinkPad E555 посредством устанавливаемого клиента Filezilla:

$ sudo apt-get install filezilla -y

Приложения — Интернет — FileZilla — Файл — Менеджер Сайтов — Новый сайт :

вкладка Общие:

  • Хост: 192.168.1.153
  • Protocol: FTP — File Transfer Protocol
  • Encryption: Require explicit FTP over TLS
  • Тип входа: Нормальный
  • Пользователь: wp
  • Пароль: Aa1234567

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

Подключение через TLS к FTP успешно.

Чтобы отключиться от FTP сервера: FileZilla — Сервер — Разъединить.

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

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

Теперь другая задача как настроить безопасность данного FTP ресурса.

  • 1) Сменить дефолтный порт на выше 1024
  • 2) Прекратить болтливость SSH сервиса на сервере:

$ sudo nano /etc/ssh/sshd_config

а также все возможная защита SSH сервиса: опубликую чуть позже.

$ sudo service ssh restart

$ sudo nmap -T4 -A 192.168.1.153 -p 22

22/tcp open ssh OpenSSH 6.6.1p1 (protocol 2.0)

  • 3) Включить доступ к FTP ресурсу только через TLS
  • 4) Задействовать UFW только порт сервиса SSH & ProFTPD
  • 5) Прекратить болтливость FTP ресурса о своей версии и по:

$ ftp localhost 21

Connected to localhost.

220 ProFTPD 1.3.5rc3 Server (srv-host) [127.0.0.1]

Нужно в /etc/proftpd/proftpd/proftpd.conf добавить следующий параметр:

$ sudo service proftpd stop && sudo service proftpd start

$ sudo netstat -tulpn | grep proftpd

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3496/proftpd:

Connected to 192.168.1.153.

220 192.168.1.153 FTP server ready

Name (192.168.1.153:ekzorchik): wp1

331 Password required for wp1

230 User wp1 logged in

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> quit

Вот уже лучше, а если просканировать данный хост с другой станции сетевым сканером nmap:

$ sudo nmap -T4 -A 192.168.1.153 -p 21

PORT STATE SERVICE VERSION

21/tcp open ftp ProFTPD

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Этот небольшой постик посвящён установке и настройке FTP сервера ProFTPD в Ubuntu.

К написанию сподвигло отсутствие нормального пошагового руководства на чём вчера споткнулся сам :/

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

Установить ftp сервер ProFTPD на базе Ubuntu в локальной сети. Сервер не анонимный, имеет авторизацию по выдаваемому администратором логину и паролю. Базы данных для авторизации не используются в данном случае, то есть никаких умопомрачительных конструкций с mysql не будет :)

Устанавливаем сам сервер. Я поставил тот, что идёт с репозиториев, кому хочется поставить более свежую версию - собирайте его сами с сайта.

sudo apt-get install proftpd-basic

Сервер устанавливаем как standalone (должно вылететь соответствующее окошко с запросом).

Далее создаём каталог, обращаю внимание на то, что я устанавливал сервер на десктоп версию убунты, так как нагрузка на него не велика 2-3 юзера в день.

Переходим в домашний каталог:

Создаём в нём каталог ftp в котором и будут храниться наши файлы

sudo mkdir ftp

Далее вам необходимо зайти в файл

/etc/shells и проверить, есть ли там строчка

если нет, то добавьте её туда (здесь и далее я разжёвывать не буду уж такие простые вещи, как редактирование файла под sudo хорошо?, всё же если вы ставите сервер, то потрудитесь перед этим изучить самые основы).

Выставим права на каталог ftp в который будем заливать файлы:

sudo chmod 777 ftp


Теперь нам надо создать пользователей с их логинами и паролями. Делается это через команду. Обратите внимание, что первой командой мы создаём группу и присваиваем данной группе конкретного пользователя, второй пользователя, хранятся эти данные в соответствующих файлах рядом с файлом конфигурации сервера в каталоге

Первая команда - создаём группу ftp2 пользователем которой является пользователь с именем user, автоматически будет также создан файл ftpd.group


sudo ftpasswd --group --name=ftp2 --gid=50 --member=user --file /etc/proftpd/ftpd.group
Вторая команда - создаём самого пользователя user. Обратите внимание, ещё раз, что user - это логин пользователя, он может быть маша, вася, петя и так далее, короче это логин. В этой же команде задан каталог пользователя. Автоматически также при первом использовании команды будет создан файл ftpd.passwd


sudo ftpasswd --passwd --name=user --home=/home/ftp --shell=/bin/false --uid=1003 --file /etc/proftpd/ftpd.passwd

При вводе команды будет запроше пароль для пользователя, ну придумайте уж какой-нибудь.

Последние две команды выше повторяем столько раз сколько пользователей вам нужно. Кому очень хочется посмотреть куда пишутся пароли и прочее (они там будут в виде хэша) велком в каталог /etc/proftpd


Ещё раз для понимания - это не UNIX пользователи, это фактически учётные записи вашего фтп-сервера.

Далее настраиваем конфиг сервера
/etc/proftpd/proftpd.conf

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

RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group

ServerName "ftp-server"
ServerType standalone
DeferWelcome on

MultilineRFC2228 on
DefaultServer on
ShowSymlinks off

TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200

DisplayChdir .message
ListOptions "-l"

MaxClients 8
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8

<Directory /home/ftp>
Umask 022 022
AllowOverwrite on
</Directory>



/etc/init.d/proftpd start

Всё должно работать.

18 комментариев:

При такой конфигурации все пользователи будут хранить свои файлы в одной общей папке?

Да это одна папка, у меня такая пока необходимость, попозже сделаю вариант конфигурации с разными папками. Возможности конфигурирования очень богатые у этого сервера.

Хороший мануал.Спасибо.В 10.04 надо standolone заменить initd

ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration.
ProFTPd предупреждение: не может запуститься ни в автономном ни в Inetd/Xinetd режиме. Проверьте конфигурацию.

Вот что получилось

К сожалению потребности в фтп у меня нет сейчас, поэтому проверить повторно не могу, но у меня данная конфигурация полностью работала.
Проверяйте настройки, гуглите.

норм статья. Тольково написано. Завелось с первого раза. Только один вопрос- если например я создал пару пользователей п1,п2,п3 как мне удалить например пользователя2?

Ох. фишка в том, что я сейчас не пользую фтп - отпала надобность, поэтому могу посоветовать только глянуть
/etc/proftpd
что там? файлик там должен быть с хэшами паролей юзеров, вроде так.
Задача видимо сведётся к удалению соответствующего юзера из файла и всё.

Ребят, man passwd, файл для ProFTPd работает аналогично. И не забывайте юзать файл ftpasswd из папки contrib дистрибутива proftpd.

ребятки че то я ни как не могу въехать! все сделал по мануалу! все заработало! только не пойму что в Браузере нужно вписывать! "ftp://. а вот че дальше? да и после команды /etc/init.d/proftpd start, вроде все поднялось, ввожу команду "ps aux" и не вижу процесса ftp!? почему?

Как сделать чтобы пользователи не видели чужих папок?

Ставил vsftpd точно такаяже ситуация, в чём может быть проблема??

Статус: Соединяюсь с 23.23.241.114:21.
Статус: Соединение установлено, ожидание приглашения.
Ответ: 220 ProFTPD 1.3.4a Server ready.
Команда: USER user
Ответ: 331 Password required for user
Команда: PASS *******
Ответ: 230 Welcome
Команда: SYST
Ответ: 215 UNIX Type: L8
Команда: FEAT
Ответ: 211-Features:
Ответ: LANG en-US.UTF-8*;en-US
Ответ: MDTM
Ответ: MFMT
Ответ: TVFS
Ответ: UTF8
Ответ: MFF modify;UNIX.group;UNIX.mode;
Ответ: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
Ответ: REST STREAM
Ответ: SIZE
Ответ: 211 End
Команда: OPTS UTF8 ON
Ответ: 200 UTF8 set to on
Статус: Соединение установлено
Статус: Получение списка каталогов.
Команда: PWD
Ответ: 257 "/" is the current directory
Команда: TYPE I
Ответ: 200 Type set to I
Команда: PASV
Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!

Ставил vsftpd такая же ситуация, в чём может быть проблема?

Спасибо! Хороший мануал. Подскажите, а как создать еще одного пользователя, но с другой домашней директорией.

думаю ребята подскажут.

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

Как установить FTP-сервер на

File T ransfer P rotocol (FTP) до сих пор широко используется технология для перемещения файлов по компьютерной сети. Он известен своей легкостью, простотой установки и использования. FTP имеет плохую репутацию небезопасного протокола, потому что он передает пароли и данные в виде простого текста. Однако современные FTP-серверы, такие как ProFTPD, поддерживают FTP через TLS, поэтому соединение шифруется с использованием TLS / SSL. В этом руководстве я покажу вам, как настроить ProFTPD, чтобы соединение было зашифровано с использованием TLS.

Предпосылки

  • Свежий экземпляр сервера с установленным Ubuntu 20.04 (Focal Fossa).
  • Sudo / root-права для установки / настройки приложений.

Обновление вашей системы

Всегда рекомендуется обновлять систему перед установкой каких-либо пакетов или программного обеспечения, особенно если оно поступает из внешних репозиториев. Для этого воспользуемся утилитой «apt-get»:

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

Установка ProFTPD Server

Теперь, когда ваша система обновлена, мы можем продолжить установку ProFTPD.

По умолчанию ProFTPD доступен в репозиториях Focal Fossa, которые вы можете установить с помощью следующей команды:

Как установить ProFTPD в Ubuntu 20.04

После завершения установки вы можете запустить службу proftpd и включить ее автоматический запуск во время загрузки.

Как установить ProFTPD в Ubuntu 20.04 1

Теперь, когда служба запущена, мы можем проверить ее статус, используя:

Как установить ProFTPD в Ubuntu 20.04 2

Вы можете увидеть активный (запущенный) зеленый цвет, поэтому можно с уверенностью заключить, что демон proftpd работает должным образом.

Файлы конфигурации по умолчанию ProFTPD доступны в каталоге /etc/proftpd/proftpd.conf.

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

Как установить ProFTPD в Ubuntu 20.04 3

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

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

(символ тильды), пользователи будут ограничены доступом к своим домашним каталогам. Вы можете изменить путь к другой папке, например:

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

Эти строки указывают, что пользователь A будет авторизован в каталоге / home / linux, а пользователь B будет авторизован во всей системе.

Директива ServerName используется для определения имени FTP-сервера. Эту директиву можно использовать в журналах и уведомлениях, поэтому вы должны установить для нее информативное имя, которое имеет для вас значение.

Создание пользователей ProFTPD

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

Установленная версия ProFTPD не поставляется с предварительно созданными пользователями и параметрами конфигурации из коробки. Для этого нам нужно будет добавить нового пользователя.

Давайте создадим пользователя FTP linuxways с папкой / home / linuxways в качестве домашней папки.

Создайте новый пароль для нового пользователя.

Теперь вы можете протестировать FTP-соединение с помощью пользователя «linuxways». Откройте предпочтительный FTP-клиент (FileZilla, CoreFTP или любой другой), введите данные, такие как IP-адрес, имя пользователя, пароль и порт, и нажмите « Быстрое подключение» .

Как установить ProFTPD в Ubuntu 20.04 4

Как видите, теперь мы можем получить доступ к FTP с новым пользователем. Сервер ProFTPd запущен и работает должным образом.

Если вы хотите добавить больше пользователей, просто создайте их с помощью команды useradd с желаемым именем пользователя. При необходимости вы также можете предоставить пользователю FTP права root.

Настроить TLS для ProFTPD

Сначала установите OpenSSL

First, install OpenSSL

Как установить ProFTPD в Ubuntu 20.04 5

Теперь, когда у нас установлен OpenSSL, давайте сгенерируем сертификат SSL.

Давайте быстро посмотрим, что здесь происходит. Мы создаем каталог, в котором будут созданы сертификаты SSL (/ etc / ssl), генерируем запрос сертификата и предоставляем ему срок действия один год (365 дней). Мы также указываем файл закрытого ключа и файл сертификата. Вам нужно будет ответить на некоторые вопросы о вашей организации, подобные приведенному ниже. Просто введите ответ и нажмите Enter.

Как установить ProFTPD в Ubuntu 20.04 6

Приведенная выше команда создаст два файла: proftpd.key и proftpd.crt, которые нам понадобятся для настройки ProFTPD.

Измените разрешение ключевых файлов и на 600.

Теперь нам нужно отредактировать основной файл конфигурации, расположенный в /etc/proftpd/proftpd.conf , и добавить некоторую информацию о наших недавно созданных файлах сертификатов.

Как установить ProFTPD в Ubuntu 20.04 7

Сохраните и закройте файл. Теперь настроим файл tls.conf

Как установить ProFTPD в Ubuntu 20.04 9

Как установить ProFTPD в Ubuntu 20.04 10

Сохраните и закройте файл. Не забудьте перезапустить службу.

Если вы хотите проверить, все ли работает должным образом, используйте FTP-клиент и подключитесь к серверу с включенным SSL. Вы должны увидеть предупреждение TLS от вашего FTP-клиента.

Заключение

В этом руководстве мы установили ProFTPD на наш сервер Ubuntu 20.04, создали пользователя для FTP-соединения и протестировали его функциональность. Мы также настроили TLS для защиты FTP-соединения от перехвата или вмешательства в передаваемые данные. Если вам нужна дополнительная информация о параметрах конфигурации ProFTPD, обязательно проверьте их официальную документацию .

Мы установим и настроим ftp-сервер ProFTPd. После его настройки вы получите доступ к директории /var/www через ваш файл-менеджер и сможете изменить содержимое страниц вашего web-сервера.

Выполните вход в консоль управления сервером по протоколу ssh

Откройте терминал на локальном компьютере. Выполните команду подключения к вашему серверу

где user - имя пользователя на сервере, server - доменное имя или ip-адрес сервера

После ввода пароля вы должны увидеть приглашение коммандной оболочки на сервере

Установите ftp-сервер

Репозитории для установки программного обеспечения на вашем сервере уже подключены и для установки сервера вам достаточно дать команду установки нужного пакета.
В дистрибутиве ubuntu доступно около 5 разновидностей программ, предоставляющих сервисы доступа к файлам по протоколу ftp. Наиболее известные из них pure-ftpd, wu-ftpd и proftpd.

Мы с вами удем использовать ftp-сервер proftpd пришедший в мир Linux из Института Беркли и их набора программ с открытым кодом BSD. Выполните команду установки proftpd:

Так же, как в случае с установкой web-сервера apache вы можете согласиться с установкой пакетов из недоверенного репозитория.
При вопросе, хотите ли вы запускать Proftpd демон в режиме inetd или standalon, выберите standalon. В этом случае демон будет запускаться при загрузке сервера и будет активен во все время работы сервера.

Настройка ftp сервера proftpd для доступа к файлам web-сайта

Для доступа к файлам в папке /var/www, где хранится непосредственный контент вашего сайта в виде html страниц и используемых в них изображений, нам нужно изменить настройки в конфигурационном файле /etc/proftpd/proftpd.conf.
Откройте конфигурационный файл proftpd-сервера в текстовом редакторе nano.

Вы увидите большой набор параметров с комментариями к ним. Нас будут интересовать лишь некоторые из них.

Для наших текущих задач нам ненужно будет менять никаких параметров в этом конфигурационном файле. По умолчанию, после установки proftpd позволяет заходить на сервер по протоколу ftp, введя логин и пароль пользователя (тот же самый логин и пароль, который вы используете для входа на сервер по ssh).

Единственное, что мы с вами сделаем – немного ускорим работу ftp сервера добавив параметр, отключающий обратное преобразование имен компьютеров при попытке доступа по ftp. Для этого в конфигурационном файле /etc/proftpd/proftpd.conf найдите блок

И добавьте в него строчку

Что бы изменения в конфигурационном файле повлияли на его работы нужно перезапустить сервис proftpd:

Теперь вы можете открыть файл-менеджер Nautilus (Переход -> Домашняя папка), открыть строку ввода адреса (Ctrl-L) и ввести адрес только что созданного ftp сервера (ftp://server). Нажмите Enter.

Если все настройки были сделаны верно, Nautilus попросит вас ввести логин и пароль для доступа к файлам на сервере по протоколу ftp. Введите ваши логин и пароль, которые вы используете для доступа к серверу по ssh.

Назначение прав на web-контент

Если авторизация прошла успешно вы увидите содержание корневой директории вашего сервера.

  • Перейдите в папку /var/www
  • Щелкните правой кнопкой мыши по файлу index.html
  • В появившемся контекстном меню выберите открыть с помощью -> Текстовый редактор

Если вы сейчас попробуете сделать изменения в этом файле, то получите “сбой операции сохранения”. Это означает, что у пользователя, под которым вы пошли по ftp нет прав на изменение файл /var/www/index.html. Вы можете убедиться в этом, выполнив в консоли на вашем сервере команду:

Давайте изменим “хозяина” директории /var/www и всех находящихся в ней файлов. Новым хозяином будет пользователь, под которым мы входим на ftp ресурс нашего сервера – user. Для этого выполним команду:

Теперь выполнив команду

параметры доступа rw-r–r– означают, что пользователь системы administrator имеет право читать и записывать файл index.html.

Теперь вы можете:

  • перейти по адресу ftp://server
  • ввести логин и пароль для доступа
  • перейти в папку /var/www
  • щелкнуть правой кнопкой по файлу index.html и выбрать в меню открыть с помощью – текстового редактора

Теперь вы можете изменять содержимое файла и сохранять изменения на сервере.

Настройка анонимного ftp-сервера

Мы с вами обеспечили возможность изменять файлы и папки нашего web-сервера. Теперь, давайте создадим обычный ftp-сервер, доступный для всех пользователей сети в режиме чтения.

Пользователи, желающие зайти на ваш ftp-сервер смогут это сделать без ввода логина и пароля, но при этом они будут попадать в определенную папку на сервере и не смогут изменять данные в ней. Такой способ работы ftp сервера часто используется для создания общедоступных архивов фильмов, музыки, программ или обычных текстовых файлов.

Сново откроем конфигурационный файл proftpd-сервера и найдем в нем секцию Anonymous.

Секция anonymous представляет из себя набор параметров, заключенных между тегами <Anonymous> </Anonymous>. По умолчанию все строки этой секции закомментированы. Нам потребуеться расскомментировать только выделенные параметры.

Сохраните изменения и перезапустите сервис proftpd для применения параметров.

P.s. все файлы, которые вы хотите сделать общедоступными через анонимный ftp вам нужно будет расположить в директории /home/ftp. Адрес директории, куда попадает пользователь при анонимном входе, указан в теге <Anonymous

ftp соответствует домашней папке пользователя ftp (/home/ftp)

Создадим папку test в директории /home/ftp

Теперь проверим правильность работы анонимного ftp доступа на ваш сервер.

  • Откройте Nautilus на вашем компьютере (Переход -> Домашняя Папка)
  • Нажмите Ctrl+L и в строке адреса наберите ip-адреc вашего сервера ftp://server
  • В появившемся окне укажите Анонимный вход и нажмите OK.

Если все настроено правильно, вы должны увидеть директорию с двумя файлами и вашей папкой test.

Попробуйте создать новую папку. Вы должны получить ошибку создания.

Добавление директории incoming с возможностью публичной записи

Мы настроили общедоступный анонимный ftp. Теперь, давайте сделаем в нем директорию incoming и разрешим всем копировать в нее файлы и папки.

Для этого сново откроем конфигурационный файл proftpd.

Найдем в нем секцию <anonymous>. Теперь нам потребуется раскомментировать секцию <Directory incoming> </Directory>.

Теперь, давайте создадим в директории, доступной при анонимном входе, директорию, указанную в опции <Directory incoming>.

Сменим права доступа к этой директории на rwxrwxrwx (777). Это даст возможность процессу proftpd записывать в нее данные.

Читайте также: