Установка анонимного FTP-сервера
Категория: Web-хостинг и серверы Internet | Автор: admin | 13-06-2010, 00:44 | Просмотров: 3693

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

Через FTP-серверы может распространяться программное обеспечение, документация и т.д. Как правило, доступ к ним осуществляется поверх протокола HTTP. Основное преимущество такого подхода заключается в том, что пользователи могут легко просматривать дерево доступных каталогов, видеть размеры файлов и даты их обновления. При добавлении новых файлов нет необходимости создавать какой-либо код HTML — достаточно поместить их в заданной зоне узла.

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

Демон ftpd управляется демоном inetd, следовательно, должен иметь соответствующие записи в файлах /etc/inetd.conf и /etc/services. Если пользователи FTP-сервера регистрируются анонимно, демон ftpd выполняет команду chroot. Тогда файлы, не находящиеся в каталоге ~ftp, становятся невидимыми и недоступными. Это довольно важная мера защиты, поскольку демон ftpd должен выполняться с установленным битом SUID, меняя свой идентификатор пользователя на root, чтобы иметь доступ к привилегированным портам сокетов.

 

Перечислим действия, которые необходимо выполнить при создании анонимного FTP-сервера:

  • добавить запись псевдопользователя ftp в файл паролей;
  • создать подкаталоги bin, etc и pub в каталоге ~ftp;
  • скопировать программу ls в каталог ~ftp/bin;
  • скопировать файлы /etc/passwd и /etc/group в каталог ~ftp/etc;
  • отредактировать файлы passwd и group, как показано ниже;
  • заменить все пароли в файле ~ftp/etc/passwd звездочками;
  • задать надлежащие права доступа к файлам и каталогам в каталоге ~ftp.

Поскольку никто не должен регистрироваться в системе под именем ftp, задайте для данного имени звездочку вместо пароля. Желательно также назначить в качестве регистрационного интерпретатора команд программу /bin/false.

В сеансе доступа к анонимному FTP-серверу корневым каталогом системы становится ~ftp (это делает команда chroot), поэтому подкаталоги bin и etc должны содержать копии всех команд и конфигурационных файлов, необходимых демону ftpd. После выполнения команды chroot каталоги ~ftp/bin и ~ftp/etc выглядят как /bin и /etc. В большинстве случаев демон ftpd пользуется только командой ls и урезанными копиями файлов /etc/passwd и /etc/group из каталога ~ftp/etc.

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

 

С целью усиления мер безопасности сделайте файл ~ftp/bin/ls доступным только для выполнения, назначив ему режим доступа 111. В этом случае клиенты не смогут копировать двоичный код, пытаясь найти в нем слабые места.

Поместите в каталог ~ftp/pub те файлы, которые предполагается выставить на всеобщее обозрение.

Если в системе установлены совместно используемые библиотеки функций, а программа ls не была скомпонована статически, может потребоваться скопировать библиотечные файлы в каталог ~ftp либо создать на них жесткие ссылки для формирования корректной среды выполнения. Дело в том, что библиотечные файлы становятся недоступными после выполнения команды chroot.

Очень важно правильно задать права доступа к различным файлам и каталогам. Рекомендуемые нами права перечислены в табл. 22.4.

Таблица 22.4. Рекомендуемые права доступа к содержимому каталога ~ftp

Файл/каталог

Владелец

Режим

~ftp

root

555

~ftp/bin

root

555

~ftp/bin/ls

root

111

~ftp/etc

root

555

~ftp/etc/passwd

root

444

~ftp/etc/group

root

444

~ftp/pub

root

755

 

В Solaris требуется, чтобы программа ls размещалась в каталоге ~ftp/usr/bin. Файл в каталоге ~ftp/bin должен представлять собой символическую ссылку на каталог usr/bin (а не на ~ftp/usr/bin, поскольку после выполнения команды chroot это путевое имя становится неопределенным). В Solaris применяются совместно используемые библиотеки функций, поэтому для функционирования команды ls в каталоге ~ftp следует установить множество дополнительных файлов. Более подробную информацию на эту тему можно найти на man-странице демона ftpd. Не забудьте скопировать файл /etc/netconfig в каталог ~ftp/etc.

В HP-UX вместо файла /etc/group используется файл /etc/logingroup, копию которого надлежит поместить в каталог ~ftp/etc.

Как во FreeBSD, так и в Red Hat применяются совместно используемые библиотеки функций, однако все необходимые файлы автоматически копируются в каталог ~ftp в процессе инсталляции операционной системы. Фактически, анонимный FTP-сервер создается по умолчанию. В результате возникает угроза безопасности системы, если администратор ничего не подозревает о подобном положении вещей. Если не требуется поддерживать анонимный FTP-сервер, удалите запись псевдопользователя ftp из файла passwd (во FreeBSD после редактирования файла паролей нужно запустить команду pwd_mkdb, чтобы создать его хэш-версию — pwd.db).


 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page