The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
postfix + postgres + sasl + pam_pgsql, !*! Vii, 03-Дек-06, 11:52  [смотреть все]
Скомпилировал postfix:
make tidy
make -f Makefile.init makefiles CCARGS="-DHAS_PGSQL  -I/usr/include/pgsql -DUSE_SASL_AUTH -I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lpq -L/usr/local/lib -lsasl2"

скомпелировал sasl
./configure \
--enable-anon \
--enable-plain \
--enable-login \
--disable-krb4 \
--disable-otp \
--disable-cram \
--disable-digest \
--with-saslauthd=/var/run/saslauthd \
--with-pam=/lib/security \
--with-dblib=berkeley \
--with-bdb-libdir=/usr/local/bdb/lib \
--with-bdb-incdir=/usr/local/bdb/include \
--with-openssl=/usr/local/ssl \
--with-plugindir=/usr/local/lib/sasl2
Скомпилил pam_pgsql
cat /etc/pam.d/smtp
auth        required      /lib/security/pam_pgsql.so
account     required      /lib/security/pam_pgsql.so
password    required      /lib/security/pam_pgsql.so

тестирую авторизацию через sasl
testsaslauthd -s smtp -u test -p teste -f /var/run/saslauthd/mux
авторизация проходит на ура!

включаю авторизацию в postfix
/etc/postfix/main.cf:
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd

в файле
/usr/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd

перегружаю все сервисы, ставлю в TheBat smtp авторизацию, пробую, фиг не получается
добавляю в sasldb2 пользователя test2 c паролем teste2 делаю в TheBat особую авторизацию где логин test2 и пароль teste2 и шифрование через md5 авторизация проходит!!!!!

меняю содиржимое /usr/local/lib/sasl2/smtpd.conf на всякий бред - никакого результата!!!
как сделать стоб авторизация шла через pam сервиса smtp...........

  • postfix + postgres + sasl + pam_pgsql, !*! Martin_M, 16:48 , 03-Дек-06 (1)
    • postfix + postgres + sasl + pam_pgsql, !*! Vii, 17:08 , 03-Дек-06 (2)
      >И как - же у тебя MD5-авторизация проходит? Посотри список доступных механизмов
      >аутентификации.
      Вот это мне и не понятно)))))) как это получается...... sasl игнорирует
      /usr/local/lib/sasl2/smtpd.conf
      pwcheck_method: saslauthd - аунтификация через демон sasl - saslauthd

      >Это раз, во вторых - ты в результате что хочешь получить -
      >аутентификация в  db или все-таки через PAM вырулить в pgSQL?
      я хочу через pam вырулить в pgSQL, saslauthd через pam в pgSQL рулит

      testsaslauthd -s smtp -u test -p teste -f /var/run/saslauthd/mux
      0: ОК ........

      >А то ты тестируешь одно (да, это я про test2), а
      >в конфиге у тебя другое (через сторонний модуль - PAM в
      >данном случае).
      я и не понимаю как это............

      >Версии ПО какие?
      postfix 2.2.5
      cyrus-sasl-2.1.22
      pam-pgsql-0.5.2
      postgresql-7.4.11

    • postfix + postgres + sasl + pam_pgsql, !*! Vii, 08:28 , 04-Дек-06 (5)
      доп информация теперь он хочит подключиться к деману но не видет его, вот лог
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: SASL authentication failure: no secret in database
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: unknown[192.168.0.38]: SASL CRAM-MD5 authentication failed
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: SASL authentication failure: Password verification failed
      Dec  4 11:31:45 mail postfix/smtpd[15363]: warning: unknown[192.168.0.38]: SASL PLAIN authentication failed
      Dec  4 11:31:45 mail postfix/smtpd[15363]: 4AFD77B818D: client=unknown[192.168.0.38]


      • postfix + postgres + sasl + pam_pgsql, !*! Vii, 09:55 , 04-Дек-06 (6)
        Теперь он к saslauchd коннектится:

        cat smtpd.conf
        pwcheck_method: saslauthd
        saslauthd_path: /var/run/saslauthd/mux

        но не хотит через пам в sql идти.....
        Dec  4 12:55:59 mail postfix/smtpd[19706]: connect from unknown[192.168.0.38]
        Dec  4 12:55:59 mail postfix/smtpd[19706]: warning: SASL authentication failure: Password verification failed
        Dec  4 12:55:59 mail postfix/smtpd[19706]: warning: unknown[192.168.0.38]: SASL PLAIN authentication failed
        Dec  4 12:55:59 mail postfix/smtpd[19706]: 3956A7B818D: client=unknown[192.168.0.38]


  • postfix + postgres + sasl + pam_pgsql, !*! Vii, 11:54 , 04-Дек-06 (7)
    Теперь он к saslauchd коннектится:
    cat smtpd.conf
    pwcheck_method: saslauthd
    saslauthd_path: /var/run/saslauthd/mux
    mech_list: plain login

    в cat /etc/pam.d/smtp
    %PAM-1.0
    auth        required      /lib/security/pam_pgsql.so
    account     required      /lib/security/pam_pgsql.so
    password    required      /lib/security/pam_pgsql.so

    Выдает ошибку, тестирую
    # testsaslauthd -s smtp -u test -p teste -f /var/run/saslauthd/mux
    0: OK "Success."

    # authtest test
    Authentication succeeded.

         Authenticated: test  (uid 1000, gid 1000)
        Home Directory: /var/spool/virtual/
               Maildir: test.domain/test/
                 Quota: (none)
    Encrypted Password: $1$.J.LF$K2IE.hH/CNpIyYfuniEWy/
    Cleartext Password: (none)
               Options: (none)

    отпровляю почту в логах:
    Dec  4 14:55:29 mail postfix/smtpd[26940]: connect from unknown[192.168.0.38]
    Dec  4 14:55:30 mail postfix/smtpd[26940]: warning: SASL authentication failure: Password verification failed
    Dec  4 14:55:30 mail postfix/smtpd[26940]: warning: unknown[192.168.0.38]: SASL PLAIN authentication failed
    Dec  4 14:55:30 mail postfix/smtpd[26940]: 0ED957B818D: client=unknown[192.168.0.38]
    Dec  4 14:55:30 mail postfix/smtpd[26940]: disconnect from unknown[192.168.0.38]

    Изменяю:
    в cat /etc/pam.d/smtp
    %PAM-1.0
    auth       required     pam_stack.so service=system-auth
    account    required     pam_stack.so service=system-auth
    password   required     pam_stack.so service=system-auth

    в авторизации smtp прописываю реального пользователя - авторизация проходит......
    Ктонить подскажет в чем дело?

    • postfix + postgres + sasl + pam_pgsql, !*! Vii, 12:31 , 07-Дек-06 (8)
      Теперь осталась одна проблема.
      Т.к. у меня сервер с поддержкой виртуальных доменов, в pam попадает только первая часть логина, а именно до "@" как сделать чтоб он полностью отдавал с доменом в pam?
      • postfix + postgres + sasl + pam_pgsql, !*! Vii, 15:17 , 07-Дек-06 (9)
        Ну теперь все, сделал....
        Пришлось дописывать pam_pgsql.c
        1) Расширил запрос с "SELECT %s FROM %s WHERE %s='%s'"
                    стало "SELECT %s FROM %s WHERE %s LIKE '%s@%%'"

        2) добавил цикл после:
            if(PQntuples(res) == 0) {
                rc = PAM_USER_UNKNOWN;
            } else {
        Сам цикл:
                     for(fff=0;fff<PQntuples(res);fff++)
                      {
        строку переделал:char *stored_pw = PQgetvalue(res, 0, 0);
        на:            char *stored_pw = PQgetvalue(res, fff, 0);
                        ...............
                        ...............
                      }
            }
        ну вроде все заработало.......
        по иде не так много будет много почтовых ящиков пахожих на это:
        user@test.domain
        user@domain.test
        и особой задержки это не вызовит))))))
        спасибо всем!!!!!!
        Если что обращайтесь


        • postfix + postgres + sasl + pam_pgsql, !*! Alex_hha, 17:30 , 09-Дек-06 (10)
          • postfix + postgres + sasl + pam_pgsql, !*! Vii, 14:37 , 10-Дек-06 (11)
            >А почему бы не использовать виртуальных пользователей и напрямую не выбирать их
            >из БД.
            >Зачем заморочка с pam???

            т.к. у меня в базе хронятся криптованные пароли а не в открытом виде :))))
            А я не знаю чтоб sasl сравнивал криптовые пароли, если знаете то подскажите :)


            • postfix + postgres + sasl + pam_pgsql, !*! Alex_hha, 16:17 , 12-Дек-06 (12)
              • postfix + postgres + sasl + pam_pgsql, !*! Vii, 17:02 , 12-Дек-06 (14)
                >>>А почему бы не использовать виртуальных пользователей и напрямую не выбирать их
                >>>из БД.
                >>>Зачем заморочка с pam???
                >>
                >>т.к. у меня в базе хронятся криптованные пароли а не в открытом
                >>виде :))))
                >>А я не знаю чтоб sasl сравнивал криптовые пароли, если знаете то
                >>подскажите :)
                >
                >Эта проблема уже давно решена. Вот глянь тут - http://www.sys-adm.org.ua/mail/mail-howto-p1.php. Правда там
                >я описывал под mysql, но в твоем случае больших отличий не
                >буд

                Спачибо :)) попробую проэксперементировать нп работающем сервере :((((


        • postfix + postgres + sasl + pam_pgsql, !*! A Clockwork Orange, 16:34 , 12-Дек-06 (13)
          • postfix + postgres + sasl + pam_pgsql, !*! Vii, 17:04 , 12-Дек-06 (15)
            >>Ну теперь все, сделал....
            >>Пришлось дописывать pam_pgsql.c
            >>1) Расширил запрос с "SELECT %s FROM %s WHERE %s='%s'"
            >>            
            >>стало "SELECT %s FROM %s WHERE %s LIKE '%s@%%'"
            >>
            >>2) добавил цикл после:
            >>    if(PQntuples(res) == 0) {
            >>        rc = PAM_USER_UNKNOWN;
            >>    } else {
            >>Сам цикл:
            >>            
            >> for(fff=0;fff<PQntuples(res);fff++)
            >>            
            >>  {
            >>строку переделал:char *stored_pw = PQgetvalue(res, 0, 0);
            >>на:            
            >>char *stored_pw = PQgetvalue(res, fff, 0);
            >>            
            >>    ...............
            >>            
            >>    ...............
            >>            
            >>  }
            >>    }
            >
            >
            >а запустить
            >saslauthd -r -a pam
            >так не получилось бы?
            >
            >>ну вроде все заработало.......
            >>по иде не так много будет много почтовых ящиков пахожих на это:
            >>
            >>user@test.domain
            >>user@domain.test
            >>и особой задержки это не вызовит))))))
            >>спасибо всем!!!!!!
            >>Если что обращайтесь

            Почитаем посмотрим........ Спасиб)))




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру