Супер-сервер, запуск pure-ftpd с параметрами - вопросов больше, чем ответов

Dec 09, 2009 15:28


Появилась у меня естественная потребность: на существующем debian c apache поставить ещё и ftp доступ к хатнiм каталогам. Сразу возник вопрос, а какой ftp сервер брать? Если кто-то знает правильный ответ на этот вопрос, то я с удовольствием послушаю аргументы. А пока я этого не услышал, я ткнул пальцем в гугл и поставил на тестовой машинке pure-ftp. Замечательный сервис и замечательно работает. При установке руководствовался подробной инструкцией, всё прошло гладко и в целом порадовало. Разумеется, сразу после лёгкой установки и тестирования, я перешел на боевой сервер и повторил процедуру там. Меня сразу насторожило, что сервис откликнулся раньше, чем я его запустил. Хотя я ещё не раскрыл тайну золотого ключика, но расскажу что было.

В моём бумажном учебнике по linux я читал про суперсервер xinetd, который сам слушает порты и запускает-останавливает сервисы по мере их необходимости в народном хозяйстве. У меня такого сервиса не обнаружилось, что странно, так как симптом очень легко объяснялся таким сервером. Подсказка зала натолкнула меня на идею, что суперсервера бывают разные и посоветовали поискать inetd. Bingo! Дальше я начал искать информацию об этом сервисе на русском языке, но нашел совсем всего ничего. Я уже было отчаялся, но документация всё-таки нашлась. Я нашел в конфиге нужную мне строчку, но это оказалось не совсем то, что я хотел.

ftp    stream  tcp     nowait  root  /usr/sbin/tcpd   /usr/sbin/pure-ftpd-wrapper

Меня в этом запуске не устраивало в первую очередь то, что при подсоединении к такому ftp не отрабатывала опция chroot, из-за чего пользователь видел через ftp не только свой домашний каталог, но и весь сервер. Это неправильно. Во-вторых, вот это дополнительное звено - tcpd, которое предназначено вроде как для увеличения безопасности. Короче, игры с этой самой строкой запуска ни к чему не привели. Я пытался передать туда аргументы, пытался подменить своей строкой с вызовом того, что замечательно работает в командной строке:

pure-ftpd -4 -A -B -M -E -U 022:022

Но результат так и  не проявился: с заданными параметрами у меня сервис так и не стартовал. Ещё я думаю, что pure-ftp-wrapper он такой потому, что он ещё и будет выгружаться по мере отсутствия необходимости в нём.

Ещё меня смутило, что сервис inetd не перезапускается стандартным чем-то вроде /etc/init.d/inetd restart, поэтому я оперировал парой команд killall inetd и /use/sbin/inetd.

Сейчас я просто закомментировал строку в файле конфигов inetd, запустил рабочий ftp руками и поставил эту же строку запуска в /etc/rc.local на случай перезагрузки боевого сервера. А как прописать его с параметрами в inetd - буду думать…
(c)

debian, inetd, linux, суперсервер, ftp

Previous post Next post
Up