Во время отправки почты The BAT когда запрашивается пароль,
если пароль не указать то появляется сообщение:"Сервер сообщает об ошибке 8BITMIME"
И письмо естественно не отправляется.
Но если указать не доставерные данные, вместо пароля 123 указать 1234
или не правильный логин (которого просто нет) - письмо отправляется
а в логахAug 26 00:07:59 gw postfix/smtpd[21537]: warning: SASL authentication failure: Password verification failed
Aug 26 00:07:59 gw postfix/smtpd[21537]: warning: lx.domain.ru[192.168.100.4]: SASL PLAIN authentication failedПри этом в логах mysql ни чего нет, да и в логах postfix-a
кроме выше описанного тоже ни чего нету.I. Как собирал
_____________________________________________________________________
CyrusSASL
1) Собирался
./configure --prefix=/usr/local/sasl2 --with-openssl=/usr/local/ssl --with-mysql=/usr/include/mysql --with-bdb-libdir=/usr/local/BerkeleyDB.4.1/lib --with-bdb-incdir=/usr/local/BerkeleyDB.4.1/include --with-plugindir=/usr/local/sasl2/lib/sasl2 --with-gnu-ld --with-pwcheck --enable-sql --enable-login --enable-plain --enable-cram --disable-otp
2) Ссылкиа) /usr/lib/sasl2 -> /usr/local/sasl2/lib/sasl2
b) /usr/local/lib/sasl2 -> /usr/lib/sasl2
3) Связиecho /usr/lib/sasl2 > /etc/ld.so.conf
#ldconfig________________________________________________________________________
POSTFIX1) Собирался
make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql/ -DUSE_SASL_AUTH -I/usr/local/sasl2/include/sasl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/local/sasl2/lib -lsasl2'
________________________________________________________________________
MySQL
1) Ставилась
rpm с www.mysql.com2) Логирование
Запускается: safe_mysqld --user=mysql --log=/var/log/mysql.log
________________________________________________________________________II. КОНФИГИ
1) SASL (/usr/lib/sasl2)pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
mech_list: plain loginsql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: ...
sql_database: mail
sql_verbose: yes
sql_select: SELECT password FROM aliases WHERE alias = '%u@%r' and enabled = '1'2) Postfix (/etc/postfix/main.cf)
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
html_directory = /etc/postfix/html_dir
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = /etc/postfix/readme_dir
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
smtpd_banner = hi
mailq_path = /usr/bin/mailq
setgid_group = postdrop
mail_owner = postfix
default_privs = nobody
myhostname = xxx.ru
mydomain = xxx.ru
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8, 192.168.100.0/24transport_maps = mysql:/etc/postfix/transport.cf
alias_maps = mysql:/etc/postfix/aliases.cf
#alias_database = mysql:/etc/postfix/aliases.cfrelay_domains = $transport_maps
broken_sasl_auth_clients = yes
enable_sasl_authentication = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_sasl_application_name = smtpd
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_recipient_limit = 128
smtpd_timeout = 180
message_size_limit = 5242880
bounce_size_limit = 65536
header_size_limit = 32768virtual_maps = mysql:/etc/postfix/remote_aliases.cf
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/etc/postfix/aliases.cf
virtual_mailbox_limit = 5242880
virtual_uid_maps = mysql:/etc/postfix/ids.cf
virtual_gid_maps = mysql:/etc/postfix/gids.cf
disable_vrfy_command = yes
______________________________________________________________________3) MySQL
Создание базы mail и таблиц4) telnet 192.168.100.1
....
....
ehlo ....ru
250-.....ru
250-PIPELINING
250-SIZE 5242880
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME______________________________________________________________________
III. ЗАПУСК
1) 1-ым MySQL
/usr/sbin/safe_mysqld --user=mysql --log=/var/log/mysql.log
2) 2-ым Postfix
#postfix start
_______________________________________________________________________
После проделанного всего выше, почта отправляется и приходит.
Но автаризация не проходит полностью (как описывалось выше),
хотя если делать выборку пароля ручками из базы
SELECT password FROM aliases WHERE alias = 'p@dm.ru' and enabled = '1'
то пароль выбирается.
И это событие заносится в лог но не /var/log/mysql.log а в
/root/.mysql_history
Как сделать так чтобы отправить почту
можно было только после авторизации
даже если письмо отправляется из доверенной сети.
ЗАБЫЛ ВОТ ЕЩЁ ЧТО УКАЗАТЬ# postconf -m
static
sdbm
cidr
pcre
nis
regexp
environ
mysql
proxy
btree
unix
hash
Я разабрался почему не писало в mysql.log - был не правильный владелец. Теперь всё пишет.I. __Вот ПРИ ПРАВИЛЬНОЙ авторизации:___
1)LOG Postfix-a
warning и error - пустые2)LOG MySQL
#cat mysql.log040827 0:31:59 34 Connect postfix@localhost on mail
34 Quit
35 Connect postfix@localhost on mail
35 Query BEGIN
35 Query SELECT password FROM users WHERE email = 'kr@lx.ru' and enabled = '1'
35 Query SELECT password FROM users WHERE email = 'kr@lx.ru' and enabled = '1'
35 Query COMMIT
36 Connect postfix@localhost on mail
36 Quit
35 Quit
37 Connect postfix@localhost on mail
37 Quit
38 Connect postfix@localhost on mail
38 Query select transport from transport where domain = '*'
38 Query select transport from transport where domain = '*'
39 Connect postfix@localhost on mail
39 Query select rcpt from remote_aliases where alias = 'lx.ru'
40 Connect postfix@localhost on mail
40 Query select maildir from users where email = 'lx.ru'
38 Query select transport from transport where domain = 'kr@lx.ru'
38 Query select transport from transport where domain = 'lx.ru'
39 Query select rcpt from remote_aliases where alias = 'inbox.ru'
40 Query select maildir from users where email = 'inbox.ru'
38 Query select transport from transport where domain = 'inbox.ru'
38 Query select transport from transport where domain = 'ru'
38 Query select transport from transport where domain = 'gladko@inbox.ru'
38 Query select transport from transport where domain = 'inbox.ru'
38 Query select transport from transport where domain = '.ru'
41 Connect postfix@localhost on mail
41 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
41 Query select rcpt from remote_aliases where alias = '@inbox.ru'
42 Connect postfix@localhost on mail
42 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
42 Query select rcpt from remote_aliases where alias = '@inbox.ru'
040827 0:32:00 41 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
41 Query select rcpt from remote_aliases where alias = '@inbox.ru'
42 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
42 Query select rcpt from remote_aliases where alias = '@inbox.ru'
II. __При НЕ ПРАВИЛЬНОЙ авторизации (не существующий логин и пароль)___Что заметил странного.
Есть в The BAT акаунт скажем kr@lx.ruОбратный емаил такойже.
Логин: kr@lx.ru
Пароль: пароль
Но когда я в настройках ящика изменил логин на pupkin и поставил галочку в SMTP авторизация как на pop/imap, то при авторизации вначале идёт попытка авторизоваться как pupkin а потом от кудато происходит авторизация как kr. Это видно в логах.
1)LOG PostfixA)errors - пусто
B)info :
Aug 27 00:47:01 gw postfix/smtpd[5056]: connect from stl.lx.ru[192.168.100.4]
Aug 27 00:47:04 gw postfix/smtpd[5056]: 1A951BF471: client=stl.lx.ru[192.168.100.4]
Aug 27 00:47:04 gw postfix/smtpd[5056]: 86879BF471: client=stl.lx.ru[192.168.100.4]
Aug 27 00:47:04 gw postfix/cleanup[5064]: 86879BF471: message-id=<561802436.20040827004806@lx.ru>
Aug 27 00:47:04 gw postfix/qmgr[4753]: 86879BF471: from=<kr@lx.ru>, size=624, nrcpt=1 (queue active)
Aug 27 00:47:05 gw postfix/smtp[5066]: 86879BF471: to=<gladko@inbox.ru>, relay=mxs.mail.ru[194.67.23.20], delay=1, status=sent (250 OK id=1C0RAF-000AJq-00)
Aug 27 00:47:05 gw postfix/qmgr[4753]: 86879BF471: removed
Aug 27 00:47:06 gw postfix/smtpd[5056]: disconnect from stl.lx.ru[192.168.100.4]
C) warningsAug 27 00:47:04 gw postfix/smtpd[5056]: warning: SASL authentication failure: Password verification failed
Aug 27 00:47:04 gw postfix/smtpd[5056]: warning: stl.lx.ru[192.168.100.4]: SASL PLAIN authentication failed
2) mysql.log040827 0:45:02 87 Connect postfix@localhost on mail
87 Quit
88 Connect postfix@localhost on mail
88 Query BEGIN
88 Query SELECT password FROM users WHERE email = 'pupkin@gw.lx.ru' and enabled = '1'
88 Query SELECT password FROM users WHERE email = 'pupkin@gw.lx.ru' and enabled = '1'
88 Query COMMIT
89 Connect postfix@localhost on mail
89 Quit
88 Quit
90 Connect postfix@localhost on mail
90 Query select rcpt from remote_aliases where alias = 'lx.ru'
91 Connect postfix@localhost on mail
91 Query select maildir from users where email = 'lx.ru'
92 Connect postfix@localhost on mail
92 Query select transport from transport where domain = 'kr@lx.ru'
92 Query select transport from transport where domain = 'lx.ru'
90 Query select rcpt from remote_aliases where alias = 'inbox.ru'
91 Query select maildir from users where email = 'inbox.ru'
92 Query select transport from transport where domain = 'inbox.ru'
92 Query select transport from transport where domain = 'ru'
92 Query select transport from transport where domain = 'gladko@inbox.ru'
92 Query select transport from transport where domain = 'inbox.ru'
92 Query select transport from transport where domain = '.ru'
93 Connect postfix@localhost on mail
93 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
93 Query select rcpt from remote_aliases where alias = '@inbox.ru'
94 Connect postfix@localhost on mail
94 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
94 Query select rcpt from remote_aliases where alias = '@inbox.ru'
93 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
93 Query select rcpt from remote_aliases where alias = '@inbox.ru'
94 Query select rcpt from remote_aliases where alias = 'gladko@inbox.ru'
94 Query select rcpt from remote_aliases where alias = '@inbox.ru'
III. /etc/lib/sasl2/smtpd.confpwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
mech_list: plain loginsql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: xxxxx
sql_database: mail
sql_verbose: yes
sql_select: SELECT password FROM users WHERE email = '%u@%r' and enabled = '1'IV. /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
html_directory = /etc/postfix/html_dir
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = /etc/postfix/readme_dir
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
smtpd_banner = hi
mailq_path = /usr/bin/mailq
setgid_group = postdrop
mail_owner = postfix
default_privs = nobody
myhostname = name.domain.ru
mydomain = domain.ru
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = xx.xx.x.xxx, 127.0.0.0/8, 192.168.100.0/24relay_domains = $transport_maps
broken_sasl_auth_clients = yes
enable_sasl_authentication = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
#smtpd_sasl_local_domain =
smtpd_sasl_application_name = smtpd
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_recipient_limit = 128
smtpd_timeout = 180
message_size_limit = 5242880
bounce_size_limit = 65536
header_size_limit = 32768transport_maps = mysql:/etc/postfix/transport.cf
alias_maps = mysql:/etc/postfix/users.cf
#alias_database = mysql:/etc/postfix/users.cfvirtual_maps = mysql:/etc/postfix/remote_aliases.cf
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/etc/postfix/users.cf
virtual_mailbox_limit = 5242880
virtual_uid_maps = mysql:/etc/postfix/uids.cf
virtual_gid_maps = mysql:/etc/postfix/gids.cf
disable_vrfy_command = yes
Ещё вот:telnet 192.168.100.1
ehlo ....ru
250-.....ru
250-PIPELINING
250-SIZE 5242880
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
>mynetworks = 127.0.0.0/8, 192.168.100.0/24
Вроде как <192.168.100.0/24> убрать надо.