Назад | Перейти на главную страницу

Попытка уменьшить застревание в Apache 2.2.16

Я пытаюсь следовать инструкциям, расположенным Вот для смягчения уязвимости, связанной с застреванием, однако я продолжаю получать следующую ошибку из appache:

Syntax error on line 18 of /etc/apache2/sites-enabled/000-default:
Invalid command 'SSLOpenSSLConfCmd', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.

Когда я добавляю в конфиг следующую строку:

SSLOpenSSLConfCmd DHParameters /etc/ssl/certs/dhparams.pem

Сведения о моем приложении:

Server version: Apache/2.2.16 (Debian)
Server built:   Oct 16 2014 10:27:58
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.4.2, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Я искал, но не могу найти способ решить эту проблему.

также apache 2.2.22 (debian 7) Я также удалил проблемные шифры один за другим, согласно тесту qualys ssl labs https://www.ssllabs.com/ssltest/index.html сейчас проходит, только WinXP / IE6 несовместим

Шифр, который я использовал:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA

это основано на рекомендации от https://weakdh.org/sysadmin.html но удаление dh-шифров, которые тест пометил как проблемные

Из Документация Apache, то SSLOpenSSLConfCmd опция была добавлена ​​в версии 2.4.8:

Совместимость: доступно в httpd 2.4.8 и новее, при использовании OpenSSL 1.0.2 или новее.

Если вам нужно использовать эту опцию, вам нужно будет обновить Apache до более поздней версии.

Параметр конфигурации "SSLOpenSSLConfCmd" не работает для Apache 2.2 и не предоставляет для этого аналогичных параметров конфигурации. Хотя есть обходной путь для Apache 2.2, пока не будет официального патча: https://bitbucket.org/snippets/wneessen/grb8

У меня apache 2.2.22 (Debian), и теперь я использую следующий CipherSuite, который работает для большинства современных браузеров, поскольку в нем отсутствует DH:

SSLCipherSuite ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AES:RSA+3DES:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!ADH:!AECDH:!MD5:!DSS:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

Я избегаю застревания на сервере apachet 2.4, но с openssl 1.0.1, используя это

SSLProtocol -all +TLSv1 +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AES:RSA+3DES:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!ADH:!AECDH:!MD5:!DSS:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

Затем я создаю дхпарам

openssl dhparam -out dhparams.pem 2048
chmod 600 dhparams.pem

и добавить в сертификат

cat /etc/ssl/certs/dhparams.pem >> /etc/ssl/certs/serverhttp.crt 

перезагрузить apache

apachectl -k graceful

И проверьте это с помощью инструмента в этом сайт или с помощью Nmap

nmap --script ssl-enum-ciphers -p 443 yourserver |grep weak

В Apache httpd 2.4.7 и ранее:

Эфемерный / анонимный DH ([EC] DHE, обеспечивающий совершенную прямую секретность) будет вычисляться автоматически из стандартизованных простых чисел DH (параметров), размер которых основан на модуле сертификата сервера (а именно 2048/3072/4096/6144/8192, или по-прежнему 1024, если сертификат - не рекомендуется - 1024 бит).

Источник

В основном это говорит, что Apache <2.4.7 будет использовать параметры DH той же длины, что и длина модуля сертификата., хотя у меня есть Apache & mod_ssl 2.2.15 с сертификатом 2048, для которого тест указывает, что он использует «Обычный 1024-битный простой» для DHE.

С другой стороны, в документации Apache 2.2 говорится, что mod_ssl <2.2.30 не может использовать длину ключа> 1024:

Начиная с версии 2.2.30, mod_ssl будет использовать параметры DH, которые включают простые числа длиной более 1024 бит.

Используемый CipherSuite обозначен Генератор конфигурации Mozilla:

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

Мне помогли шифры greenone83! Я перехожу с B на SSL Qualys Labs на A.

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA