Родерик Смит - Сетевые средства Linux
• Работа клиентов на различных платформах. FTP- и Web-серверы взаимодействуют с клиентами, выполняющимися в любой операционной системе, поддерживающей TCP/IP; не является исключением даже система DOS. В отличие от FTP и HTTP, протоколы разделения файлов ориентированы на конкретную платформу: сервер NFS работает с клиентами UNIX и Linux, a Samba — с клиентами DOS, Windows и OS/2. Пытаясь обеспечить межплатформенную совместимость протоколов разделения файлов, вы неизбежно столкнетесь с проблемами представления прав доступа, атрибутов файлов и другими ограничениями. При этом вам также приходится обеспечивать взаимодействие с клиентскими программами, многие из которых распространяются на коммерческой основе.
• Трудозатраты при настройке сервера. По умолчанию в системе Linux устанавливается конфигурация FTP-сервера, предоставляющая пользователям такие же права чтения и записи файлов, которые они получили бы, зарегистрировавшись на компьютере. Если вас устраивает подобное поведение сервера, его настройка займет крайне мало времени. Чтобы обеспечить подобное взаимодействие с серверами NFS, Samba и HTTP, вам придется внести существенные изменения в их конфигурационные файлы. С другой стороны, чтобы установить анонимный FTP-сервер, надо приложить определенные усилия для его настройки, в то время как в других серверах подобный принцип взаимодействия с пользователями реализован по умолчанию.
Таким образом, средства FTP удобно использовать для решения следующих двух задач.
• Обслуживание локальных пользователей. Если на компьютере под управлением Linux существуют учетные записи для некоторых пользователей, FTP-сервер позволит этим пользователям копировать свои файлы с сервера на удаленный компьютер либо с удаленной машины на сервер. Подобный тип доступа к данным менее удобен по сравнению с разделением файлов, но для настройки FTP-сервера от вас, как от системного администратора, потребуется меньше времени и усилий. Межплатформенная совместимость также является существенным преимуществом FTP-сервера.
• Анонимный доступ к данным. Установив в сети анонимный FTP-сервер, вы дадите возможность внешним пользователям копировать на их компьютеры файлы, предоставленные вами для всеобщего доступа, а в некоторых случаях и передавать свои файлы на сервер. В качестве альтернативы анонимному FTP-серверу (особенно, если вам не требуется копирование данных с клиентских компьютеров на сервер) может выступать Web-сервер. Если же вы не хотите тратить время на подготовку Web-страниц, установка FTP-сервера может стать более приемлемым решением.
В обоих случаях необходимо учитывать вопросы безопасности. Если вы хотите предоставлять пользователям локальной сети их файлы, следует принять меры для того, чтобы обращения к серверу могли осуществляться только из локальной сети. Риск перехвата пароля в Internet настолько велик, что решение использовать FTP-сервер для передачи важных данных по глобальной сети было бы опрометчивым. Даже если FTP-сервер доступен лишь в пределах локальной сети, необходимо периодически менять пароли на случай, если кто-либо из пользователей поддастся соблазну и займется "подслушиванием" паролей. При использовании анонимного FTP-сервера сохранять пароль в секрете бессмысленно, но в этом случае вам необходимо принять меры для того, чтобы злоумышленник, обращающийся к серверу извне, не смог воспользоваться недостатками в его защите для получения несанкционированного доступа к данным в сети. Так, например, предоставление права записывать информацию на сервер связано с большим риском, в особенности если возможности записи информации не ограничены несколькими каталогами, которые полностью контролируются вами. Если вы разрешаете запись данных на анонимный сервер, вы должны принять меры для того, чтобы эти файлы становились доступными другим пользователям лишь после того, как вы ознакомитесь с ними и одобрите их. В противном случае ваш сервер может превратиться в инструмент для обмена данными между хакерами.
Программы, реализующие FTP-сервер в системе Linux
В настоящее время существует большое количество программ, реализующих FTP-сервер в системе Linux. Три из них, пользующиеся наибольшей популярностью, описаны ниже.
• BSD FTPD. Версия BSD Unix поставляется в комплекте с FTP-сервером, который адаптирован для переноса в систему Linux. Так, например, на выполнение в Linux ориентирован пакет OpenBSD FTPD. Варианты BSD FTPD поставляются с системами Debian и SuSE. От других FTP-серверов BSD FTPD отличается более надежными средствами защиты, но, тем не менее, он не получил большой популярности среди пользователей Linux.
• ProFTPd. Пакет ProFTPd, Web-сервер которого находится по адресу http://www.proftpd.org, поставляется с системами Debian, Mandrake, Slackware, SuSE и TurboLinux. Популярность данного сервера резко возросла в 2002 г. При создании ProFTPd были использованы некоторые подходы, характерные для сервера Apache.
• WU-FTPD. Washington University FTP Daemon (WU-FTPD) — наиболее популярный из современных FTP-серверов для Unix. Web-узел WU-FTPD расположен по адресу http://www.wu-ftpd.org. Данный продукт поставляется с Caldera, Debian, Mandrake, Red Hat, SuSE и TurboLinux. В процессе его эксплуатации были выявлены и устранены многочисленные недостатки в защите.
Каждая из этих программ поддерживает основные функции и некоторые из расширенных функций FTP-сервера. В данной главе описываются только продукты ProFTPd и WU-FTPD, так как именно они пользуются наибольшей популярностью и поставляются в составе различных дистрибутивных пакетов Linux. Программа ProFTPd обладает большей гибкостью и с точки зрения безопасности превосходит WU-FTPD. Однако если в составе вашей системы поставляется только WU-FTPD либо если вы хорошо знакомы с данным продуктом, имеет смысл остановить свой выбор на нем. Если же вы склонны экспериментировать, попробуйте установить в своей системе BSD FTPD.
Настройка основных функций FTP-сервера
Инсталлировав FTP-сервер, надо обеспечить его выполнение. Как правило, в дистрибутивных пакетах, комплектуемых WU-FTPD, запуск данной программы осуществляется посредством суперсервера, а если в составе системы содержится ProFTPd, для его запуска обычно используют сценарий SysV. Если вас не устраивает подход, использованный в вашей системе, вы можете реализовать альтернативное решение. При работе со многими дистрибутивными пакетами обеспечение запуска FTP-сервера является единственным действием, необходимым для его настройки, так как конфигурация, установленная по умолчанию, позволяет использовать сервер для решения многих задач. Так, например, по умолчанию пользователь, для которого в системе существует учетная запись, имеет возможность регистрироваться на FTP-сервере и копировать файлы из своего рабочего каталога. Если в вашей системе сервер должен действовать по-другому, следует изменить его настройку. Наиболее часто используемый вариант настройки — анонимный FTP-сервер — будет рассмотрен далее в этой главе.
Запуск FTP-сервера
Варианты запуска серверов в системе Linux рассматривались в главе 4. Если пакет, реализующий FTP-сервер, поставляется в составе системы, для обеспечения запуска сервера вам потребуется приложить лишь минимальные усилия. Не исключено также, что запуск сервера предусмотрен по умолчанию при установке пакета. Однако вам необходимо не упускать из виду следующие детали.
• В некоторых дистрибутивных пакетах, использующих inetd, в файл /etc/inetd.conf включается несколько записей для различных FTP-серверов. При желании вы можете инсталлировать различные FTP-серверы и запускать один из них по выбору. Для этого в файле inetd.conf надо удалить символ комментариев в начале записи, соответствующей выбранному серверу, закомментировать остальные записи и перезапустить inetd. Если в вашей системе установлен только один FTP-сервер, необходимо убедиться, что в файле inetd.conf символ комментариев отсутствует лишь в записи, соответствующей этому серверу, в противном случае FTP-сервер работать не будет.
• В большинстве систем, использующих xinetd для запуска FTP-сервера, в каталог /etc/xinetd.d помещается специальный файл. Этот файл является частью пакета сервера. Если в нем содержится строка disable = yes, это означает, что запуск FTP-сервера запрещен. Подобная запись включается из соображений безопасности. Если вы хотите, чтобы FTP-сервер выполнялся в системе, задайте значение no опции disable. (Чтобы суперсервер учел внесенные изменения, его надо перезапустить.)
• Независимо от того, запускается ли FTP-сервер посредством inetd или xinetd, при запуске ему передаются некоторые параметры. По умолчанию в конфигурационном файле суперсервера указываются параметры для FTP-сервера, поставляемого вместе с системой. Если же вы хотите заменить FTP-сервер, вам надо изменить в конфигурационном файле суперсервера не только параметры, но и имя программы, реализующей FTP-сервер.