Перепробовал я под FreeBSD много разных FTP-серверов:
- родной bsdftpd, просто и со вкусом, ненужно заморачиваться с установкой, уже присутствует в самой системе;
- он-же, но споддержкой SSL и TSL - bsdftpd-ssl, после предыдущего практически не нужно ничего перенастраивать, но сразу добавляются шифрованные варианты протокола;
- proftpd с конфигурационным файлом, подобным оному в Apache, гибко, но тяжело. К тому же в своё время без сторонних патчей прикрутить русскую локаль было невозможно (только не кидайте камнями, типа это не по стандарту: оно бывает нужно, а добавить эту возможность в виде опции разработчики поленились);
- vsftpd, легко и безопасно, но почему-то тоже не прижился.
Человек я ленивый, а во FreeBSD тупо обновить систему с накатом обновлений безопасности сложновато:
- сама система - cvsup, make buildworld, make buildkernel, make installkernel, перезагрузка, смотрим как работает свежее ядро, затем make installworld; можно и проще freebsd_update, но если ядро собрано своё - опять-таки ядро придётся пересобирать;
- дерево портов cvsup или portsnap;
- проверка уязвимых установленных пакетов portaudit;
- установка свежих пакетов или установка из портов: portupgrade;
- исправление возможных глюков из-за обновлённых версий программ (конфиги поправить, запускные скрипты).
В Debian тупо:
# apt-get update # apt-get upgradeИ все обновления безопасности стоят в системе, конфигов править не нужно! Можно легко сопровождать таким способом десятки серверов, полезно лишь поставить на одну из машинок apt-cacher, чтобы не грузить почём зря официальные зеркала.
А учитывая, что в Debian есть достойная замена портам - deb-src, то жить становится значительно легче. И собственноручно собранные пакеты можно зафиксировать в системе, чтобы они не обновлялись вместе с остальными:
# dpkg --get-selections \* > selections.txtИзменяем в selections.txt в строчке с названием пакета слово "install" на слово "hold".
# dpkg --set-selections < selections.txtЗахотелось мне поставить в качестве FTP-сервера pure-ftpd под Debian. Из достоинств: поддержка авторизации PAM (можно на свой вкус настроить на использование любых модулей), дедовский Unix (по файлам /etc/passwd, /etc/shadow, /etc/group), по собственной базе данных puredb, по базам данных в mysql и postgres, настройка дисковых квот, смена корня, ограничение пропускной способности и количества одновременных клиентов, поддержка различных кодовых страниц для конвертирования имён файлов и многое другое. Поставил, да вот незадача, у разработчиков Debian весьма нетрадиционное представление об удобстве его настройки. Поскольку pure-ftpd настраивается запуском с нужными опциями, а опций очень много, то хорошие люди придумали т.н. "wrapper", программу которая читает конфигурационный файл и запускает демон с нужными опциями. Так вот, в Debian кому-то очень понравилось хранить значения ключей настройки в отдельных файлах с соответствующими именами в каталоге /etc/pure-ftpd/conf/. Меня эта идея не вдохновила и я решил сменить перловый скрипт pure-ftpd-wrapper на стандартный pure-config.pl, идущий в комплекте с исходниками pure-ftpd. Устанавливаем пакеты, необходимые для установки из исходников (возможно я пропустил ещё какие-то нужные пакеты):
# apt-get install dpkg-dev # apt-get install fakerootСкачиваем и распаковываем исходники pure-ftpd:
# apt-get source pure-ftpdПереходим в каталог с исходниками:
# cd pure-ftpd-1.0.21Устанавливаем пакеты, необходимые для построения пакета pure-ftpd из исходников:
# apt-get build-dep pure-ftpdСтроим пакет:
# dpkg-buildpackage -rfakeroot -us -ucКак вариант, можно воспользоваться скриптами в каталоге с распакованным pure-ftpd:
# debian/rules build # debian/rules binaryВыходим из каталога с исходниками:
# cd ..И попадаем в каталог, где лежат свежепостроенные пакеты. Устанавливаем пакет pure-ftpd_1.0.21-8_i386.deb:
# dpkg -i pure-ftpd_1.0.21-8_i386.debЭта же технология применяется для установки любого пакета, если Вы хотите его настроить особым образом на этапе компиляции: наложить дополнительные патчи, изменить константы в исходных текстах, скомпилировать с дополнительными опциями или без ненужных. Далее, копируем новый скрипт в систему:
# cp pure-ftpd-1.0.21/configuration-file/pure-config.pl /usr/sbin/pure-ftpd-configИ устанавливаем права на выполнение:
# chmod a+x /usr/sbin/pure-ftpd-configТеперь удаляем всё из каталога /etc/pure-ftpd/:
# rm -R /etc/pure-ftpd/*И копируем сюда пример конфигурационного файла:
# cp pure-ftpd-1.0.21/configuration-file/pure-ftpd.conf /etc/pure-ftpd/Исправляем скрипт запуска /etc/init.d/pure-ftpd, заменяем строчку:
WRAPPER=/usr/sbin/pure-ftpd-wrapperНа нашу:
WRAPPER=/usr/sbin/pure-ftpd-configДобавляем после этого строчку:
CONFIG=/etc/pure-ftpd/pure-ftpd.confЗаменяем в секциях case start и restart|force-reload:
--exec $WRAPPER -- $SUFFIXна
--exec $WRAPPER $CONFIG -- $SUFFIXЯ собираюсь запускать pure-ftpd как самостоятельный сервер, поэтому меняю настройки запуска по-умолчанию в файле /etc/default/pure-ftpd-common: Заменяю
STANDALONE_OR_INETD=inetdна
STANDALONE_OR_INETD=standaloneНа этом пока что всё. К сожалению по этому серверу на русском языке очень мало информации, есть несколько how-to, но это не документация.
Комментариев нет:
Отправить комментарий