Безопасность и оптимизация Linux.Редакция для Red Hat

       

Компиляция и оптимизация.


Перейдите в новый Openssl каталог и введите следующие команды на вашем терминале:

Шаг 1

Редактируйте файл c_rehash (vi +11 tools/c_rehash) и измените следующую строку:

DIR=/usr/local/ssl

Должен быть:

DIR=/usr

Изменение этой строки будет создавать и инсталлировать OpenSSL в “/usr”.

Шаг 2

По умолчанию, исходные файлы OpenSSL предполагают что Perl расположен в каталоге “/usr/local/bin/perl”. Мы должны модифицировать строку “#!/usr/local/bin/perl” во всех скриптах, которые зависят от perl, на месторасположение Perl в Red Hat Linux - “/usr/bin”.

[root@deep openssl-0.9.5a]# perl util/perlpath.pl /usr/bin (где находится ваша программа perl).

Шаг 3

OpenSSL должен знать где находится необходимые OpenSSL исходные библиотеки. Командой приведенной ниже, мы устанавливаем переменную окружения PATH в каталог по умолчанию, где мы разместили исходные файлы OpenSSL.

[root@deep openssl-0.9.5a]# export LD_LIBRARY_PATH=`pwd`





Шаг 4

Сейчас, мы должны сконфигурировать OpenSSL под нашу систему:

CC="egcs" \

./Configure linux-elf -DSSL_FORBID_ENULL \

--prefix=/usr \

--openssldir=/etc/ssl

ЗАМЕЧАНИЕ. Опция “-DSSL_FORBID_ENULL” нужна, чтобы запретить нулевое шифрование из соображений безопасности.

Шаг 5

Редактируйте файл Makefile.ssl (vi +50 Makefile.ssl) и внесите следующие изменения:

CC= gcc

Должен быть:

CC= egcs

Редактируйте файл Makefile.ssl (vi +52 Makefile.ssl) и добавьте/измените следующие строки:

CFLAG= -DTHREADS -D_REENTRANT -DSSL_FORBID_ENULL -DL_ENDIAN -DTERMIO -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM

Редактируйте файл Makefile.ssl (vi +79 Makefile.ssl) и измените следующее значение для процессора Pentium Pro:

PROCESSOR= 686

ЗАМЕЧАНИЕ. Три последние модификации выполненные нами устанавливают оптимизационные флаги для компиляции OpenSSL на сервере. Последняя модификация (PROCESSOR=), если у вас Pentium, то измените на 586, Pentium Pro/II/III на 686, a 486 на 486.

Шаг 6


Редактируйте файл Makefile.ssl (vi +161 Makefile.ssl) и измените следующую строку:

MANDIR=$(OPENSSLDIR)/man

Должна быть:

MANDIR=/usr/man

Этот шаг нужен для определения каталога, куда будут проинсталлированы страницы руководства (man pages) OpenSSL. В нашем случае это каталог “/usr/man”.

Шаг 7

Сейчас мы должны скомпилировать и инсталлировать OpenSSL на сервере:

[root@deep openssl-0.9.5a]# make -f Makefile

[root@deep openssl-0.9.5a]# make test

[root@deep openssl-0.9.5a]# make install

[root@deep openssl-0.9.5a]# mv /etc/ssl/misc/* /usr/bin/

[root@deep openssl-0.9.5a]# rm -rf /etc/ssl/misc/

[root@deep openssl-0.9.5a]# rm -rf /etc/ssl/lib/

[root@deep openssl-0.9.5a]# rm -f /usr/bin/CA.pl

[root@deep openssl-0.9.5a]# rm -f /usr/bin/CA.sh

[root@deep openssl-0.9.5a]# install -m 644 libRSAglue.a /usr/lib/

[root@deep openssl-0.9.5a]# install -m 644 rsaref/rsaref.h /usr/include/openssl/

[root@deep openssl-0.9.5a]# strip /usr/bin/openssl

[root@deep openssl-0.9.5a]# mkdir -p /etc/ssl/crl

Команда "make -f" создаст библиотеки OpenSSL (libcrypto.a и libssl.a) и двоичный файл "openssl". Библиотеки будут созданы в каталоге верхнего уровня, а двоичный файл в каталоге "apps". После успешного создания, команда "make test" будет тестировать библиотеки и в заключении "make install" создаст инсталляционный каталог и инсталлирует OpenSSL.

Команда “mv” переместит все файлы из “/etc/ssl/misc/” в каталог “/usr/bin/”. Эти файлы двоичные и должны располагаться в “/usr/bin/”, так как там находятся все исполняемые файлы вашей системы. Также размещение их в этом каталоге поместит их в поле действия переменной окружения PATH.

Команда “rm” удалит каталоги “/etc/ssl/misc/” и “/etc/ssl/lib/” из вашей системы, так как они сейчас располагаются в другом месте. Также, мы удаляем файлы “CA.pl” и “CA.sh”, представляющие из себя небольшие скрипты для создания ваших собственных CA сертификатов. Эти скрипты, связанные с “openssl ca” командами, имеют несколько странные требования, и по умолчанию конфигурация OpenSSL не позволяет вам легко напрямую использовать “openssl ca”.Так, что мы создадим скрипт “sign.sh” позже, чтобы заменить их.

ЗАМЕЧАНИЕ. Пакет bc-1.05a-4.i386.rpm или новее должен быть уже проинсталлирован на вашем Linux сервере или вы получите сообщение об ошибке во время тестирования библиотек OpenSSL.


Содержание раздела