Автор Тема: Exim auth from MySQL  (Прочетена 5763 пъти)

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Exim auth from MySQL
« -: Jul 28, 2010, 09:36 »
Челта на упражнението, е Exim-а да чете md5crypt паролите от MySQL.В момента настртойката, която ползвам в Exim-а е:
Код:
auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$auth2}' AND `password` = \
                     '${quote_mysql:$auth3}'}{yes}{no}}
  server_prompts = :
  server_set_id = $auth2
Как да го накарам да md5crypt паролата която му изпращам от клиента(защото с текущата конфигурация трабва в клиента да пиша md5crypt хеша, а не паролата).Пробвах с crypteq, но пак не стана.Мисля, че трябва и md5 да сложа в конфига по-горе, но не съм се занимавал с Exim и просто не знам как точно  ??? да настроя server_condition-а.Разгледах и това, но пак гредичка... Ако някой го е правил това нека помогне .
Активен

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #1 -: Jul 28, 2010, 13:23 »
Пробвах и така:
Код:
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${crypteq{$auth3}{\{crypt\}${lookup mysql{SELECT `username` FROM \
                                  `mailbox` WHERE `username` = \
                                   '${quote_mysql:$auth2}' AND `password` = \
                                   '${quote_mysql:$auth3}' \
                                }}}{yes}{no}}
server_set_id = $auth2
Замених горе \{crypt\} с \{md5\} и пак не се получава ...
Някакви идеи ?
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #2 -: Jul 28, 2010, 13:38 »
какъв тип е password колоната в базата?
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #3 -: Jul 28, 2010, 13:41 »
md5crypt
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #4 -: Jul 28, 2010, 13:42 »
md5crypt
сложи го varchar, правиш иначе двойно хеширане (мисля)
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #5 -: Jul 28, 2010, 13:47 »
Извинявай мислех си за стойността. Полето е varchar , a стойността в него е резултат от md5crypt
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #6 -: Jul 28, 2010, 13:52 »
Извинявай мислех си за стойността. Полето е varchar , a стойността в него е резултат от md5crypt
Въпроса е какво е записано в таблицата, направи един селект и сравни с md5 хеша на паролата
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #7 -: Jul 28, 2010, 13:56 »
В таблицата е записан криптиран md5 хеш.А просто не знам как да накарам  Exim-а да ми показва резултата от server_condition-а за да го сравня с този в таблицата  ???
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #8 -: Jul 28, 2010, 14:02 »
В таблицата е записан криптиран md5 хеш.А просто не знам как да накарам  Exim-а да ми показва резултата от server_condition-а за да го сравня с този в таблицата  ???
Код:
echo romeo_ninov |md5sum
306c46ec345d7d05ed88a789a32d238a  -
Елементарно
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #9 -: Jul 28, 2010, 14:06 »
По точно в полето е записано това : crypt `echo romeo_ninov |md5sum`.
Не ме разбра май искам Exim-a da покаже резултата от
Код:
server_condition = ${crypteq{$auth3}{\{crypt\}${lookup mysql{SELECT `username` FROM \
                                  `mailbox` WHERE `username` = \
                                   '${quote_mysql:$auth2}' AND `password` = \
                                   '${quote_mysql:$auth3}' \
                                }}}{yes}{no}}

За да сравня с този в таблицата.
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #10 -: Jul 28, 2010, 14:13 »
По точно в полето е записано това : crypt `echo romeo_ninov |md5sum`.
Не ме разбра май искам Exim-a da покаже резултата от
Код:
server_condition = ${crypteq{$auth3}{\{crypt\}${lookup mysql{SELECT `username` FROM \
                                  `mailbox` WHERE `username` = \
                                   '${quote_mysql:$auth2}' AND `password` = \
                                   '${quote_mysql:$auth3}' \
                                }}}{yes}{no}}

За да сравня с този в таблицата.
ти не ме разбра, аз ти демонстрирах как да видиш хеша на стринг, парола например. И след това сравняваш с фактическия запис в базата
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #11 -: Jul 28, 2010, 14:26 »
Цитат
ти не ме разбра, аз ти демонстрирах как да видиш хеша на стринг, парола например. И след това сравняваш с фактическия запис в базата
Хеша си го генерирам аз и го слагам в базата данни така, че не разбирам коментара ти.
Проблема не е в хеша в базата, а в начина, по който да накарам  Exim-а да преобразува plaintex паролата в хеш и да го сравнява с този от базата.
« Последна редакция: Jul 28, 2010, 14:36 от kip »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #12 -: Jul 28, 2010, 14:39 »
Цитат
ти не ме разбра, аз ти демонстрирах как да видиш хеша на стринг, парола например. И след това сравняваш с фактическия запис в базата
Хеша си го генерирам аз и го слагам в базата данни така, че не разбирам коментара ти.
Проблема не е в хеша в базата, а в начина, по който да накарам  Exim-а да преобразува plaintex паролата в хеш и да го сравнява с този от базата.
Като за начало погледни в логовете на MySQL какво точно се сравнява
Активен

0x2B|~0x2B

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Re: Exim auth from MySQL
« Отговор #13 -: Jul 28, 2010, 16:46 »
В логовете няма нищо, което да ме ориентира.
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Exim auth from MySQL
« Отговор #14 -: Jul 28, 2010, 17:04 »
В логовете няма нищо, което да ме ориентира.
Една идея: защо не промените заявката така че стойността, която се генерира от exim да се записва в базата, а не да се сравнява. Така ще разберете какво всъщност създава exim и може би защо не стават нещата
Активен

0x2B|~0x2B