Руководство администратора Linux по безопасности

       

WU-FTPD


Один основной механизм защиты в WU-FTPD: использование chroot (подмена корневого каталога). Например: по умолчанию для всех анонимных (anonymous) пользователей задается каталог /home/ftp в качестве ?корневого? каталога. Они не могут выходить из и смотреть содержимое, скажем, /home или /etc. То же самое может применяться к группам пользователей, например Вы можете отправить всех пользователей, заходящих по ftp, в каталог /home или в домашний каталог пользователя. Такая подмена корневого каталога позволит избежать многих проблем. Это может быть выполнено с помощью /etc/ftpaccess и /etc/passwd (man ftpaccess выдаст все сведения). ftpd также проверяет файл /etc/ftpusers и, если пользователь в нем упомянут, ему будет отказано в доступе по ftp.

Подмена каталогов пользователей при входе по ftp проста, но описана плохо. Сервер ftp проверяет файл /etc/ftpaccess в поисках гостевой группы, которая пишется просто как "guestgroup какая-то-группа-в-системе" то есть "guestgroup users". Имя групы должно быть определено в /etc/group, в группу должны быть добавлены члены. Для них надо поправить строки в файле passwd, чтобы сервер ftp знал где искать их каталоги. Так как они теперь работают с подменой каталога (их каталог становится для них корневым), они не имеют доступа к /lib, так что Вы должны скопировать некоторые файлы в их каталог, чтобы программы вроде ?ls? работали правильно.

Установим для пользователя (billybob) доступ по ftp в его домашний каталог. В дополнение к этому billybob может заходить по telnet и менять свой пароль, но не может больше ничего сделать. Система использует теневые пароли, так что в поле пароля будет стоять 'x' для пользователя billybob.

Сначала впишем логин для пользователя billybob в файл /etc/passwd:

billybob:x:500:500:Billy Bob:/home/billybob/./:/usr/bin/passwd

Это означает, что сервер ftp будет представлять /home/billybob как его корневой каталог и переходить туда, представляя его для billybob как / (/home/billybob для остальной части пользователей). Конечно, /usr/sbin/passwd должен быть перечислен в /etc/shells, иначе ftp работать не будет. Подробно все описано в man-описании файла ftpaccess.


Теперь надо сказать серверу ftp, что данного пользователя надо пускать с подменой каталога. Для этого он должен быть членом группы (badusers, ftppeople, ...) которая задана в /etc/group. Потом данная группа должна быть указана в файле /etc/ftpaccess.

Теперь Вы должны скопировать некоторые библиотеки и исполняемые модули в chroot ?заповедник?, иначе ?billybob? работать не сможет. Нужные файлы доступны как пакеты (обычно называемые "anonftp"), как только они установлены, файлы будут скопированы в /home/ftp. Обратите внимание на то, что файл /etc/passwd используется просто для связи UID и usernames, если нужно чтобы billybob видел username, а не UID, добавьте строку для него (то есть, скопируйте его строку из реального /etc/passwd в этот). То же справедливо и для файла group.

Без "billybob:*:500:500:::" в /home/billybob/etc/passwd:

drwxr-xr-x 2 500 500 1024 Jul 14 20:46 billybob

и со строкой в /home/billybob/etc/passwd:

drwxr-xr-x 2 billybob 500 1024 Jul 14 20:46 billybob

и со строкой для группы billybob в /home/billybob/etc/group:

drwxr-xr-x 2 billybob billybob 1024 Jul 14 20:46 billybob

Billybob теперь может заходить по ftp, загружать и выгружать файлы из /home/billybob и менять свой пароль. Но больше ничего он делать не может.

FTP очень интересный протокол. Клиенты соединяются с сервером через порт 21 (обычно), а сервер отвечает им через порт 20, и через него он и передает данные. Из чего следует, что порт 20 должен принимать внешние соединения. Помните это при установке firewall. Также имеется 'пассивный' ftp и манера забивать гвозди микроскопом (просматривать ftp с помощью www-браузера), который создает входящие подключения с сервером ftp на высоких номерах порта (вместо того, чтобы использовать 20, они договариваются о других числах!). Если Вы создаете публичный сервер ftp, выделите под него отдельную машину, предпочтительно вне вашей внутренней LAN (см. Practical Unix and Internet Security на предмет дискуссии о концепции 'DMZ'). Вы можете скачать WU-FTPD с ftp://ftp.wu-ftpd.org.


Содержание раздела