Установка и настройка FTP-сервера
Установка
Развернем на нашей машине FTP-сервер. Установим для этого пакеты vsftpd и anonftp:
# apt-get install vsftpd anonftp
Поясним, почему какого-либо одного пакета было бы недостаточно. Первая причина заключается в следующем. Программ, предоставляющих функциональность FTP-сервера, в хранилище более одной: это proftpd, vsftpd, pure-ftpd. Дерево каталогов, которое соответствует содержимому FTP-сервера, не должно быть жестко привязано к какому-то конкретному пакету, однако должно при развертывании сервера создаваться. Именно за это и отвечает пакет anonftp:
$ rpmquery -l anonftp /var/ftp
Есть, впрочем, и вторая причина. В дистрибутивах ALT Linux, уделяющих большое внимание безопасности, включено множество разных закладок для "защиты от дурака". В данном случае дело в следующем: установка FTP-сервера (vsftpd) не должна приводить к его немедленной работе в режиме анонимного доступа на запись.
Итак, требуемые пакеты в систему установлены. Займемся их включением. Сервер vsftpd использует при своей работе "метадемон" xinetd. Используемая в ПСПО версия утилиты chkconfig умеет управлять системными службами разного типа: как оформленными в стиле start-stop-скриптов, так и использующими "метадемон" xinetd. При применении этой утилиты из командной строки пользователь (администратор) работает с единым синтаксисом. Посмотрим, какие службы сейчас включены:
# chkconfig --list | tail -15 xinetd based services: chargen-tcp: off chargen-udp: off cups-lpd: off daytime-tcp: off daytime-udp: off discard-tcp: off discard-udp: off echo-tcp: off echo-udp: off rsync: off time-tcp: off time-udp: off vsftpd: off
Как видно, все использующие xinetd сервисы (в том числе и vsftpd) в настоящее время выключены. Если мы хотим, чтобы FTP-сервер запускался каждый раз при старте машины, нужно проделать следующие операции:
- обеспечить запуск метадемона:
# chkconfig xinetd on
- включить сам vsftpd:
# chkconfig vsftpd on
- и обнаружить, что мы встретились еще с одной отличительной особенностью дистрибутивов ПСПО. Дело в том, что все сетевые сервисы по умолчанию запускаются так, что они доступны только с локальной машины (иными словами, подключиться к ним только с адреса 127.0.0.1). В данном случае следует поглядеть в файл /etc/xinetd.conf и закомментировать в нем строку с параметром only_from --- для раздачи сервисов по сети она должна выглядеть примерно так:
# only_from = 127.0.0.1
Отметим, что файл /etc/xinetd.conf содержит настройки, общие для всех использующих xinetd сервисов. Теперь, поскольку мы изменили содержимое конфигурационного файла, нужно перезапустить метадемон xinetd, чтобы внесенные нами поправки вступили в силу:
# service xinetd restart
Теперь можно подключиться к локальному FTP-серверу:
$ lftp localhost lftp localhost:~> ls lftp localhost:/> exit
Сообщений об ошибках, как видим, нет. Впрочем, файлов на сервере тоже пока нет. Скажем несколько слов о дисциплине организации FTP-сервера. В каталоге, который является корнем для службы FTP (в нашем случае это /var/ftp) традиционно создается подкаталог pub, файлы в котором доступны на чтение. Именно этот каталог и предназначен для работы "публичных пользователей". По вопросу же организации доступа по FTP для обычных пользователей системы ограничимся отсылкой к документации.
Настройка и использование
Скажем несколько слов о настройке и использовании FTP-сервера. Во-первых, использовать FTP с системными логином и паролем пользователя совершенно неразумно. Эти данные в протоколе FTP передаются по сети открытым текстом, поэтому "подслушать" их не составляет труда. По этой причине FTP-серверы чаще всего предоставляют лишь анонимный доступ на чтение к тем или иным файлам. Некоторые FTP-клиенты, заметим, требуют при использовании обязательного ввода логина и пароля, даже если это "анонимный" FTP-сервер. В таких случаях используется логин anonymous (иногда ftp), а пароль --- какой угодно, но содержащий символ коммерческого at (@; заметим, что иногда не требуется даже его).
Отметим, однако, что в некоторых случаях доступ к данным по протоколу FTP все же защищается паролем. Владельцы FTP-серверов, распространяющие сомнительные с точки зрения лицензионной чистоты программы и данные, иногда применяют этот трюк со следующей целью. В случае возникновения каких-либо претензий они могут сослаться на использование пароля и объяснить, что защищенные паролем файлы не выложены для бесплатного распространения (самому же хозяину файлов они могут потребоваться).
Поясним теперь, зачем в хранилище помещено более одной программы, реализующей функциональность FTP-сервера. В случае, когда аппаратная конфигурация используемой в качестве сервера машины не слишком "продвинута", а компьютеры-клиенты образуют несколько различных категорий, может возникнуть необходимость использовать специальные возможности таких программ. Это может быть разделение приоритетов в соответствии с IP-адресом клиента, ограничения на число одновременных соединений, защита от множественного скачивания (программами типа ReGet и пр.). В случае же, когда такие возможности не требуются, разумно использовать более "легковесные" программы.
С использованием протокола FTP может быть связана еще одна проблема. Дело в том, что при скачивании файлов по сети FTP передает (на прикладном уровне) IP-адрес и порт для создания отдельного подключения. В случае "активного" FTP это адрес и порт клиента, а случае "пассивного" --- сервера. Понятно, что в случае использования трансляции адресов (Network Address Translation, NAT) могут возникнуть довольно неприятные ситуации. Строго следующий описанию протокола FTP клиент (примером может служить Mozilla Firefox) не может проигнорировать полученный таким способом IP-адрес. Если этот адрес оказывается локальным для сети сервера, попытка соединиться, естественно, терпит неудачу.
Но надо иметь в виду, что если FTP-сервер сидит не на внешнем ip-адресе, а находится за межсетевым экраном, на котором включена трансляция адресов (NAT), то есть реальный шанс, что соединения к нему не будут работать либо из внешней, либо из внутренней сети.
Возможным решением данной проблемы может служить тонкая настройка FTP-сервера таким образом, чтобы передаваемый IP-адрес для подключения в "пассивном" режиме различался для клиентов из разных сетей. Иногда оказывается полезным держать несколько FTP-серверов на одной машине и "разруливать" подключения к 21-му порту (ftp) с помощью средств файрвола. При настройке маршрутизатора хорошую службу может сослужить специальный модуль ip_nat_ftp к iptables.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
40 |
1 |
1 |
1 |
|
1 |
|
|