From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 31 Oct 2005 00:28:00 +0800 From: Alexei Takaseev To: ALT Linux Community Subject: Re: [Comm] Postfix + SMTP-AUTH + SASL + MySQL Message-Id: <20051031002800.49ededfa.alexei@taf.ru> In-Reply-To: <4364EE51.3010105@stc.donpac.ru> References: <4364EE51.3010105@stc.donpac.ru> Organization: /dev/null X-Mailer: Sylpheed version 1.0.4 (GTK+ 1.2.10; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit X-Virus-Scanned: amavisd-new at ilimnet.ru Cc: X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Oct 2005 16:30:21 -0000 Archived-At: List-Archive: List-Post: On Sun, 30 Oct 2005 19:01:21 +0300 Eugene Prokopiev wrote: > Здравствуйте! > > Задача: настроить SMTP-авторизацию в Postfix, имена и пароли > пользователей уже хранятся в MySQL (открытым текстом): > > mysql> select userid, passwd from dbmail_users; > +--------------------------------+----------+ > | userid | passwd | > +--------------------------------+----------+ > | john | jpwd | > +--------------------------------+----------+ > > Имею установленные: > > # rpm -qa | grep postfix (взят из бэкпортов) > postfix-control-1.2-alt1 > postfix-2.2.4-alt0.M24.1 > postfix-html-2.2.4-alt0.M24.1 > postfix-mysql-2.2.4-alt0.M24.1 > postfix-tls-2.2.4-alt0.M24.1 > > # rpm -qa | grep sasl (сначала пытался взять из бекпортов, но там > # alt0, > т.е. версия младше - как это получилось?) > libsasl2-2.1.19-alt1 > libsasl2-plugin-sql-2.1.19-alt1 > cyrus-sasl2-2.1.19-alt1 > cyrus-sasl2-docs-2.1.19-alt1 > > Читаю /usr/share/doc/postfix-2.2.4/README.ALT-ru_RU.KOI8-R: "Вся > конфигурация SASL находится в /etc/postfix/sasl" > > Однако: > > # ls -l /etc/postfix/sasl > ls: /etc/postfix/sasl: No such file or directory > > Пытаюсь определить, где лежат конфиги, стандартым методом :) postfix-2.2.x относить к стандартным в ALM24 сомнительно. > # rpm -qli `rpm -qa | grep sasl` | grep /etc > /etc/sasl2 > /etc/sasl2/sasldb2 > /etc/rc.d/init.d/saslauthd > /etc/sasl2/saslauthd.conf > /etc/sasl2/saslpasswd.conf > /etc/sysconfig/saslauthd > > Cмотрю, что там уже наконфигурено: > > # cat /etc/sasl2/saslpasswd.conf > pwcheck_method: sasldb > > # cat /etc/sasl2/saslauthd.conf | grep -v "^[#]" > ldap_servers: ldap://10.1.1.15/ ldap://10.1.1.25/ > ldap_bind_dn: cn=operator,ou=Profile,o=foo.com > ldap_bind_pw: secret > ldap_version: 3 > ldap_timeout: 5 > ldap_time_limit: 5 > > Прихожу в некоторое замешательство от отсутствия упоминаний об sql и > иду в search.altlinux.ru, где упоминается совсем другой файл > /usr/lib/sasl2/smtpd.conf. О lib говорит и google в ответ на "postfix > sasl mysql". Предполагаю, что и в ALT когда-то следовали общим > правилам, а затем решили поместить этот файл в более приличное место. Вообще-то ноги у этого поведения растут от Debian. > Создаю этот файл и вписываю в него: > > pwcheck_method: auxprop > auxprop_plugin: sql > mech_list: plain login > sql_engine: mysql > sql_hostnames: localhost > sql_user: dbmail > sql_passwd: dbmailpwd > sql_database: dbmail > sql_select: select passwd from dbmail_users where userid='%u' > > После запуска сервиса saslauthd приходит мысль протестировать saslauthd не умеет работать с SQL. Для этого существует libsasl2-plugin-sql Конфиги от реально работающей системы ALM24: postfix-2.0.20-alt1.3 postfix-pgsql-2.0.20-alt1.3 postfix-pcre-2.0.20-alt1.3 libsasl2-2.1.19-alt1 libsasl2-plugin-sql-2.1.19-alt1 username | password | domain_name | active ----------+------------+-------------+-------- user1 | XXXXXXXXXX | mydomain.ru | 1 /etc/postfix/sasl/smtpd.conf: auxprop_plugin: sql sql_engine: pgsql sql_user: mail sql_passwd: secret sql_hostnames: localhost sql_database: mail sql_statement: select password from mailusers where username = '%u' and domain_name = '%r' and active = 1 Вот, собственно, и вся настройка.