LINUX.ORG.RU
ФорумAdmin

PostfixAdmin. Плюсы, минусы, подводные камни

 ,


0

2

Кто работал с postfixadmin? Что можете о нём сказать? Очередная ненужность вроде всяких там webmin-ов и похапэмайдминов? С ходу по нему нагуглились только хаутушки вроде «делай раз, делай два», понимания от них немного.
Меня интересует в основном адекватность структуры БД и увязки с ней почтовых демонов, а не няшный интерфейсик.

Лирика:
Ковыряюсь с серверной частью email. Postfix, dovecot. Не для какой-то определённой цели, а для самообразования. Условная задача: сделать свою мэйлрушечку с несколькими доменами.

Прикидываю как лучше сопрягать postfix и dovecot, как хранить инфу о пользователях. Вроде выходит что хранить данные (пользователя, пароли, домены, алиасы) сподручнее в реляционной БД. Или LDAP, но он мне совершенно незнаком и меня это вполне устраивает. Начал думать над структурой БД, нормальная форма там, расширяемость, все дела. Прикручивание всего этого к postfix и dovecot. Но вот думаю может всё это за меня кто-то уже сделал, ведь то что я задумал — это не какая-то экзотика, а решение задачи в весьма общем виде. И тут-то я вспомнил про postfixadmin.

В общем стоит-ли колупаться с этим postfixadmin, или лучше городить свой велосипед?

★★★★★

Да, стоит, т.к. штука очень удобная. Единственный минус, который пока заметил, — невозможность без прямого запроса в базу включить-выключить переадресацию. Пишут, что есть патч, который добавляет эту функциональность в веб-морду, но я не пробовал.

Инструкции по прикручиванию к постфиксу, мускулю и давкату есть в инете.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Инструкции по прикручиванию к постфиксу, мускулю и давкату есть в инете.

Да они вроде и в пакете лежат. Сейчас курю /usr/share/doc/postfixadmin/*
К «инструкциям по прикручиванию» из интернетов у меня стойкое предубеждение (во всяком случае в том что касается почты), те которые я видел совершенно не способствуют пониманию вопроса. Делай раз, делай два. Заработало? Отлично, ы имеешь систему которая работает, но как и почему ты не знаешь. Не заработало? Значит что-то сделал не так. Что именно? А хз, может версия одной из программ немного другая, или дистрибутив не тот, или в инструкции очепятка.
Правда до пуско-наладочных работ ещё дело не дошло.

Веб-морда (т.е. может и нужна, но не в данном случае) не нужна, нужна адекватная структура БД и её сопряжение с почтовыми демонами. Если БД адекватна то с ней и руками работать не трудно, или наваять пару скриптиков для типовых задач.

MrClon ★★★★★
() автор топика

Удобно, работает, кушать не просит.

beastie ★★★★★
()

Неприятный момент: PostfixAdmin норовит использовать тот-же механизм для аутентификации в вебморде что и для аутентификации по через IMAP/POP3/SMTP. Если используется dovecot-овская схема хранения пароля ($CONF['encrypt'] = 'dovecot:чтототам') то PostfixAdmin тупо заново скармливает пароль dovecot-овской генерялке хэшей (doveadm pw) и сравнивает результат с тем что хранится в базе. Цимес в том что для солёных хэшей (например SSHA512) это не работает, doveadm pw каждый раз выдаёт разные хэши для одного и того-же пароля (соль-то разная, рандомная для каждого запуска).
вышеизложенное — результат исследования на манер чёрного ящика, в код пока не смотрел, стараюсь не читать php перед сном (:

Как это можно исправить без перекраивания самого PostfixAdmin — не знаю. Пока-что просто использую не солёные хэши (SHA512), но это не православно.

MrClon ★★★★★
() автор топика

в postfixadmin много лишнего и ненужного, использую свою бд, очень простую всего 4-е таблицы:

1. таблица domains - перечень обслуживаемых доменов, всего одно поле

2. таблица псевдонимов - три поля (псевдоним, ящик/ящики назначения, комментарии)

3. таблица users хранит адреса электронной почты и хеши паролей - два поля (адрес вида info@ra.ru, хеш пароля)

4. таблица транспорта, указывает какие письма обрабатывает сервер сам, какие отправляет на другие сервера - два поля ( в первом домен или email, во втором указывается сервер назначения)

все это просто и легко интегрируется с dovecot-2 и postfix

vxzvxz ★★★
()

а для самообразования

Для самообразования, имхо, лучше зарыться в конфиги и немного «повелосипедить».

zaharov
()
Ответ на: комментарий от vxzvxz

много лишнего и ненужного

+-----------------------+
| admin                 |
| alias                 |
| alias_domain          |
| config                |
| domain                |
| domain_admins         |
| fetchmail             |
| log                   |
| mailbox               |
| quota                 |
| quota2                |
| vacation              |
| vacation_notification |
+-----------------------+

Что например здесь лишнее?

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

без этого можно жить:

admin 
alias_domain
config
domain_admins
log
vacation
vacation_notification

+ в таблице mailbox по сути одна и та же информация повторяется аж 4 раза (поля username, maildir, local_part, domain)

vxzvxz ★★★
()
Ответ на: комментарий от vxzvxz

Разве это жизнь?

admin

А логин к веб интерфейсу держать в .htpasswd?

alias_domain

То есть, ты не пользуешься алиасами доменов. Да я тоже. А вдруг кто нибудь пользуется?

config

Там хранится одно число — версия. Для выведения информации о возможности обновления.

domain_admins

А логины админов доменов держать в .htpasswd?

log

Ну да, это можно в принципе при нужде распарсить на ходу.

vacation
vacation_notification

Насколько я понял, это для автоответчика.

+ в таблице mailbox по сути одна и та же информация повторяется аж 4 раза (поля username, maildir, local_part, domain)

Как минимум, maildir может отличаться. Хотя это конечно не очень разумно, но лучше предусмотреть чем потом обжечься. Остальное, возможно, для упрощения запросов.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

не пользуешься алиасами доменов

нет, мне таблицы транспорта достаточно

к веб интерфейсу

его просто нет

maildir может отличаться

да, но зачем?

а и еще сборщик fetchmail ручками настраиваю.

глянул другие таблицы там тоже 'лишние' поля

Разве это жизнь?

да использовал я postfixadmin лет 5 назад, да удобная и простая админка, но в ней еще с первых версий постоянно находили дырки и судя по этому http://www.securitylab.ru/vulnerability/419731.php ситуация не особо изменилась.

vxzvxz ★★★
()
Ответ на: комментарий от vxzvxz

Ну то есть, для твоих задач он избыточен. Вполне возможно, но это означает только что «лишнее» там для других случаев.

еще с первых версий постоянно находили дырки

А вот это уже аргумент. Но несколько другого характера.

sin_a ★★★★★
()
Ответ на: комментарий от MrClon

Та интструкции простые так как софт топорный. Посмотрите структуру БД Postfixadmin-а и вы сами все поймете :) Там описывать то нечего :) Поставил, минимально настроил и поехали ....

black_13
()
Ответ на: комментарий от black_13

Sendmail/exim/postfix тоже топорные? Инструкция отдельно по постфиксадмину я не видел, только в составе более общих инструкций «как сделать почту из что-то там, что-то там и постфиксадмина».
А ведь smptd это отличный тир для стрельбы по собственной ноге (и ногам окружающих).

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

Я говорил исключительно про Postfixadmin. С настройкой MTA - согласен, мало где встречаются толковые мануалы. Лиссяра и оф доки - для меня незаменимы :) Притом настраивать приходилось и sendmail, и postfix, и exim ....

black_13
()
Ответ на: комментарий от black_13

Сказанное мной про хаутушечки справедливо и для Лисяры.
Наверное если уже кое-как понимаешь внутреннее устройство программы то хавтушечки вроде тех что строчит Лисяра можно использовать с пользой для себя. В противном случае это отличный способ запутаться и создать себе проблемы на будущее.

Я от exim отказался в пользу postfix только потому что по последнему есть довольно толковая книга на русском (The Book of
Postfix) и не надо гадать по написанным кем-то конфигам.

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

Знаю по себе - излишество деталей в статье/заметке делает ее менее интересной и читаемой. Поэтому тут как всегда - единство и борьба противоположностей. Хочется написать быстро, четко и по делу ... чтобы человек быстро сделал и оно заработало. Людей которые хотят видеть результат здесь и сейчас намного больше чем теоретиков которые готовы 3 месяца грызть документацию и только потом чтолибо устанавливать/настраивать :)

Думаю лисяра мог бы написать книгу в 12 томах о постфиксе, но оно ему не надо :) Надеюсь вы понимаете что хочу сказать?

Что касается «выбрал чтото потому что оно имеет более доступную для меня документацию» - ну это клевый подход, но иногда продукт выбирает админа, а не наоборот :) Например я люблю exim, но пришел на работу в контору где стоит postfix. Можно конечно перенастроить «под себя» на exim, но я воспринял этот факт по принципу «А почему бы не разобраться с postfix?»

Это все философские вопросы, которые не имеют конкретного решения. Главное то что выбор есть в принципе, один фломастер на всех - это крайне уныло :) Хотя мелкомягким нравится и такой вариант :)

black_13
()
Ответ на: комментарий от black_13

Про «быстро сделал и оно заработало» уже писал выше. В лучшем случае получаешь систему которая работает «как-то». Возможно всё очень хорошо, возможно плохо, может там дыра на дыре и root права выдаются если в SMTP сессии сказать слово «друг» по эльфийский, а может учтены все нюансы, а может все стандарты принесены в жертву странным представлениям автора о том как на самом деле должен работать интернет.
Самое печальное что ты этого не знаешь, ты не знаешь что делает вот та строка в конфиге прокоментированная автором «а это что-бы вас не заспамили» или «отвергаем неправильные письма».
Непонятно что нужно править что-бы изменить какое-то поведение системы, непонятно как дополнять конфигурацию если в хаутушечке описано не всё что тебе нужно.
Ну и конечно самый угар это если тебе нужно что-то не очень типовое.

Я совсем не фанат толстых книжек обсасывающих какую-то программу. Перед тем как браться за book of postfix я долго колупался с хаутушкми, и в результате решил для тебя что email это наверное даже хуже чем JS и надо его настройки (серверной части) избегать всеми силами, во имя сохранения рассудка.

MrClon ★★★★★
() автор топика

Однако вернёмся к теме.

Правильно я понимаю что кроме логина никакие данне полученные от клиента в sql запросы не попадают? Я на предмет sql-инъекций интересуюсь.

MrClon ★★★★★
() автор топика

почему это пехапемойадмин ненужность?

Xegai ★★
()
Ответ на: комментарий от MrClon

Долго писал, но потом все стер ... это изотерический вопрос :)

Я читал доки по exim на оф сайте. Все вери гуд - четко и понятно ... с примерами!

black_13
()
Ответ на: комментарий от MrClon

А вы не открывайте постфиксадмин для всего инета, а только для админов - и вероятность поймать иньекцию в порядки уменьшится :)

black_13
()
Ответ на: комментарий от black_13

Я про инъекцию через smtp/imap/pop3. Но там вроде только логин в запрос подставляется, это не так фатально так-как dovecot искаропки не пропускает логины с посторонними символами.
Но если в запросы подставляется ещё что-то, то нужно проверять как это что-то обрабатывается.

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

нужен только логин, чтобы получить по нему из мускула хеш пароля и затем сравнить

инъекцию через smtp/imap/pop3

про такое не слыхал. а вот со взломанным через уязвимости в postfixadmin почтовиком сталкивался всего месяц назад, он усиленно срал в инет спамом через несколько учеток, почтовая очередь аж колом встала.

vxzvxz ★★★
()

самый главный его плюс в том, что он прикручивается к exim.

Bers666 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.