# Проблемы при создании виртуальной почтовой системы

## Infoman

Добрый день!

Основываясь на статью "Создание виртуальной почтовой системы", пытаюсь повторить то же самое.

До 4 шага (Cyrus-sasl) вроде все идет нормально. При установке я также ввожу USE="-ldap -mysql", но мне еще система пишет предупреждения, что нужно устанавливать либо BerkeyBD, либо gdbm. Имеет ли значение, какую из них выбирать, и нужны ли они вообще?. Ну ладно, с предупреждениями, но все равно устанавливается.

Дальше. Идет речь о правке файла /usr/lib/sasl2/smtp.conf. А его нет в это папке! Это нормально или все-таки он заведомо должен быть там? Находил где-то статью, что файл должен находиться по адресу /etc/sasl2/smtp.conf, но там его тоже нет.

Ну ладно, я создал его, прописал, что сказано.

В пункте 6 проверяется поддержка sasl и tls:

```
#telnet localhost 25

```

Проблема в том, что у меня нет строчек

```
250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN
```

.

Главный вопрос: подскажите, где я мог ошибиться пр настройке

Спасибо

P.S.

1. Где можно посмотреть все логи от postfix, sasl и т.д.? Че-то я не нашел их

----------

## neroot

Приветствую!

Имеется ввиду статья http://www.gentoo.org/doc/ru/virt-mail-howto.xml?

>Находил где-то статью, что файл должен находиться по адресу /etc/sasl2/smtp.conf

Лично у меня (настраивался тоже по этой статье), он именно в /etc/sasl2/

>Главный вопрос: подскажите, где я мог ошибиться пр настройке

Смотрите внимательно настройки постфикса и сасл2. Думаю, в начало п.6.

Перезапустите демоны.

>Где можно посмотреть все логи от postfix, sasl и т.д.?

/var/log

Если их там нет - настраивать вам логгирование.  :Smile: 

----------

## Infoman

Да, я ошибся ссылкой на статью).

 *Quote:*   

> Лично у меня (настраивался тоже по этой статье), он именно в /etc/sasl2/

 

а в этом файле (smtp.conf), кроме того, что написано в статье, ничего больше нет?

Про пункт 6. Это странно, но я делаю все в точности, как написано. Кстати, строчку

```
smtpd_sasl_local_domain =
```

так пустую и надо оставить?

P.S.

Чисто ради интереса. Кто-нибудь мне может прокомментировать, в рамках данной статьи, следующие строки?

```
(а теперь такой же для apache)

# openssl req -new > new.cert.csr

# openssl rsa -in privkey.oem -out new.cert.key

# openssl x509 -in new.cert.csr -out new.cert.cert - reg -signkey new.cert.key -days 365

```

Че-то вообще не врубаюсь, что тут происходит

----------

## Laitr Keiows

 *Infoman wrote:*   

> 
> 
> ```
> 
> # openssl req -new > new.cert.csr
> ...

 

Генерируется сначала запрос на сертификат, потом ключ сертификата, а потом сам сертификат для SSL.

----------

## neroot

Это странно, но я делаю все в точности, как написано.

Значит, что-то где-то пропустили...  :Smile: 

Начните с самого начала - статья актуальна до сих пор.

Последний раз ей пользовался с пару месяцев назад - отличное howto.

Не хватает спам-анализа, но это уже оффтопик.

Кстати, строчку

smtpd_sasl_local_domain =

так пустую и надо оставить?

Да.

----------

## ba

 *Infoman wrote:*   

> Идет речь о правке файла /usr/lib/sasl2/smtp.conf. А его нет в это папке! Это нормально или все-таки он заведомо должен быть там?

 

правильный путь 

```
/etc/sasl2/smtpd.conf
```

И покажи конфиг постфикса.

----------

## Infoman

Вот, блин, /etc/sasl2/smtpd.conf, кто ж знал)

Конфиг постификса:

```
alias_maps = mysql:/etc/postfix/mysql-aliases.cf

broken_sasl_auth_clients = yes

command_directory = /usr/sbin

config_directory = /etc/postfix

daemon_directory = /usr/lib/postfix

data_directory = /var/lib/postfix

debug_peer_level = 5

debug_peer_list = localhost

default_destination_concurrency_limit = 10

home_mailbox = .maildir/

html_directory = /usr/share/doc/postfix-2.5.4/html

inet_interfaces = all

local_destination_concurrency_limit = 2

local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname

local_transport = local

mail_owner = postfix

mailq_path = /usr/bin/mailq

manpage_directory = /usr/share/man

mydestination = $myhostname, $mydomain, localhost.$mydomain

mydomain = mlkgroup.ru

myhostname = mail.mlkgroup.ru

mynetworks = 192.168.1.0/24, 127.0.0.0/8

mynetworks_style = subnet

myorigin = $mydomain

newaliases_path = /usr/bin/newaliases

queue_directory = /var/spool/postfix

readme_directory = /usr/share/doc/postfix-2.5.4/readme

relay_domains = $mydestination

relocated_maps = mysql:/etc/postfix/mysql-relocated.cf

sample_directory = /etc/postfix

sendmail_path = /usr/sbin/sendmail

setgid_group = postdrop

smtpd_recipient_restrictions = permit_mynetworks,       permit_sasl_authenticated,      reject_unauth_destination

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain =

smtpd_sasl_security_options = noanonymous

smtpd_tls_CAfile = /etc/postfix/cacert.pem

smtpd_tls_cert_file = /etc/postfix/newcert.pem

smtpd_tls_key_file = /etc/postfix/newreq.pem

smtpd_tls_loglevel = 3

smtpd_tls_received_header = yes

smtpd_tls_session_cache_timeout = 3600s

smtpd_use_tls = yes

tls_random_source = dev:/dev/urandom

unknown_local_recipient_reject_code = 550

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf

virtual_gid_maps = static:$vmail-gid

virtual_mailbox_base = /

virtual_mailbox_domains = apri-node.ru

virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf

virtual_minimum_uid = 1000

virtual_transport = virtual

virtual_uid_maps = static:$vmail-uid

```

Вот заодно еще что выдает telnet:

```
# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.mlkgroup.ru ESMTP Postfix

ehlo test

250-mail.mlkgroup.ru

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

[b]250-ENHANCEDSTATUSCODES[/b]

250-8BITMIME

250 DSN

```

Откуда взялась строчка 250-ENHANCEDSTATUSCODES? Вместо нее должна быть 250-XVERP, если верить how-to.

Очень странно, но не получается ни отправить, ни получить почту через локальную сеть (через outlook). Мало того, я создаю пользователей (например, test) в базе данных, прописываю homedir=/home/vmail и maildir=/home/vmail/apri-node.ru/test/.maildir/, но на них почта не приходит, папки соответствующие не создаются.

Какие еще настройки предоставить?Last edited by Infoman on Mon May 25, 2009 3:44 pm; edited 2 times in total

----------

## Infoman

Кроме того, проверяют телнетом 110 порт:

```
# telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

+OK Hello there.

USER test@apri-node.ru

+OK Password required.

PASS 111

-ERR chdir /home/vmail/apri-node.ru/test/.maildir/ failed

Connection closed by foreign host.

```

Папку он не создает. Хотя пользователь берется из базы, как ни странно

Тут же проверяю:

```
# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.mlkgroup.ru ESMTP Postfix

ehlo test

250-mail.mlkgroup.ru

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

helo test

250 mail.blkgroup.ru

MAIL FROM: test1@mlkgroup.ru

250 2.1.0 Ok

RCPT TO: test2@mlkgroup.ru

250 2.1.5 Ok

DATA

354 End data with <CR><LF>.<CR><LF>

TEST!!!

.

250 2.0.0 Ok: queued as 21FA7492DC

QIT

502 5.5.2 Error: command not recognized

QUIT

221 2.0.0 Bye

Connection closed by foreign host.
```

Оба пользователя существую, соответственно, почта не приходит((

----------

## ba

 *Infoman wrote:*   

> Кроме того, проверяют телнетом 110 порт:
> 
> Папку он не создает. Хотя пользователь берется из базы, как ни странноp

 

и не должен, само создается только транспортом virtual при доставке

 *Infoman wrote:*   

> Оба пользователя существую, соответственно, почта не приходит((

 

а в логах что?

----------

## Infoman

В логах внешнего почтового клиента:

```
SMTP.log

[23:45:25]  C: Connected to mail.mlkgroup.ru, port 25

[23:45:26]  S: 220 mail.mlkgroup.ru ESMTP Postfix

[23:45:26]  C: EHLO twins.telenet.ru

[23:45:26]  S: 250-mail.mlkgroup.ru

[23:45:26]  S: 250-PIPELINING

[23:45:26]  S: 250-SIZE 10240000

[23:45:26]  S: 250-VRFY

[23:45:26]  S: 250-ETRN

[23:45:26]  S: 250-STARTTLS

[23:45:26]  S: 250-AUTH LOGIN PLAIN

[23:45:26]  S: 250-AUTH=LOGIN PLAIN

[23:45:26]  S: 250-ENHANCEDSTATUSCODES

[23:45:26]  S: 250-8BITMIME

[23:45:26]  S: 250 DSN

[23:45:26]  C: AUTH PLAIN

[23:45:26]  S: 334 

[23:45:26]  C: AGluZm9tYW5AYmxrZ3JvdXAucnUAMTEx

[23:45:26]  S: 535 5.7.8 Error: authentication failed: authentication failure

[23:45:26]  C: RSET

[23:45:26]  S: 250 2.0.0 Ok

[23:45:26]  C: AUTH LOGIN

[23:45:26]  S: 334 VXNlcm5hbWU6

[23:45:26]  C: aW5mb21hbkBibGtncm91cC5ydQ==

[23:45:26]  S: 334 UGFzc3dvcmQ6

[23:45:26]  C: MTEx

[23:45:26]  S: 535 5.7.8 Error: authentication failed: authentication failure

[23:45:26]  C: RSET

[23:45:26]  S: 250 2.0.0 Ok

[23:45:26]  C: MAIL FROM:<infoman@mlkgroup.ru> SIZE=428

[23:45:26]  S: 250 2.1.0 Ok

[23:45:26]  C: RCPT TO:<mymail@mail.ru>

[23:45:27]  S: 554 5.7.1 <mymail@mail.ru>: Relay access denied

[23:45:27]  C: RSET

[23:45:27]  S: 250 2.0.0 Ok

[23:45:27]  C: QUIT

[23:45:27]  S: 221 2.0.0 Bye
```

Ошибка авторизации, похоже

Теперь по протоколу POP:

```
[23:43:27]  C: Connected to mail.mlkgroup.ru, port 110
```

Т.е. извне рор вообще не видит почтовый сервер

Лог в постфиксе:

```
May 25 23:45:41 localhost saslauthd[25793]: pam_mysql - MySQL error (Access denied for user 'mailsql'@'localhost' (using password: YES)) 

May 25 23:45:41 localhost saslauthd[25793]: DEBUG: auth_pam: pam_authenticate failed: Permission denied

May 25 23:45:41 localhost saslauthd[25793]: do_auth         : auth failure: [user=infoman] [service=smtp] [realm=mlkgroup.ru] [mech=pam] [reason=PAM auth error]
```

Ха! что-то не так. Вот только бы понять, что именно

Какие еще логи нужны (из какого файла)?

----------

## ba

 *Infoman wrote:*   

> Лог в постфиксе:
> 
> ```
> May 25 23:45:41 localhost saslauthd[25793]: pam_mysql - MySQL error (Access denied for user 'mailsql'@'localhost' (using password: YES)) 
> ```
> ...

 

вот эту комманду выполнял?

```
mysql> GRANT SELECT,INSERT,UPDATE,DELETE

        ->     ON mailsql.*

        ->     TO mailsql@localhost

        ->     IDENTIFIED BY '$password';
```

пароль написал такой же как в строчках ниже?

```
# nano -w /etc/pam.d/imap

(закомментируйте существующие строки настройки авторизации, и добавьте 

указанные ниже)

#auth       required     pam_nologin.so

#auth       required     pam_stack.so service=system-auth

#account    required     pam_stack.so service=system-auth

#session    required     pam_stack.so service=system-auth

auth     optional       pam_mysql.so host=localhost db=mailsql user=mailsql \

  passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0

account  required       pam_mysql.so host=localhost db=mailsql user=mailsql \

  passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0
```

----------

## Infoman

Да, спасибо, я нашел, почему там писалась эта ошибка (была опечатка). Но сейчас у меня появились другие проблемы.

Во-первых, я не понял, можно ли для локального домена (в моем случае mlkgroup.ru) создать не-unix пользователей? Я прописал в таблице БД users пользователя локального домена (user@mlkgroup.ru), прописал пути соответствующие (/home/vmail/mlkgroup.ru/user/.maildir/), но почта ему не идет. Если создаю unix-пользователя user, то вся почта идет к нему в папку (/home/user/.maildir/). А таблице transport домен mlkgroup.ru должен стоять, как local: или как virtual:?

При том, что для другого домена (уже полностью виртуального) здесь проблем нет.

А вообще, можно ли создать только виртуальные домены, без локальных?

Вторая проблема.

Я извне не могу отправить почту извне локальной сети. Использую авторизацию smtp такую же, как и pop, но он мне выдает окно с предложением ввести логин/пароль. Сколько не пробую ввести (user@mlkgroup.ru/psswd), снова выводит окно. И так до отмены. Если не использую авторизацию, то тем более не отсылает.

----------

## ba

 *Infoman wrote:*   

> А вообще, можно ли создать только виртуальные домены, без локальных?

 

ну все что не прописано в опцию mydestination, оно только для вирт юзеров

 *Infoman wrote:*   

> Я извне не могу отправить почту извне локальной сети. Использую авторизацию smtp такую же, как и pop, но он мне выдает окно с предложением ввести логин/пароль. Сколько не пробую ввести (user@mlkgroup.ru/psswd), снова выводит окно. И так до отмены. Если не использую авторизацию, то тем более не отсылает.

 

логи опять же покажи...

----------

## Infoman

/var/log/mail.log

```
May 27 00:02:44 localhost postfix/smtpd[24118]: connect from user.telenet.ru[xx.xx.xx.xx]

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? localhost

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? localhost

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: send attr request = connect

May 27 00:02:44 localhost postfix/smtpd[24118]: send attr ident = smtp:xx.xx.xx.xx

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: status

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: status

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute value: 0

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: count

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: count

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute value: 1

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: rate

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: rate

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute value: 1

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: (list terminator)

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: (end)

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 220 mail.mlkgroup.ru ESMTP Postfix

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: EHLO user.telenet.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-mail.mlkgroup.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-PIPELINING

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-SIZE 10240000

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-VRFY

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-ETRN

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-STARTTLS

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-AUTH LOGIN PLAIN

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-AUTH=LOGIN PLAIN

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-ENHANCEDSTATUSCODES

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250-8BITMIME

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 DSN

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: AUTH PLAIN

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_first: sasl_method PLAIN

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_auth_response: uncoded server challenge: 

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 334 

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: AGluZm9AYmxrZ3JvdXAucnUAMTEx

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_next: decoded response: 

May 27 00:02:44 localhost postfix/smtpd[24118]: warning: SASL authentication failure: Password verification failed

May 27 00:02:44 localhost postfix/smtpd[24118]: warning: user.telenet.ru[xx.xx.xx.xx]: SASL PLAIN authentication failed: authentication failure

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 535 5.7.8 Error: authentication failed: authentication failure

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: RSET

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 2.0.0 Ok

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: AUTH LOGIN

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_first: sasl_method LOGIN

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_auth_response: uncoded server challenge: Username:

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 334 VXNlcm5hbWU6

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: aW5mb0BibGtncm91cC5ydQ==

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_next: decoded response: info@mlkgroup.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_auth_response: uncoded server challenge: Password:

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 334 UGFzc3dvcmQ6

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: MTEx

May 27 00:02:44 localhost postfix/smtpd[24118]: xsasl_cyrus_server_next: decoded response: 111

May 27 00:02:44 localhost postfix/smtpd[24118]: warning: user.telenet.ru[xx.xx.xx.xx]: SASL LOGIN authentication failed: authentication failure

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 535 5.7.8 Error: authentication failed: authentication failure

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: RSET

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 2.0.0 Ok

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: MAIL FROM:<info@mlkgroup.ru> SIZE=463

May 27 00:02:44 localhost postfix/smtpd[24118]: extract_addr: input: <info@mlkgroup.ru>

May 27 00:02:44 localhost postfix/smtpd[24118]: smtpd_check_addr: addr=info@mlkgroup.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: ctable_locate: move existing entry key info@mlkgroup.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: extract_addr: in: <info@mlkgroup.ru>, result: info@mlkgroup.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: fsspace: .: block size 4096, blocks free 37462337

May 27 00:02:44 localhost postfix/smtpd[24118]: smtpd_check_queue: blocks 4096 avail 37462337 min_free 0 msg_size_limit 10240000

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 2.1.0 Ok

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: RCPT TO:<twix@uralweb.ru>

May 27 00:02:44 localhost postfix/smtpd[24118]: extract_addr: input: <twix@uralweb.ru>

May 27 00:02:44 localhost postfix/smtpd[24118]: smtpd_check_addr: addr=twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: ctable_locate: move existing entry key twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: extract_addr: in: <twix@uralweb.ru>, result: twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: >>> START Recipient address RESTRICTIONS <<<

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=permit_sasl_authenticated

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=permit_sasl_authenticated status=0

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=permit_mynetworks

May 27 00:02:44 localhost postfix/smtpd[24118]: permit_mynetworks: user.telenet.ru xx.xx.xx.xx

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=permit_mynetworks status=0

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=reject_unauth_destination

May 27 00:02:44 localhost postfix/smtpd[24118]: reject_unauth_destination: twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: permit_auth_destination: twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: ctable_locate: leave existing entry key twix@uralweb.ru

May 27 00:02:44 localhost postfix/smtpd[24118]: NOQUEUE: reject: RCPT from user.telenet.ru[xx.xx.xx.xx]: 554 5.7.1 <twix@uralweb.ru>: Relay access denied; from=<info@mlkgroup.ru> to=<twins@uralweb.ru> proto=ESMTP helo=<user.telenet.ru>

May 27 00:02:44 localhost postfix/smtpd[24118]: generic_checks: name=reject_unauth_destination status=2

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 554 5.7.1 <twix@uralweb.ru>: Relay access denied

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: RSET

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 2.0.0 Ok

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: RSET

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 250 2.0.0 Ok

May 27 00:02:44 localhost postfix/smtpd[24118]: < user.telenet.ru[xx.xx.xx.xx]: QUIT

May 27 00:02:44 localhost postfix/smtpd[24118]: > user.telenet.ru[xx.xx.xx.xx]: 221 2.0.0 Bye

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 192.168.1.0/24

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 127.0.0.0/8

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostname: user.telenet.ru ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_hostaddr: xx.xx.xx.xx ~? 217.174.yy.yy/32

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: user.telenet.ru: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: match_list_match: xx.xx.xx.xx: no match

May 27 00:02:44 localhost postfix/smtpd[24118]: send attr request = disconnect

May 27 00:02:44 localhost postfix/smtpd[24118]: send attr ident = smtp:xx.xx.xx.xx

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: status

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: status

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute value: 0

May 27 00:02:44 localhost postfix/smtpd[24118]: private/anvil: wanted attribute: (list terminator)

May 27 00:02:44 localhost postfix/smtpd[24118]: input attribute name: (end)

May 27 00:02:44 localhost postfix/smtpd[24118]: disconnect from user.telenet.ru[xx.xx.xx.xx]

May 27 00:02:44 localhost postfix/smtpd[24118]: master_notify: status 1

May 27 00:02:44 localhost postfix/smtpd[24118]: connection closed
```

Что-то с авторизацией не проканывает(( Но странно, я там такой легкий пароль сделал, что просто негде ошибиться.

Соответственно, то же самое выдает клиент (theBAT!)

```
[00:02:18]  C: Connected to mail.mlkgroup.ru, port 25

[00:02:18]  S: 220 mail.mlkgroup.ru ESMTP Postfix

[00:02:18]  C: EHLO user.telenet.ru

[00:02:18]  S: 250-mail.mlkgroup.ru

[00:02:18]  S: 250-PIPELINING

[00:02:18]  S: 250-SIZE 10240000

[00:02:18]  S: 250-VRFY

[00:02:18]  S: 250-ETRN

[00:02:18]  S: 250-STARTTLS

[00:02:18]  S: 250-AUTH LOGIN PLAIN

[00:02:18]  S: 250-AUTH=LOGIN PLAIN

[00:02:18]  S: 250-ENHANCEDSTATUSCODES

[00:02:18]  S: 250-8BITMIME

[00:02:18]  S: 250 DSN

[00:02:18]  C: AUTH PLAIN

[00:02:18]  S: 334 

[00:02:18]  C: AGluZm9AYmxrZ3JvdXAucnUAMTEx

[00:02:18]  S: 535 5.7.8 Error: authentication failed: authentication failure

[00:02:18]  C: RSET

[00:02:18]  S: 250 2.0.0 Ok

[00:02:18]  C: AUTH LOGIN

[00:02:18]  S: 334 VXNlcm5hbWU6

[00:02:18]  C: aW5mb0BibGtncm91cC5ydQ==

[00:02:18]  S: 334 UGFzc3dvcmQ6

[00:02:18]  C: MTEx

[00:02:18]  S: 535 5.7.8 Error: authentication failed: authentication failure

[00:02:18]  C: RSET

[00:02:18]  S: 250 2.0.0 Ok

[00:02:18]  C: MAIL FROM:<info@mlkgroup.ru> SIZE=463

[00:02:18]  S: 250 2.1.0 Ok

[00:02:18]  C: RCPT TO:<twix@uralweb.ru>

[00:02:19]  S: 554 5.7.1 <twix@uralweb.ru>: Relay access denied

[00:02:19]  C: RSET

[00:02:19]  S: 250 2.0.0 Ok

[00:02:19]  C: RSET

[00:02:19]  S: 250 2.0.0 Ok

[00:02:19]  C: QUIT

[00:02:19]  S: 221 2.0.0 Bye
```

А кстати, в /var/log/auth.log вот еще какая-то фигня:

```
May 27 00:02:44 localhost saslauthd[10828]: pam_mysql - SELECT returned no result.

May 27 00:02:44 localhost saslauthd[10828]: pam_mysql - SELECT returned no result.

May 27 00:02:44 localhost saslauthd[10828]: DEBUG: auth_pam: pam_authenticate failed: Permission denied

May 27 00:02:44 localhost saslauthd[10828]: do_auth         : auth failure: [user=info] [service=smtp] [realm=mlkgroup.ru] [mech=pam] [reason=PAM auth error]

May 27 00:02:44 localhost saslauthd[10829]: pam_mysql - SELECT returned no result.

May 27 00:02:44 localhost saslauthd[10829]: pam_mysql - SELECT returned no result.

May 27 00:02:44 localhost saslauthd[10829]: DEBUG: auth_pam: pam_authenticate failed: Permission denied

May 27 00:02:44 localhost saslauthd[10829]: do_auth         : auth failure: [user=info] [service=smtp] [realm=mlkgroup.ru] [mech=pam] [reason=PAM auth error]
```

Или это все  к тому же самому?

И все-таки, если я хочу, чтобы mlkgroup.ru использовал виртуальных пользователей, в качестве myhostname и mydomain можно прописать mail.mlkgroup.ru и mlkgroup сшштветственно?

----------

## ba

 *Infoman wrote:*   

> 
> 
> ```
> May 27 00:02:44 localhost saslauthd[10828]: do_auth         : auth failure: [user=info] [service=smtp] [realm=mlkgroup.ru] [mech=pam] [reason=PAM auth error]
> 
> ...

 

в mysql выполни

```
select * from mailsql.users where email='info@blkgroup.ru' and clear='111';
```

если оно возвращает результат, то надо посмотреть конфиг saslauthd, тк получается он юзера разбиает на user и realm

кстати использовать pam_mysql в такой схеме это какой-то костыль, тк и saslauthd и courier-authdaemond умееют ходить в mysql сами.

 *Infoman wrote:*   

> И все-таки, если я хочу, чтобы mlkgroup.ru использовал виртуальных пользователей, в качестве myhostname и mydomain можно прописать mail.mlkgroup.ru и mlkgroup сшштветственно?

 

можно, но тогда mydestination не должен включать в себя $myhostname и $mydomain

----------

## Infoman

Ладно, у меня пока получилось настроить почту так, чтобы можно было из локальной сети нормально проверять/отправлять, правда без авторизации. Самое интересное, что когда я прописал внешний ip-адрес с маской (xxx.xxx.xxx.xxx/32), то проверяя почту с этого же адреса он, судя по логам, не мог сопоставить xxx.xxx.xxx.xxx/32 с xxx.xxx.xxx.xxx. Когда я убрал маску, из сети нормально стала проверяться и отправлять почта. Проверяет, кстати, он почту и извне.

Остались проблемы с smtp-авторизацией. Че-то он ее не проходит. Но эту проблему я буду решать чуть позже, после защиты диплома)))))

----------

## fank

да, дружище, скока я тр....ся с этим руководством....

а потом отладил - поставил strace и включил везде дебаг

в мускуле тоже можно включить дебаг так. чтобы он писал в логи все запросы

trace кажется называется

----------

## Infoman

 *ba wrote:*   

>  *Infoman wrote:*   
> 
> ```
> May 27 00:02:44 localhost saslauthd[10828]: do_auth         : auth failure: [user=info] [service=smtp] [realm=mlkgroup.ru] [mech=pam] [reason=PAM auth error]
> 
> ...

 

А как сделать тогда, чтобы он не разбивал на юзера и имя домена?

----------

## Infoman

Все, спасибо! Я нашел решение проблемы!

Оказывается, в настройках к saslauthd (/etc/conf.d/saslauthd) необходимо было раскомментировать строку:

```
SASLAUTHD_OPTS ="${SASLAUTHD_OPTS} -a pam -r "
```

Благодаря этому, при авторизации логин и домен не будут рассматриваться по отдельности, и запрос в базе данных не будет выдавать пустой результат.

P.S. Только очень бы хотелось узнать, как организовать всю систему без pam_mysql, если это "такой костыль")))

----------

## Azik

 *Infoman wrote:*   

> Только очень бы хотелось узнать, как организовать всю систему без pam_mysql, если это "такой костыль")))

 

Просто же

USE='mysql' emerge -av net-libs/courier-authlib

И правишь /etc/authlib/authmysqlrc под свои нужды. В http://www.gentoo.org/doc/en/virt-mail-howto.xml все расписано.

----------

## fank

 *Azik wrote:*   

>  *Infoman wrote:*   Только очень бы хотелось узнать, как организовать всю систему без pam_mysql, если это "такой костыль"))) 
> 
> Просто же
> 
> USE='mysql' emerge -av net-libs/courier-authlib
> ...

 

пожалуйста, не надо учить людей плохим приемам администрирования системы

```
USE='mysql' emerge ....
```

USE-флаги должны быть на своих местах в момент обновления

место им в /etc/portage/package.use

----------

## Azik

 *fank wrote:*   

> пожалуйста, не надо учить людей плохим приемам администрирования системы

 

Мне лень писать "такой-то пакет надо собирать с таким-то флагом". Подразумевается, что человек читал Хандбук, и знает, как задавать USE-флаги, иначе понесет справедливую кару за его нечтение.

----------

