Реклама:

info.krc.karelia.ru

win -:|:- koi -:|:- iso -:|:- dos -:|:- mac

Start -:|:- Проекты -:|:- О нас

НАСТРОЙКА WU-FTPD В СРЕДЕ LINUX

Оригинал этого документа лежит на сервере "team void".

В данной статье речь пойдет о двух популярных FTP демонах : WU-FTPD и ProFTPD. Мне хотелось бы поделиться опытом настройки Wu-FTPD (www.wu-ftpd.org) под Linux. По мнению автора первый следует использовать на небольших FTP серверах по причине отставания его функциональности от ProFTPD. Иногда становится просто обидно наблюдать, как при установке свежесобранного FTP-демона многие даже не удосюживаются правильно его настроить и в итоге вполне устойчивый софт остаётся совершенно открытым для атакующего. Итак - сначала необходимо собрать WU-FTPD.

Скачиваем с сайта www.ftpd.org последний релиз (2.6.0) и начинаем его собирать. Поскольку нам необходимы параноидальные (paranoid) настройки безопасности, то говорим :

./configure с обязательными опциями перечисленными ниже :

--enable-paranoid - запрет доступа пользователям с домашней директорией которая не совпадает с указанной на сервере. Также. отключается использование функций delete, site, owerwrite.

--enable-quota - ограничение дискового пространства ftp users (само сабой разумеется что ftp раздел должен быть на отдельной партиции - это беда многих Linux cистем когда при инсталяции они предлагают все разделы держать на одной партиции).

--enable-ls - включение встроенного ls поскольку нет желания копировать каталоги /bin, /etc /lib в каждую homepage пользователя.

--disable-anonymous - лично я отключаю anonymous access поскольку необходимости в нем мало - каждый пользователь имеет свой login access и свою home directories.

--disable-private - отключить поддержку site group/site passwd.

--disable-virtual - отключаем поддержку виртуальных серверов поскольку мы ориентируемся на набольшие FTP серверы. Я настоятельно рекомендую использовать ProFTPD на крупных WWW серверах а wu-ftpd для сервера небольшой компании.

--with-etc-dir = /etc/ftp- явно указываем где будем держать конфигурационные файлы.
--disable-port - отключаем команду port
--disable-pasv - отключаем команду pasv
После сборки и инсталяции (make all; make install) занимаемся конфигурирование файла /etc/ftp/ftpaccess:
class all guest * описываем класс пользователей.
limit all 50 Any - для предотвращения DoS надо ограничить число одновременных логинов Теперь начинается самое интересное. Каждый пользователь должен иметь в файле /etc/passwd четко указанную home directory, в которой он и будет работать.

vasya:*:1001:1001:Vasya Pumpkin:/home/vasya:/bin/true

Не рекомендую давать пользователям shell если они работают только с ftp - это значительно облегчит потенциальному взломщику его задачу. Для этого вы должны каждому прописать /bin/true или /bin/nologin вместо нормального шелла. (занеся при этом строчку /bin/true в список /etc/shells. Для того чтобы он не смог подняться выше своего каталога при ftp access мы должны прописать его в следующей опции : guestuser vasya petya и.т.д. Для того чтобы не дать возможности на случай прорыва обороны chroot скачать файлы из системных каталогов /usr /etc и прочее включаем следующие опции :

noretrieve /

noretrieve /usr

noretrieve /var

noretrieve /bin

noretrieve /proc

И в каждом их этих каталогов должен быть создан файл чистый файл ".notar" Весьма распостраненна атака на получение пароля путем создания на сервере файла core и скачивания его на локальную машину злоумышленников. Чтобы такого не произошло добавьте опцию :

noretrieve core passwd shadow 

Также аналогичная опция запрещает выполнять закачку файлов на сервер -" upload". С ее помошью мы ограничиваем закачку файлов в системные каталоги и некоторые директории домашних пользоватей :

upload / *    no

upload /usr/* no

upload /var/* no 

upload /home/vasya * no

...... И последнее . Для протоколирования действий пользователей нам необходимо вести полный лог . Включается это так :

log comands real guest

log transfer anonymous,real,guest inbound,outbound

log security anonymious,real,guest

На сами же log файлы в /var/log/xferlog и все что там лежит надо дать chown root:root * и chmod 750 *. Cледующий файл ftpusers содержит список пользователей которых вы хотите ограничить в доступе к ftp серверу.

root

toor

daemon

operator

bin

games

news

man

uucp

xten

nobody

Остальные файлы ftpservers,ftphosts,ftpcount,ftpshutdown,ftpwho необходимо удалить, за исключением ftpconversions.

Как правило новые файлы закачанные пользователем будут создаваться с правами

-rw-r-xr-x 1 vasya vasya 12323 Feb 28 21 23:00 foto.jpg

Если Вы переписываете файлы на сервере из одного каталога в другой то следите за тем чтобы права были даны с расчетом чтобы пользователь смог их прочитать и ни в коем случае не давайте прав 777 ;). Единственное что не может спасти от атаки на ftp server - прослушивание трафика в тот момент когда пользователь обращается к ftp серверу для начала сеанса связи. Передавая пароль открытым текстом ftp серверу, пользователь дает злоумышленику шанс перехватить его. По скромному опыту автора тут поможет толко своевременный backup или же методы создания VPN - использование виртуального устройства, которое криптует данные перед отправкой их драйверу сетевой карты.

Не забывайте давать команду kill -HUP , для того чтобы FTPD перечитал настройки в файле ftpaccess. И еще один момент : Всегда скачивайтe исходники или бинарный код ТОЛЬКО с оригинальных сайтов разработчиков.

 

 

Rambler's Top100 Service Яндекс цитирования