Лабораторные работы по ПО/Установка ftp-сервера proftpd: различия между версиями
Gumanoed (обсуждение | вклад) (→Настройка ftp сервера proftpd для доступа к файлам web-сайта) |
God007 (обсуждение | вклад) |
||
| (не показано 19 промежуточных версий 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 позволяет заходить на сервер по протоколу 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. Опишите процесс настройки общедоступного анонимного сервера?