Haveged (Русский)
haveged — проект, разрабатывающий простой в использовании и непредсказуемый генератор случайных чисел (англ.), основанный на алгоритме HAVEGE. Haveged был создан для предотвращения низкого уровня энтропии в устройстве Linux для генерации случайных чисел, что может произойти при некоторых рабочих нагрузках, особенно на headless-серверах.
Просмотр доступной энтропии
Если вы не уверены в необходимости haveged, запустите следующую команду:
# cat /proc/sys/kernel/random/entropy_avail
Эта команда покажет количество собранной на сервере энтропии. Если её довольно мало (<1000), то, вероятно, стоит установить haveged. Иначе криптографические приложения будут блокироваться (англ.) до тех пор, пока не появится достаточно энтропии. К примеру, может снизится скорость беспроводного соединения в случае, если сервер используется в качестве программной точки доступа.
Воспользуйтесь этой командой снова, чтобы проверить, насколько haveged увеличил пул энтропии после установки.
Альтернативы
Если у вас нет определённой причины не доверять каким-либо аппаратным генераторам случайных чисел в вашей системе, вы должны сначала попробовать использовать их с rng-tools и если этого окажется недостаточно (или у вас нет доступного аппаратного генератора случайных чисел), тогда используйте haveged.
Виртуальные машины
Как обсуждалось в Is it appropriate to use haveged as a source of entropy on virtual machines?(англ.), качество энтропии, генерируемой haveged, может быть спорным в виртуальной среде. Haveged полагается на инструкцию rdtsc, которая может быть виртуализирована, из-за чего понизится уровень энтропии. В некоторых гипервизорах есть возможность отключить виртуализацию rdtsc, что, в теории, позволит haveged более качественно генерировать энтропию.
Чтобы отключить виртуализацию инструкции rdtsc в VMware ESXi, добавьте параметр monitor_control.virtual_rdtsc = "FALSE"
в конфигурационный файл .vmx виртуальной машины. VMware рекомендует использовать данный параметр в случаях измерений, для которых требуется надёжный источник реального времени в виртуальной машине.
Смотрите также
- Официальный веб-сайт (англ.)
- Статья DigitalOcean по настройке haveged (англ.)