а простая авторизация через запрос не работает? Я ProFTPd мало изучал, в PureFTPd есть штатная возможность — написать свои SQL запросы для поискал UID, HomeDir, пароля и квоты
Запрос то можно сделать, проблема в том, что в ProFTPD нельзя в запросе использовать плэйнтекстовый пароль. Имя пользователя можно подставить в запрос (%U), а вот пароль без написания своего модуля у ProFTPD никак не выхватить, нет у него такой переменной.
В том числи и поэтому лично я когда сделал выбор в пользу PureFTPd )
Все в нем нравится, только в идеей отсутствия конфиг файла не согласен. Понятно, что это решаемо, но, имхо, с точки зрения админа это более чем странно.
Если мне кто-то подкинет еще одно очко в карму, я с удовольствием перенесу топик в «Linux для всех». Наверняка топик будет полезнее в более людном блоге :-)
Интересная идея, но по-моему гораздо проще пропатчить форум на предмет сохранения паролей в двух разных вариантах: стандартном и, например, Crypt. После чего попросить пользователей обновить пароль. И никаких модулей писать не надо, особенно недокументированных :)
Был и такой вариант, но согласитесь — заставить всех пользователей поменять пароль достаточно неудобно, ценный пользователь не должен испытывать неудобств изза того, что я не продумал это в самом начале :-)
Сразу да, но это можно сделать прозрачно, просто при вводе логина и пароля обновить данные в БД crypt. Т.е. для того, чтобы получить доступ к FTP юзеру достаточно один раз залогинится на форуме.
при обновлении форума придется опять его патчить и затачивать под новую схему работы. с патчем на фтп сервак проще. я для dle пару лет назад подобное проделывал. с тех пор несколько раз админы обновляли этот движек, причем без моего участия…
Мне почему-то кажется, что при обновлении ProFTPD тоже что-нибудь может поменяться. Оба подхода ведут к патчам. Другое дело, что лично мне удобней патчить PHP, чем C. Кто-то, наоборот, любит патчить С.
пару недель назад возникла необходимость прикрутить proftpd к другому проекту. патч наложил без проблем, пофиксил лишь кусок кода который хэширует открытый пароль.
вот вам пример того как патч для proftpd использовался на 2-х разных веб-проектах с небольшими телодвижениями.
сможете вы таким же похвастаться при условии изменения кода веб-движка?
ЗЫЖ я понимаю что для кого-то проще на php написать, для кого-то на c… просто излагаю личный опыт…
Думаю, что нет ничего сложного перехватить POST запрос в самом начале скрипта логина и сохранить данные из него куда требуется. Соответственно когда появится новая версия форума просто добавить этот код в самое начала скрипта тогоже самого файла. При этом код совершенно не зависит от того, что там в движке поменяли, если конечно они не начнут хешировать пароль на стороне клиента. Хотя, также думаю, что нет ничего сложного пропатчить C, главное понимать, что именно ты делаешь и как это влияет на безопасность FTP авторизации. Я, например, не могу быть на 100% уверен, что сторонний патч является полностью безопасным и поддерживаемым расширением.
Имхо хранить одну и ту же информацию (пароль) в одной и той же БД, просто в другом виде — неправильно. Два поля, которые нужно постоянно друг с другом синхронизировать, и т.д.
По-идее, при логине они сами собой будут синхронизироваться. Насчет избыточности, согласен. Я ведь не говорю, что плохая идея, наоборот, говорю, что интересное решение, но лично мне кажется, что патч форума проще поддерживать, чем патч FTP сервера.
Мне вообще кажется глупой идеей привязывать пароль юзеров к фтп-аккаунтам, но не суть важно.
Я бы сделал пользователям, которые хотят иметь фтп-аккаунты (а не всем, т.к. всем они явно не нужны) — формочку в профиле, где они могут установить пароль на фтп, после ввода которого бы создавался бы логин на фтп в системе с указанным паролем. И все.
Идея с патчем исходников мне не нравится совершенно. Это костыль.
Все это я затеял по той причине, что по сути в моем проекте форум и ftp неразделимы, и друг без друга толку не имеют. Форум, можно сказать, не для общения, а для информации по содержимому ftp сервера, детали не важны. Поэтому и нет смысла в раздельных аккаунтах. Согласен, такое понадобится далеко не каждому, но для того, кому понадобится — эта статья будет полезной. Как мне показалось, гораздо легче привязать FTP-авторизацию к аккаунтам с форума, пусть и через костыль, чем авторизацию в форуме к системным аккаунтам или специфичной для ProFTPD базе данных.
А это решение не создает риска в плане того что например ftp не защищен от перебора паролей? Плюс через ftp можно насоздавать кучу запросов к базе и уронить ее.
Собственно, если это костыль, то для чего вообще Open Source, если не для возможности свободно расширять функционал чего-либо своими силами, и делиться результатами с сообществом? Исходники даются не для галочки, а как раз для таких целей. Ну, в любом случае, это имхо.
Можно было ещё написать PAM модуль, получилось бы куда универсальнее. ProFTPD ведь достаточно прогрессивный сервер и уже знает что такое PAM аутентификация?
Авторизация пользователей в ProFTPD по учетным записям форума