URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91929
[ Назад ]

Исходное сообщение
"Postfix - SASL аутентификация"

Отправлено dr7534 , 12-Июл-11 12:44 
Postfix - SASL аутентификация

есть два ящика test@dracon753.ru и t2@dracon753.ru с паролями testpass и 759 перегоняем их в base 64

debiantest:/home/andreym/rab# printf 'test@dracon753.ru\0test@dracon753.ru\0testpass' | mimencode
dGVzdEBkcmFjb243NTMucnUAdGVzdEBkcmFjb243NTMucnUAdGVzdHBhc3M=

debiantest:/home/andreym/rab# printf 't2@dracon753.ru\0t2@dracon753.ru\0759' | mimencode
dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05

пробую законектится

debiantest:/# openssl s_client -connect 192.168.4.25:465
CONNECTED(00000003)
depth=0 /C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
verify return:1
---
Certificate chain
0 s:/C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
   i:/C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
---
Server certificate
-----BEGIN CERTIFICATE-----
MIID4zCCA0ygAwIBAgIJAKn3F1sfcvtBMA0GCSqGSIb3DQEBBQUAMIGoMQswCQYD
VQQGEwJSVTEYMBYGA1UECBMPUm9zdG92c2thaXkgb2JsMRswGQYDVQQHExJLYW1l
c2stU2hheHRpbnNraXkxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
ZDEbMBkGA1UEAxMScG9zdHMuZHJhY29uNzUzLnJ1MSIwIAYJKoZIhvcNAQkBFhNh
bmRyZXlAZHJhY29uNzUzLnJ1MB4XDTExMDUyMDA1MTcwM1oXDTIxMDUxNzA1MTcw
M1owgagxCzAJBgNVBAYTAlJVMRgwFgYDVQQIEw9Sb3N0b3Zza2FpeSBvYmwxGzAZ
BgNVBAcTEkthbWVzay1TaGF4dGluc2tpeTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk
Z2l0cyBQdHkgTHRkMRswGQYDVQQDExJwb3N0cy5kcmFjb243NTMucnUxIjAgBgkq
hkiG9w0BCQEWE2FuZHJleUBkcmFjb243NTMucnUwgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAOEzzhq9MQBWq8nTvtVGrIkw6yILey6OBFSRsucmexgvex9BG5Ib
3n+OqSVmY8M8BaJi+dBHeODFnJ5LJCAkPj2RGQqIFXTkCrx+/c5c61PlO2CVXyxU
jXQ8HKYH86v7F4jtTfr4AlytUE6hbHvwCfc2ZCWqjHQmEnuaEFWUxsqFAgMBAAGj
ggERMIIBDTAdBgNVHQ4EFgQUNqshvhgDB2HffopaehOjt2Vmxykwgd0GA1UdIwSB
1TCB0oAUNqshvhgDB2HffopaehOjt2Vmxymhga6kgaswgagxCzAJBgNVBAYTAlJV
MRgwFgYDVQQIEw9Sb3N0b3Zza2FpeSBvYmwxGzAZBgNVBAcTEkthbWVzay1TaGF4
dGluc2tpeTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRswGQYD
VQQDExJwb3N0cy5kcmFjb243NTMucnUxIjAgBgkqhkiG9w0BCQEWE2FuZHJleUBk
cmFjb243NTMucnWCCQCp9xdbH3L7QTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB
BQUAA4GBAHvly28biKy2xn3rZ/444Fj5EMjXkdKthtWcgOFWYe3Z9X0OyZLJ8eKX
C/CshpTBCiLppDza/ZT4s8CUFMzR34sD4m0r/0OGMnEOwZiUBd1HifBLd/qQRjAG
IPvQDM4oZ0csec0glR2Wb5d8wrJ3G7Qx6GSeJ5lG+nAT5DLW27IF
-----END CERTIFICATE-----
subject=/C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
issuer=/C=RU/ST=Rostovskaiy obl/L=Kamesk-Shaxtinskiy/O=Internet Widgits Pty Ltd/CN=posts.dracon753.ru/emailAddress=andrey@dracon753.ru
---
No client certificate CA names sent
---
SSL handshake has read 1570 bytes and written 319 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 5B57811CBB73A8DBFE653C6E74374DA3FE768763FE3EF43F864C510C1CBF46AE
    Session-ID-ctx:
    Master-Key: 7386211CC15606F85ADD514E3017D181DC55D930E5CC3DD0ACA20808FB5F1EAE01C6D1A63B63DE6AE979150B9B6BB39B
    Key-Arg   : None
    Start Time: 1310450837
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
220 posts.dracon753.ru ESMTP Postfix (Debian/GNU)
ehlo 192.168.3.15
250-posts.dracon753.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth plain
334
dGVzdEBkcmFjb243NTMucnUAdGVzdEBkcmFjb243NTMucnUAdGVzdHBhc3M=
235 2.7.0 Authentication successful
1 первый пароль срабатует
---
220 posts.dracon753.ru ESMTP Postfix (Debian/GNU)
ehlo 192.168.3.15
250-posts.dracon753.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth plain
334
dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
535 5.7.8 Error: authentication failed:

а второй нет


в логах

2011-07-12 11:07:36 auth(default): Info: new auth connection: pid=22534
2011-07-12 11:07:53 auth(default): Info: client in: AUTH        1       plain   service=smtp    nologin lip=192.168.4.25        rip=192.168.3.15        secured
2011-07-12 11:07:53 auth(default): Info: client out: CONT       1
2011-07-12 11:08:08 auth-worker(default): Info: sql(test@dracon753.ru,192.168.3.15): query: SELECT email as user, password FROM users WHERE email='test@dracon753.ru';
2011-07-12 11:08:08 auth(default): Info: client in: CONT        1       dGVzdEBkcmFjb243NTMucnUAdGVzdEBkcmFjb243NTMucnUAdGVzdHBhc3M=
2011-07-12 11:08:08 auth(default): Info: client out: OK 1       user=test@dracon753.ru
2011-07-12 11:08:27 auth(default): Info: client in: AUTH        2       plain   service=smtp    nologin lip=192.168.4.25        rip=192.168.3.15        secured
2011-07-12 11:08:27 auth(default): Info: client out: CONT       2
2011-07-12 11:08:41 auth(default): Info: client in: CONT        2       dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
2011-07-12 11:08:41 auth(default): Info: plain(?,192.168.3.15): invalid input
2011-07-12 11:08:43 auth(default): Info: client out: FAIL       2


Содержание

Сообщения в этом обсуждении
"Postfix - SASL аутентификация"
Отправлено Andrey Mitrofanov , 12-Июл-11 13:02 
> debiantest:/home/andreym/rab# printf 'test@dracon753.ru\0test@dracon753.ru\0testpass'
> | mimencode
> dGVzdEBkcmFjb243NTMucnUAdGVzdEBkcmFjb243NTMucnUAdGVzdHBhc3M=
> debiantest:/home/andreym/rab# printf 't2@dracon753.ru\0t2@dracon753.ru\0759' |
> mimencode
> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05

Разница: в конце второй стоки нет '='.

> 1 первый пароль срабатует
> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
> 535 5.7.8 Error: authentication failed:
> а второй нет
> в логах
> 2011-07-12 11:08:41 auth(default): Info: client in: CONT      
>   2       dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
> 2011-07-12 11:08:41 auth(default): Info: plain(?,192.168.3.15): invalid input

Попробуй добавить '=' или '=='.


"Postfix - SASL аутентификация"
Отправлено dr7534 , 12-Июл-11 13:08 
>[оверквотинг удален]
> Разница: в конце второй стоки нет '='.
>> 1 первый пароль срабатует
>> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
>> 535 5.7.8 Error: authentication failed:
>> а второй нет
>> в логах
>> 2011-07-12 11:08:41 auth(default): Info: client in: CONT
>>   2       dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05
>> 2011-07-12 11:08:41 auth(default): Info: plain(?,192.168.3.15): invalid input
> Попробуй добавить '=' или '=='.

не помогает

dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05=
535 5.7.8 Error: authentication failed:
auth plain
334
dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05==
535 5.7.8 Error: authentication failed:


"нашёл :))"
Отправлено Andrey Mitrofanov , 12-Июл-11 13:22 
> Postfix - SASL аутентификация
> есть два ящика test@dracon753.ru и t2@dracon753.ru с паролями testpass и 759 перегоняем
> их в base 64
> debiantest:/home/andreym/rab# printf 'test@dracon753.ru\0test@dracon753.ru\0testpass'
> | mimencode
> dGVzdEBkcmFjb243NTMucnUAdGVzdEBkcmFjb243NTMucnUAdGVzdHBhc3M=
> debiantest:/home/andreym/rab# printf 't2@dracon753.ru\0t2@dracon753.ru\0759' |
> mimencode
> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydT05

$ printf 't2@dracon753.ru\0t2@dracon753.ru\0759' | od -t x1
0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 3d
0000040 39
0000041
$ printf 't2@dracon753.ru\0t2@dracon753.ru\00759' | od -t x1
0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 07
0000040 35 39
0000042
$ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | od -vt x1
0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
0000040 37 35 39
0000043
$ _


Вот это :-D пройдёт --
$ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | recode ../b64
dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydQA3NTk=
$ _


"+ещё"
Отправлено Andrey Mitrofanov , 12-Июл-11 13:30 
> Вот это :-D пройдёт --
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | recode ../b64
> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydQA3NTk=

+ _ещё правильнее так

$ printf '%s\0%s\0%s' t2@dracon753.ru t2@dracon753.ru 759 | recode ../b64
dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydQA3NTk=

Ж) И да в случае подстановки переменных таки использовать ещё кавычки
printf '%s\0%s\0%s' "$USER" "$USER" "$PASS"

И да, эти изыски не нужны для "на коленке", только если в скрипте. А на коленке -- и через форум Ж:) сойдёт.


"нашёл :))"
Отправлено dr7534 , 12-Июл-11 13:52 
>[оверквотинг удален]
> 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35
> 33 2e 72 75 00
> 0000040 37 35 39
> 0000043
> $ _
> Вот это :-D пройдёт --
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | recode ../b64
> dDJAZHJhY29uNzUzLnJ1AHQyQGRyYWNvbjc1My5ydQA3NTk=
> $ _

не понял , а для чего перед паролем подставлять два 00 ?


"нашёл :))"
Отправлено Andrey Mitrofanov , 12-Июл-11 15:44 
> не понял , а для чего перед паролем подставлять два 00 ?

??? Даже и не знаю, как объяснить. "Это магия."?


"нашёл :))"
Отправлено dr7534 , 12-Июл-11 16:10 
>> не понял , а для чего перед паролем подставлять два 00 ?
> ??? Даже и не знаю, как объяснить. "Это магия."?

а если всёж попробовать хотябы в общих чертах  ?


"разоблачение"
Отправлено Andrey Mitrofanov , 12-Июл-11 16:30 
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\0759' | od -t x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 3d
> 0000040 [U]39[/U]
> 0000041

Сам бы разницу в дампах посмотрел, да? Вот тут д.б.бы быть 00, а его нет.

> $ printf 't2@dracon753.ru\0t2@dracon753.ru\00759' | od -t x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 07
> 0000040 [U]35 39[/U]
> 0000042

И тут нет.

> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | od -vt x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000040 [U]37 35 39[/U]
> 0000043
> $ _

А тут есть. И цифры пароля 37 35 39 в трёх примерах "разные".

> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | recode ../b64

Рассказываю: \00075 парсится (printf-ом -- почему спроси Кернигана), как байт-0 (_восьмеричное число 000), потом символы "7" и "5". Однако же твоё изначальное \0759 парсится как символ "=" (hex 3d, восьм. 075), за ним символ "9".

И да, dovecot (или кто там) на отсутствующий второй ноль говорит -- Invalid input.

$subj. Уже не так интересно, магия умерла.