Было бы хорошо если бы изучая Ленкцию можно было скачать файлы, используемые для тренировки в терминале. (lesson6_st.txt и т.п.) |
Сетевое администрирование Linux. Протокол TCP. Занятие второе
Ход занятия
1. Протокол FTP (File Transfer Protocol) – один из старейших в интернет. Это протокол седьмого уровня (уровня приложений) модели OSI , основанный на надежной передаче данных (протоколе TCP , порты 21, 20).
Работа с ftp-ресурсами сходна с работой в локальной файловой системе. Существует множество специализированных клиентов для работы с протоколом FTP . Однако практически все современные браузеры способны обрабатывать информацию с FTP-ресурсов . Их мы и будем использовать в практической части сегодняшнего занятия.
FTP-серверов значительно меньше чем клиентов, но тоже достаточно много, чтобы можно было в них запутаться. Мы с Вами будем настраивать FTP-сервер vsftpd ( Very Secure FTP Daemon – очень надежный FTP-демон ), входящий в поставку ASPLinux.
Перед рассмотрением его настройки, я хочу немного рассказать о работе протокола FTP . Этот протокол изначально является протоколом с аутентификацией по имени пользователя. Однако для протокола FTP существует и так называемый анонимный режим. В случае его использования (браузеры используют этот режим по умолчанию) вместо имени вводится anonymous , а вместо пароля – адрес электронной почты (браузер использует или настоящий из адресной книги, или случайно подобранный).
Другой особенностью протокола является использование разных режимов – пассивного и активного. В пассивном режиме клиент открывает соединения для передачи данных и управляет потоком, а сервер пассивно отдает данные. Этот режим хорошо работает из внутренних сетей с фэйковой адресацией. В активном режиме поток для передачи данных открывает и контролирует сервер. Однако, если клиент находится за файрволом с преобразованием адресов (маскарадингом), то он не сможет работать с сервером в этом режиме.
Последней особенностью, обсуждаемой нами, будет передача данных в бинарном или текстовом (ascii) виде. Некоторые бинарные данные в первых версиях серверов/клиентов не могли быть переданы в прямом виде по сети в связи с особенностями реализации FTP . Для этой цели были придуманы несколько режимов – бинарный, когда передающиеся данные никак не преобразовываются для передачи по сети, и ascii, когда данные с помощью определенного кодирования преобразуются в последовательность символов ascii (с кодами от 0 до 127). Формат ascii увеличивал размер файла, а соответственно и время загрузки из сети, но позволял преодолеть возникающие проблемы. Современные FTP-серверы/клиенты самостоятельно способны выбирать нужный режим передачи, поэтому пользователь в большинстве случаев не задумывается об этом.
Vsftpd представляет из себя программу-демон. В ASPLinux для него предварительно создан скрипт запуска, помещенный в /etc/rc.d/init.d с именем vsftpd . Сам исполняемый файл адресуется как /usr/sbin/vsftpd .
За настройку сервера отвечают несколько файлов:
/etc/vsftpd.busy_banner – файл, в котором записывается сообщение, выдаваемое клиенту, когда сервер не может ответить на запрос.
/etc/vsftpd.ftpusers – содержит список пользователей, которым запрещен доступ по ftp . Как правило этот файл содержит список критически важных для системы пользователей, таких как root , bin , lpd и другие.
/etc/vsftpd.user_list – список пользователей, значение которого меняется в зависимости от того, как установлен параметр userlist_deny в основном файле конфигурации. Если Этот параметр установлен в NO , то на FTP смогут попасть только пользователи, указанные в этом файле, если в YES , то все, кроме этих пользователей. Нужно иметь в виду, что если пользователь запрещен в файле /etc/vsftpd.ftpusers , то он не сможет иметь доступ, даже будучи разрешенным в этом файле.
/etc/vsftpd/vsftpd.conf -основной файл конфигурации сервера. Рассмотрим его поподробнее:
anonymous_enable=YES – параметр-переключатель, разрешающий или запрещающий доступ к анонимному FTP-каталогу (/var/ftp/pub)
local_enable=YES – если этот параметр стоит в NO , то пользователи той же системы, где запущен сервер, не могут получить к нему доступ.
write_enable=YES – Если этот параметр установлен в NO , то ни один из пользователей не имеет права закачать файлы на FTP-ресурс .
local_umask=022 – Определяет права доступа к файлам для всех пользователей, кроме anonymous .
anon_upload_enable=YES – Если параметр установлен в YES , то анонимные пользователи могут изменять существующие в каталоге /var/ftp/pub файлы.
anon_mkdir_write_enable=YES – Позволяет анонимным пользователям закачивать файлы на FTP-ресурс и создавать каталоги.
dirmessage_enable=YES – Если параметр включен, то FTP-сервер будет выдавать сообщение из файла при переходе в каталог. Это сообщение может содержаться в файле с именем .message внутри каталога, однако имя файла может быть дополнительно указано с помощью опции message_file .
xferlog_enable=YES – разрешает серверу записывать журнал с именами переданных файлов. По умолчанию, журнал пишется в /var/log/vsftpd.log , однако имя файла может быть дополнительно указано опцией xferlog_file . Формат файла может быть указан стандарной ( YES ) или нестандартной опцией xferlog_std_format .
connect_from_port_20=YES – позволяет использовать для передачи данных 20-й порт.
chown_uploads=YES – изменяет владельца файла, закачанного анонимным пользователем на того, который указан в параметре chown_username .
idle_session_timeout – указывает время в секундах, через которое будет разорвано соединение с клиентом, не выполняющим никаких действий.
data_connection_timeout – указывает время в секундах, через которое будет разорвано соединение в случае перерыва в передаче данных.
Дополнительную информацию по конфигурации этого сервера можно получить в руководстве man (страницы vsftpd, vsftpd.conf ).
2. Протокол HTTP – на сегодняшний день самый распространенный протокол интернет, базирующийся на TCP (порт 80). Множество смежных стандартов, связанных с публикацией, обработкой и отображением HTML-страниц , настолько усложнили вэб-серверы, что их конфигурации подчас является непростым делом для начинающего администратора. Мы с вами попробуем настроить сервер на базовую работу и посмотреть основные параметры его конфигурации.
В качестве пособия мы будем использовать один из самых мощнейших и самый распространенный в интернет сервер Apache в версии 2.0.40. Конфигурирование Apache 2.x сильно отличается от конфигурирования его предшественника – линейки 1.3
Основным файлом конфигурации является httpd.conf , который в RedHat-совместимых системах (в том числе в ASPLinux) расположен в /etc/httpd/conf .
ServerTokens OS – этот параметр позволяет скрыть информацию об используемых модулях.
ServerRoot "/etc/httpd" – указывает на каталог, где расположены конфигурационные файлы, файлы журналов и другая необходимая информация для работы сервера.
Timeout 300 – указывает время в секундах, через которое будет разорвано соединение с клиентом, не проявляющим активности.
KeepAlive Off – разрешает или запрещает поддерживать соединение с клиентом пакетами типа PING-PONG .
Listen 80 – указывает порт (или ip-адрес и порт в формате 192.168.2.2:80 ) на котором будет функционировать вэб-сервер.
LoadModule – позволяет загрузить и использовать модуль расширения для поддержки дополнительных возможностей у сервера.
User apache, Group apache – параметры указывают пользователя и группу, от имени которого должен будет работать сервер.
ServerAdmin root@localhost – указывает адрес электронной почты администратора сервера, который будет указан на страницах с сообщениями об ошибках.
ServerName hosters.volnet.ru – указывает доменное имя, с которым работает сервер. Если для компьютера доменное имя не определено, в эту позицию вписывается IP-адрес .
DocumentRoot "/var/www/html" – указывает каталог, в котором располагаются документы HTML.
Раздел Directory описывает каталог, в котором расположены документы.
<Directory "/var/www/html"> -начало описания
Options – опции каталога с документами, указываемые через пробел. В качестве опций могут использоваться : Includes – включаемые файлы, FollowSymLinks – переход по символьным ссылкам, SymLinksifOwnerMatch – переход по символьным ссылкам, если владелец совпадает , ExecCGI – выполнять файлы CGI и передавать вывод файлов клиенту и другие.
AllowOverride - позволяет изменять параметры вложенных директорий с помощью файлов .htaccess полностью ( All ), не изменять ( None ) или отдельные параметры.
Order – определяет допустимые значения при конфигурации безопасности. Может включать параметры Deny, Allow или то и другое через запятую.
Deny/Allow from all/192.168.3.11 – определяет доступ к каталогу.
</Directory> - закрывает описание каталога.