Лабораторные работы по ПО/Установка ftp-сервера proftpd: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Установка и настройка ftp сервера для доступа к файлам web-сайта.)
 
(не показано 20 промежуточных версий 2 участников)
Строка 32: Строка 32:
  
  
Так же, как в случае с установкой web-сервера apache вы можете согласиться с установкой пакетов из недоверенного репозитория.  
+
Так же, как в случае с установкой web-сервера apache вы можете согласиться с установкой пакетов из недоверенного репозитория.
 +
 
 +
 
 +
При вопросе, хотите ли вы запускать Proftpd демон в режиме inetd или standalon, выберите '''standalon'''. В этом случае демон будет запускаться при загрузке сервера и будет активен во все время работы сервера.
 +
  
 
==Настройка ftp сервера proftpd для доступа к файлам web-сайта==
 
==Настройка ftp сервера proftpd для доступа к файлам web-сайта==
Строка 43: Строка 47:
  
 
  sudo nano /etc/proftpd/proftpd.conf
 
  sudo nano /etc/proftpd/proftpd.conf
 +
  
 
Вы увидите большой набор параметров с комментариями к ним. Нас будут интересовать лишь некоторые из них.
 
Вы увидите большой набор параметров с комментариями к ним. Нас будут интересовать лишь некоторые из них.
  
При вопросе, хотите ли вы запускать Proftpd демон в режиме inetd или standalon, выберите '''standalon'''. В этом случае демон будет запускаться при загрузке сервера и будет активен во все время работы сервера.
+
Для наших текущих задач нам ненужно будет менять ни каких параметров в этом конфигурационном файле. По умолчанию, после установки proftpd позволяет заходить на сервер по протоколу ftp введя логин и пароль пользователя (тот же самый логин и пароль, который вы используете для входа на сервер по ssh).
 +
 
 +
Единственное, что мы с вами сделаем - немного ускорим работу ftp сервера добавив параметр, отключающий обратное преобразование имен компьютеров при попытке доступа по ftp. Для этого в конфигурационном файле /etc/proftpd/proftpd.conf найдите блок
 +
 
 +
...
 +
DenyFilter                      \*.*/
 +
 +
# Use this to jail all users in their homes
 +
# DefaultRoot                  ~
 +
...
 +
 
 +
И добавьте в него строчку
 +
 
 +
...
 +
DenyFilter                      \*.*/
 +
 +
'''UseReverseDNS                  off'''
 +
 +
# Use this to jail all users in their homes
 +
# DefaultRoot                  ~
 +
...
 +
 
 +
 
 +
Что бы изменения в конфигурационном файле повлияли на его работы нужно перезапустить сервис proftpd:
 +
 
 +
sudo /etc/init.d/proftpd restart
 +
 
 +
Теперь вы можете открыть файл-менеджер Nautilus ('''Переход -> Домашняя папка'''), открыть строку ввода адреса ('''Ctrl-L''') и ввести адрес только что созданного ftp сервера ('''ftp://192.168.5.2'''). Нажмите '''Enter'''.
 +
 
 +
Если все настройки были сделаны верно, Nautilus попросит вас ввести логин и пароль для доступа к файлам на сервере по протоколу ftp. Введите ваши логин и пароль, которые вы используете для доступа к серверу по ssh.
 +
 
 +
==Назначение прав на web-контент==
 +
 
 +
Если авторизация прошла успешно вы увидите содержание корневой директории вашего сервера.
 +
 
 +
Web-контент показываемый web-сервером apache при доступе через браузер находиться в директории /var/www. В первой лабораторной работе вы заходили в браузере FireFox на адрес http://192.168.5.2 и видели надпись '''It works!'''. Теперь:
 +
*Перейдите в папку '''/var/www'''
 +
*Щелкните правой кнопкой мыши по файлу '''index.html'''
 +
*В появившемся контекстном меню выберите '''открыть с помощью -> Текстовый редактор'''
 +
 
 +
и посмотрите его содержимое. Это именно тот файл, который вам "отдавал" apache, когда вы заходили через firefox по адресу http://192.168.5.2.
 +
 
 +
Если вы сейчас попробуете сделать изменения в этом файле, то получите "сбой операции сохранения". Это означает, что у пользователя, под которым вы пошли по 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. Для этого выполним команду:
 +
 
 +
sudo 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
 +
* перейти по адресу ftp://192.168.5.2
 +
* ввести логин и пароль для доступа
 +
* перейти в папку /var/www
 +
* щелкнуть правой кнопкой по файлу index.html и выбрать в меню открыть с помощью - текстового редактора
 +
 
 +
Теперь вы можете изменять содержимое файла и сохранять изменения на сервере.
 +
 
 +
 
 +
==Настройка анонимного ftp-сервера==
 +
 
 +
Мы с вами обеспечили возможность изменять файлы и папки нашего web-сервера. Теперь, давайте создадим обычный ftp-сервер, доступный для всех пользователей сети в режиме чтения.
 +
 
 +
Пользователи, желающие зайти на ваш ftp-сервер смогут это сделать без ввода логина и пароля, но при этом они будут попадать в определенную папку на сервере и не смогут изменять данные в ней. Такой способ работы ftp сервера часто используется для создания общедоступных архивов фильмов, музыки, программ или обычных текстовых файлов.
 +
 
 +
Сново откроем конфигурационный файл proftpd-сервера и найдем в нем секцию Anonymous.
 +
 
 +
sudo 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'''
 +
'''  DisplayChdir          .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 для применения параметров.
 +
 
 +
sudo /etc/init.d/proftpd restart
 +
 
 +
''P.s. все файлы, которые вы хотите сделать общедоступными через анонимный ftp вам нужно будет расположить в директории /home/ftp. Адрес директории, куда попадает пользователь при анонимном входе, указан в теге <Anonymous ~ftp>. ~ftp соответствует домашней папке пользователя ftp (/home/ftp)''
 +
 
 +
Создадим папку test в директории /home/ftp
 +
 
 +
sudo mkdir /home/ftp/test
 +
 
 +
Теперь проверим правильность работы анонимного ftp доступа на ваш сервер.
 +
* Откройте Nautilus на вашем компьютере (Переход -> Домашняя Папка)
 +
* Нажмите '''Ctrl+L''' и в строке адреса наберите ip-адрем вашего сервера '''ftp://192.168.5.2'''
 +
* В появившемся окне укажите '''Анонимный вход''' и нажмите '''OK'''.
 +
 
 +
Если все настроено правильно, вы должны увидеть директорию с двумя файлами и вашей папкой ''test''.
 +
 
 +
Попробуйте создать новую папку. Вы должны получить ''ошибку создания''.
 +
 
 +
===Добавление директории incoming с возможностью публичной записи===
 +
 
 +
Мы настроили общедоступный анонимный ftp. Теперь, давайте сделаем в нем директорию incoming и разрешим всем копировать в нее файлы и папки.
 +
 
 +
Для этого сново откроем конфигурационный файл proftpd.
 +
 
 +
  sudo nano /etc/proftpd/proftpd.conf
 +
 
 +
Найдем в нем секцию <anonymous>. Теперь нам потребуется раскомментировать секцию <Directory incoming> </Directory>.
 +
 
 +
#  # Расскоментируйте эту секцию, если вы достаточно отважны.
 +
'''<Directory incoming>'''
 +
#  #  # Umask 022 хорошо подходит для предотвращения добавления прав записи
 +
#  #  #всем вновь созданным файлам и папкам
 +
'''Umask                          022  022''''
 +
'''          <Limit READ WRITE>'''
 +
'''            AllowAll'''
 +
'''            </Limit>'''
 +
'''            <Limit STOR>'''
 +
'''            AllowAll'''
 +
'''            </Limit>'''
 +
'''</Directory>'''
 +
 
 +
 
 +
Теперь, давайте создадим в директории, доступной при анонимном входе, директорию, указанную в опции <Directory '''incoming'''>.
 +
 
 +
sudo mkdir /home/ftp/incoming
 +
 
 +
Сменим права доступа к этой директории на rwxrwxrwx (777). Это даст возможность процессу proftpd записывать в нее данные.
 +
 
 +
sudo chmod 777 /home/ftp/incoming
 +
 
 +
Перезапустим сервис proftpd для применения изменений.
 +
 
 +
sudo /etc/init.d/proftpd restart
 +
 
 +
Выполните проверку правильности настройки ftp сервера, по аналогии с предыдущем пункте. На этот раз вы должны иметь возможность создавать файлы и папки в директории incoming, и ошибку, при попытке создания файлов в других директориях.
 +
 
 +
 
 +
=Контрольные вопросы:=
 +
 
 +
1. Назначение файлового сервера?
 +
 
 +
2. Как определить список доступных ftp серверов?
 +
 
 +
3. Назовите известные ftp сервера?
 +
 
 +
4. С помощью какой команды устанавливается proftpd сервер?
 +
 
 +
5. Что означает режим stanalone?
 +
 
 +
6. В каком файле находятся настройки proftpd сервера?
 +
 
 +
7. Как проверить права доступа к директории /var/www/?
 +
 
 +
8. Как сменить права доступа?
 +
 
 +
9. Какой сервер называется анонимным?
 +
 
 +
10. Каким образом происходит регистрация на анонимном сервере?
 +
 
 +
11. Опишите процесс настройки общедоступного анонимного сервера?

Текущая версия на 10:02, 9 декабря 2010

Практическое занятие №2

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

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


Выполните вход в консоль управления сервером по протоколу ssh, как вы это делали на первом занятии. Откройте терминал на локальном компьютере из меню Приложения-Стандартные. Выполните команду подключения к вашему серверу

ssh 192.168.5.2 -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


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


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


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

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


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


sudo 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                   ~
...

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

...
DenyFilter                      \*.*/ 

UseReverseDNS                   off

# Use this to jail all users in their homes
# DefaultRoot                   ~
...


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

sudo /etc/init.d/proftpd restart 

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

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

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

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

Web-контент показываемый web-сервером apache при доступе через браузер находиться в директории /var/www. В первой лабораторной работе вы заходили в браузере FireFox на адрес http://192.168.5.2 и видели надпись It works!. Теперь:

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

и посмотрите его содержимое. Это именно тот файл, который вам "отдавал" apache, когда вы заходили через firefox по адресу http://192.168.5.2.

Если вы сейчас попробуете сделать изменения в этом файле, то получите "сбой операции сохранения". Это означает, что у пользователя, под которым вы пошли по 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. Для этого выполним команду:

sudo 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
  • перейти по адресу ftp://192.168.5.2
  • ввести логин и пароль для доступа
  • перейти в папку /var/www
  • щелкнуть правой кнопкой по файлу index.html и выбрать в меню открыть с помощью - текстового редактора

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


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

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

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

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

sudo 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
   DisplayChdir           .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 для применения параметров.

sudo /etc/init.d/proftpd restart

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

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

sudo mkdir /home/ftp/test

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

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

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

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

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

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

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

 sudo nano /etc/proftpd/proftpd.conf

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

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


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

sudo mkdir /home/ftp/incoming

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

sudo chmod 777 /home/ftp/incoming

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

sudo /etc/init.d/proftpd restart

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


Контрольные вопросы:

1. Назначение файлового сервера?

2. Как определить список доступных ftp серверов?

3. Назовите известные ftp сервера?

4. С помощью какой команды устанавливается proftpd сервер?

5. Что означает режим stanalone?

6. В каком файле находятся настройки proftpd сервера?

7. Как проверить права доступа к директории /var/www/?

8. Как сменить права доступа?

9. Какой сервер называется анонимным?

10. Каким образом происходит регистрация на анонимном сервере?

11. Опишите процесс настройки общедоступного анонимного сервера?