Bug 6903

Summary: APOP data coming from /dev/random
Product: Sisyphus Reporter: Sir Raorn <raorn>
Component: libsasl2Assignee: Sergey Y. Afonin <asy>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2 CC: algor, solo
Version: unstable   
Hardware: all   
OS: Linux   

Description Sir Raorn 2005-05-19 15:08:15 MSD
Сервер.  Без клавиатуры-мыши.  cyrus-imapd с включеным APOP.

В один прекрасный момент обнаружилось что pop3 не работает вообще.  Долгие
выяснения причин привели к /dev/random из которого ничего не читалось. 
Естественных источников энтропии (таких как клавиатура и/или мышь) на сервере
нет и не планируется.  Отключение APOP помогло.

Есть мнение, что для APOP не нужны таки уж очень случайные числа, /dev/urandom
должно хватить (и он тоже читается!), особенно если принять, что на почтовых
серверах мыши и клавиатуры отсутствуют как класс.

Последние строки процесса в strace:

open("/dev/random", O_RDONLY)           = 10
read(10,  <unfinished ...>

14:09 <raorn> vsu: что могло с /dev/random случиццо?
14:09 <vsu> raorn: высосали из него всё...
14:10 <raorn> vsu: и что делать?
14:11 <vsu> 162 bytes (162 B) copied, 9,7423 seconds, 0,0 kB/s
14:11 <vsu> raorn: ждать, пока наберётся
14:12 <vsu> raorn: а без клавиатуры и мыши набирается весьма медленно
14:16 <vsu> raorn: багу повесь на этот цирроз
14:17 <vsu> raorn: с указанием в http://www.modssl.org/docs/2.8/ssl_faq.html#random
Comment 1 Sir Raorn 2005-05-19 15:58:54 MSD
При правах на /dev/random отличных от 600 умирает всё криптование в cyrus - TLS,
CRAM-MD5...
Comment 2 algor 2005-05-19 17:50:38 MSD
насколько я понимаю, это лечится пересборкой с:   
--with-devrandom=/dev/urandom   
на "Сервер.  Без клавиатуры-мыши.  cyrus-imapd с включеным APOP." пересборка 
помогла. права на /dev/random вернул обратно на 644. всё работает.  
Comment 3 Alexei Takaseev 2005-05-21 11:56:17 MSD
Весьма странно. У меня три сервера без клавиатуры-мыши с поддержкой pop3s/imaps
и таких проблем не возникало.

2.2.12-alt3 пересобран с /dev/urandom
Comment 4 Sergey Y. Afonin 2008-05-01 17:30:25 MSD
Опять с /dev/random собрано. Кстати, а почему devel ?

$rpm -qf /usr/lib/libsasl2.so
libsasl2-devel-2.1.22-alt2
Comment 5 Sergey Y. Afonin 2008-05-01 17:32:52 MSD
И перевешу заодно.
Comment 6 Sir Raorn 2008-05-01 17:41:22 MSD
(In reply to comment #4)
> Кстати, а почему devel ?
> $rpm -qf /usr/lib/libsasl2.so

Всё правильно, у неё же SONAME есть.
Comment 7 Sergey Y. Afonin 2008-05-02 23:04:20 MSD
> Всё правильно, у неё же SONAME есть.

Так soname у всех so есть, как я думал... :-)

Тут ещё момент непонятный - фраза "2.2.12-alt3 пересобран с /dev/urandom" от
2005г, когда, даже сейчас, всё ещё 2.1.x. Или это с Cyrus-IMAP попутана версия ?
Comment 8 Andrey Rahmatullin 2008-05-02 23:16:06 MSD
(In reply to comment #7)
> > Всё правильно, у неё же SONAME есть.
> 
> Так soname у всех so есть, как я думал... :-)
Да, у всех. И у всех файлы *.so лежат в lib*-devel, что тут странного?
Comment 9 Sergey Y. Afonin 2008-05-03 00:45:58 MSD
(In reply to comment #4)
> Опять с /dev/random собрано.

Возможно, стоит не пересобирать, а сделать зависимость на rng-tools и прописать
"chkconfig rngd on" в %post.
Comment 10 Vladimir V. Kamarzin 2008-05-04 08:40:14 MSD
cyrus-sasl2 собран с /dev/random, cyrus-imapd - с /dev/urandom.
cyrus-sasl2 тоже соберу с /dev/urandom
Comment 11 Sergey Y. Afonin 2008-05-07 12:37:42 MSD
Получается, что, раньше, cyrus-imapd сам туда лазил, а, теперь, через sasl ?
Вообще, rngd мне помог, с тех пор работает.
Comment 12 Vladimir V. Kamarzin 2008-05-12 22:50:17 MSD
Fixed in 2.1.22-alt3.cvs.20080125