FTP сервер Proftpd

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

FTP сервер Proftpd

Установка и настройка ftp сервера для доступа к файлам web-сайта

На этом практическом занятии мы установим и настроим FTP сервер Proftpd для доступа к директории /var/www вашего web-сервера, который был настроен в одной из предыдущих практических работ.

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

Откройте терминал на локальном компьютере из меню Приложения-Стандартные.

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

ssh 192.168.5.x -l administrator

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

administrator@student-webserver-01:~$
Репозитории на сервере могут быть подключены, проверьте и подключите по необходимости.

В дистрибутиве ubuntu доступно около 5 разновидностей программ, предоставляющих сервисы доступа к файлам по протоколу ftp.

Наиболее известные из них pure-ftpd, wu-ftpd и proftpd.

Полный список доступных ftp серверов для установки в систему вы можете посмотреть, выполнив команду поиска по слова ftpd

# aptitude search ftpd

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

Выполните команду установки proftpd

# aptitude install proftpd

При вопросе, хотите ли вы запускать Proftpd демон в режиме inetd или standalon, выберите standalon.

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

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

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

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

# nano /etc/proftpd/proftpd.conf

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

Для текущих задач нам не нужно будет менять ни каких параметров в этом конфигурационном файле.

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

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

Для этого в конфигурационном файле /etc/proftpd/proftpd.conf найдите блок

DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~

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

DenyFilter \*.*/
UseReverseDNS off
# Use this to jail all users in their homes
# DefaultRoot ~

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

# /etc/init.d/proftpd restart
Откройте файловый менеджер Nautilus (Переход -> Домашняя папка)
Открыть строку ввода адреса (Ctrl-L) и введите адрес своего ftp сервера (ftp://192.168.5.x).
Нажмите Enter.

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

Введите ваши логин и пароль, которые вы используете для доступа к серверу по ssh

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

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

Web-контент показываемый web-сервером Apache через браузер находиться в директории /var/www.

В одной из предыдущих практических работ вы заходили браузером FireFox на адрес http://192.168.5.x и видели надпись It works!. Попробуем её изменить

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

Это именно тот файл, который вам "отдавал" Apache, когда вы заходили через Firefox по адресу http://192.168.5.x

Если вы сейчас попробуете сделать изменения в этом файле, то получите сбой операции сохранения.

Это означает, что у пользователя, под которым вы пошли по протоколу ftp нет прав на изменение файла /var/www/index.html.

Вы можете убедиться в этом, выполнив в консоли на вашем сервере команду:

ls -l /var/www

Вы увидите

-rw-r--r-- 1 root root 45 Sep 17 12:17 index.html

Давайте изменим "хозяина" директории /var/www и всех находящихся в ней файлов. Новым хозяином будет пользователь, под которым мы входим на ftp ресурс нашего сервера - administrator.

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

# chown administrator -R /var/www

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

ls -l /var/www

мы увидим

-rw-r--r-- 1 administrator root 45 Sep 17 12:17 index.html

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

Снова откройте Nautilus
Перейдите по адресу http://192.168.5.x
Введите логин и пароль для доступа к ftp
Перейдите в папку /var/www
Щелкните ПКМ по файлу index.html и выберите в контекстном меню "открыть с помощью - текстового редактора"

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

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

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

Теперь, настроим ftp-сервер, доступный для всех пользователей сети в режиме чтения.

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

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

# nano /etc/proftpd/proftpd.conf

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

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

<Anonymous ~ftp>
 User ftp
 Group nogroup
# # Мы хотим что бы все пользователи могли входить под именем "anonymous" и "ftp"
 UserAlias anonymous ftp
# # Косметические настройки, все файлы будут принадлежать пользователю ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
# 
 RequireValidShell off
# 
# # Limit the maximum number of anonymous logins
 MaxClients 10
# 
# # Мы хотим что бы 'welcome.msg' показывался при каждом входе и '.message'
# # при каждой смене директории
 DisplayLogin welcome.msg
 DisplayFirstChdir .message
# 
# # ограничение WRITE везде в директории для anonymous
 <Directory *>
 <Limit WRITE>
 DenyAll
 </Limit>
 </Directory>
# 
# # Расскоментируйте эту секцию, если вы достаточно отважны.
# # <Directory incoming> 
# # # Umask 022 хорошо подходит для предотвращения добавления прав записи 
# # #всем вновь созданным файлам и папкам
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
# 
</Anonymous>


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

# /etc/init.d/proftpd restart

Все файлы, которые вы хотите сделать общедоступными через анонимный ftp вам нужно будет расположить в директории /home/ftp. Адрес директории, куда попадает пользователь при анонимном входе, указан в теге <Anonymous ~ftp>. ~ftp соответствует домашней папке пользователя ftp (/home/ftp)

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

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

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

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

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

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

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

Откройте конфигурационный файл proftpd

# nano /etc/proftpd/proftpd.conf
Найдите в нем секцию <anonymous>.
Раскомментируйте секцию <Directory incoming> </Directory>.
# # Расскоментируйте эту секцию, если вы достаточно отважны.
<Directory incoming>
# # # Umask 022 хорошо подходит для предотвращения добавления прав записи 
# # #всем вновь созданным файлам и папкам
Umask 022 022
 <Limit READ WRITE>
 DenyAll
 </Limit>
 <Limit STOR>
 AllowAll
 </Limit>
</Directory>


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

# mkdir /home/ftp/incoming

Смените права доступа к этой директории на rwxrwxrwx (777).

Это даст возможность процессу proftpd записывать в нее данные.

# chmod 777 /home/ftp/incoming

Перезапустите сервис proftpd для применения изменений.

# /etc/init.d/proftpd restart

Выполните проверку правильности настройки ftp сервера, по аналогии с предыдущим пунктом.

На этот раз вы должны иметь возможность создавать файлы и папки в директории incoming, и ошибку, при попытке создания файлов в других директориях.