Во время отправки почты 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
________________________________________________________________________
POSTFIX
1) Собирался
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.com
2) Логирование
Запускается: 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 login
sql_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/24
transport_maps = mysql:/etc/postfix/transport.cf
alias_maps = mysql:/etc/postfix/aliases.cf
#alias_database = mysql:/etc/postfix/aliases.cf
relay_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 = 32768
virtual_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
Как сделать так чтобы отправить почту
можно было только после авторизации
даже если письмо отправляется из доверенной сети.