Como eu determino O patch mais recente do OpenSSL está instalado?

2

Esta postagem trata da aplicação do patch mais recente do OpenSSL para proteger nosso tráfego da Web da porta 443, não usando o ssh para fazer login nesses sistemas.

Eu obtive e obtive o último patch de fonte de tarball do OpenSSL openssl-1.0.1g.tar.gz de aqui para minha estação de trabalho Linux executando o CentOS 6.5, e construiu o patch, incluindo

./config; make; make test; make install # as root

Instalado em /usr/local/ssl .

Eu queria provar o patch em um local seguro antes de aplicá-lo em nossos sistemas de produção. No entanto, depois de executar tudo, estou perplexo. O

./config, make, make test, and make install

etapas concluídas sem erros.

Como posso verificar se o OpenSSL mais recente está instalado?

Aqui está o resultado da versão de teste de várias respostas:

openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr  8 02:33:43 UTC 2014
platform: linux-elf
    
por octopusgrabbus 24.04.2014 / 16:16

3 respostas

5

Preâmbulo: Conforme observado na pergunta, o openssl é instalado por padrão em /usr/local/ssl . Minha recomendação é usar ./config --prefix=/usr/local shared (observe o espaço antes de "compartilhado") para que ele seja instalado lá (e construa a biblioteca compartilhada, libssl ), em vez de seu próprio subdiretório particular. Se você não fizer isso, terá que adicionar um arquivo a /etc/ld.so.conf.d com /usr/local/ssl/lib (veja abaixo a importância dos arquivos /etc/ld.so.conf.d ) e adicionar /usr/local/bin a $PATH .

Você precisará executar ldconfig após make install para adicionar as bibliotecas ao cache do vinculador. Se isso não funcionar, continue a ler.

make install provavelmente, por padrão, foi para /usr/local , o que deve ter precedência, mas não pode. Assim, você pode deixar a instalação openssl da sua distribuição para evitar mexer com o gerenciador de pacotes e os pré-requisitos, mas ainda usar sua própria versão localmente construída como padrão. Para verificar:

ldd $(which ssh) | grep libssl

Se você não obtiver nenhuma saída, seu ssh foi vinculado estaticamente e precisa ser reconstruído (veja a resposta de Anton). Caso contrário, isso deve apontar para sua versão /usr/local . Se apontar para outra coisa:

ldconfig -p | grep libssl

A versão /usr/local deve ser mostrada, mas depois de outra. Se sim, pule para "/ usr / local / lib não tem precedência" abaixo. Caso contrário, verifique se /usr/local está no caminho do vinculador em geral:

ldconfig -p | grep "/usr/local"

Se não, grep -r "/usr/local" /etc/ld.so.conf.d . Se não estiver lá, adicione um arquivo a /etc/ld.so.conf.d chamado 00-local.conf com uma linha:

/usr/local/lib

Execute ldconfig (sem opções) e repita isso novamente.

/ usr / local / lib não tem precedência

Encontre o arquivo de configuração do cache do vinculador onde o caminho é adicionado:

grep -r "/usr/local" /etc/ld.so.conf.d

Se não estiver lá, você terá que adicionar um arquivo como explicado acima. Presumindo que seja, o problema é que os arquivos são processados lexicograficamente. Por exemplo, se o conteúdo de /etc/ld.so.conf.d for:

addtheselibraries.conf
libc.conf

E libc.conf contém /usr/local/lib , mas addtheselibraries.conf contém, por ex. /usr/lib , 1 então o último terá precedência. Se o arquivo /usr/local/lib não contiver mais nada, basta renomeá-lo com algo que substituirá os outros arquivos; números vão primeiro, então 000-whatever é bom.

Como você tem controle total sobre /usr/local/lib , ele deve ter precedência sobre os caminhos usados pelo gerenciador de pacotes de distribuição (e geralmente faz).

1. / usr / lib é um padrão compilado no linker, mas ele e outros locais padrão do sistema (/ lib, etc) são adicionados last , o que permite que você os substitua. Por causa disso, às vezes (por exemplo) /usr/lib é adicionado a um arquivo .conf para fazer com que ele substitua algum outro arquivo .conf.

    
por 24.04.2014 / 16:39
4
openssl version -a

O comando acima lhe dará a versão do openssl no sistema. Verifique a data de construção em vez da data na primeira linha.

    
por 24.04.2014 / 16:21
1

Você terá que recompilar o openssh, baixando a fonte incluindo a fonte openssl na árvore de código-fonte e executando ./config; make; make install para openssh também.

Instruções detalhadas sobre como compilar o openssh podem ser encontradas no documento INSTALL

    
por 24.04.2014 / 16:22