Рекомендуемые настройки mod_ssl |
|
Написал Ярослав Гасов
|
16.10.2009 |
В Apache 2.0.52 существует более 30 директив, используемых для настройки mod_ssl. Подробное описание их всех можно найти в Apache's mod_ssl documentation. Рекомендуемые настройки: Директива (ы) | Рекомендуемая настройка или комментарий | SSLEngine | Должна быть включена, иначе главный сервер (или виртуальный хост) не будет поддерживать SSL/TLS. | SSLRequireSSL | Должна быть включена, иначе пользователи смогут получать доступ к веб-контенту через обычные HTTP-запросы, в обход SSL/TLS. | SSLProtocol SSLProxyProtocol | Следует настроить на использование только TLS v1.0 и SSL v3.0. Большинство новых веб-браузеров поддерживают оба протокола, т.е. мы можем уверенно отключить SSL v2.0. | SSLCipherSuite SSLProxyCipherSuite | Для обеспечения сильной криптографии этот параметр следует установить в режим HIGH (>168 бит) и MEDIUM (128 бит). LOW (<56 бит) и NULL (без шифрования) следует отключить. Кроме того, рекомендуется отключить все алгоритмы шифрования, которые поддерживают анонимную аутентификацию (aNULL). Опционально, если мы хотим обеспечить работоспособность браузеров, которые не справляются с сильным шифрованием, нам следует включить EXPORT (56-битный и 40-битный) алгоритм шифрования. Последнее, что нужно поправить, это предпочтительное использование SHA1 перед MD5. Итак, рекомендуемые настройки могут выглядеть следующим образом: HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM Мы можем просмотреть какие алгоритмы шифрования поддерживают предполагаемые настройки: openssl ciphers -v 'HIGH:MEDIUM:\!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM' | SSLOptions | Опции "+StrictRequire" следует установить, иначе директива "Satisfy Any" может позволить получить доступ к веб-контенту, даже если не используется SL/TLS. | SSLRandomSeed | Для запуска Apache следует установить в режим использования псевдо случайного устройства (/dev/urandom) и/или EGD (Entrophy Gathering Daemon). Перед установкой каждого нового SSL-соединения, оно должно быть сконфигурировано на использование встроенного источника, /dev/urandom или EGD. Не рекомендуется использовать /dev/random в обоих случаях. | SSLSessionCache | Во избежание повторяющихся SSL «рукопожатий» для параллельный HTTP запросов (например, когда веб браузер загружает несколько картинок одновременно), должно быть разрешено SSL кэширование. Стоит установить режим совместного использования памяти (SHM - shared memory) или DBM. Если установить значение в "none", производительность веб-сервера резко снизится. | SSLSessionCacheTimeout | Это значение указывает - сколько секунд должно пройти до истечения SSLSessionCache. Следует поставить хотя бы 300-600 секунд. Однако в действительности это время должно зависеть от того, сколько времени пользователи находятся на веб-сервере. К примеру, максимальное время – 15 минут, тогда как значение должно быть выставлено в 900 (15 минут * 60 секунд). | SSLVerifyClient SSLProxyVerify | Без использования аутентификации клиента или прокси, этим опциям следует присвоить значение "none". Никогда не устанавливайте значение "optional_no_ca", т.к. это будет противоречить идее PKI аутентификации, когда для аутентификации клиента должен присутствовать только нормальный сертификат. Можно выбрать "optional" (зависит от индивидуальных потребностей), но возможны глюки с некоторыми веб браузерами. | SSLVerifyDepth SSLProxyVerifyDepth | Должно содержать максимальное число промежуточных CA. Например, для принятия только самоподписанных сертификатов, подписанных root’ом CA – должно быть 1. И так далее. | SSLProxyEngine | Следует отключить, если не используется SSL/TLS прокси-механизм. |
Источник: http://www.securitylab.ru/analytics/240126.php
|
Последнее обновление ( 16.10.2009 )
|