Openssl 1.1.1g source install on CentOS8
Centos8에서 기본으로 설치되는 openssl version은 1.1.1c 입니다.
1.1.1c의 취약점을 개선한 1.1.1d, e, f는 심각한 취약점이 있으므로 1.1.1g를 설치해보겠습니다.
cve : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1967
KISA 보안 권고 : https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35342
** 지금 설치하는 openssl 1.1.1g는 openssl을 사용하는 어플리케이션들을 위한 설치이며, OS에 기본으로 설치되는 openssl을 교체하기 위한 것이 아닙니다.
** OS에 기본으로 설치되는 openssl을 변경할 경우 의존성 문제로 명령어 및 프로그램들이 제대로 동작하지 않으므로 변경하시면 안 됩니다.
Enviroment
OS : CentOS 8.1
Openssl : 1.1.1g
1. Default Enviroment Setting
$sudo dnf install tar wget $sudo mkdir -p /usr/local/IDC/Src $sudo mkdir -p /usr/local/IDC/Download $sudo mkdir -p /usr/local/IDC/Service $sudo mkdir -p /usr/local/IDC/Data
$sudo dnf install perl
$sudo cd /usr/local/IDC/Download $sudo curl -O https://www.openssl.org/source/openssl-1.1.1g.tar.gz $sudo tar xfpvz openssl-1.1.1g.tar.gz $sudo cd openssl-1.1.1g $sudo make distclean $sudo ./config shared --prefix=/usr/local/IDC/Src/openssl-1.1.1g $sudo make -j$(nproc) $sudo make install
3. Symbolic directory
$sudo cd /usr/local/IDC/Service $sudo ln -s /usr/local/IDC/Src/openssl-1.1.1g/ /usr/local/IDC/Service/openssl
4. Check openssl version
$sudo /usr/local/IDC/Service/openssl/bin/openssl version OpenSSL 1.1.1g 21 Apr 2020 (Library: OpenSSL 1.1.1c FIPS 28 May 2019)
그냥 openssl version을 확인해 보시면 위와 같이 openssl 1.1.1c 라이브러리를 참조하여 사용하고 있는 것으로 보입니다.
이것의 원인은 라이브러리패스가 제대로 잡히지 않아서 발생하는 문제로서 현 session에서의 확인은 다음과 같이 진행을 하면 됩니다.
$sudo export LD_LIBRARY_PATH=/usr/local/IDC/Service/openssl/lib $sudo /usr/local/IDC/Service/openssl/bin/openssl version OpenSSL 1.1.1g 21 Apr 2020
어플리케이션을 1.1.1g로 컴파일 하신 경우에는 systemd 파일에 다음 옵션을 적용해 주시면 됩니다.
[Service] Type=simple Environment=LD_LIBRARY_PATH=/usr/local/IDC/Service/openssl/lib
CentOS 8 openssl 교체는 대단히 위험합니다. 참조 https://github.com/openssl/openssl/issues/11471 제한적 적용 해야 합니다.
당연히 의존성 문제 때문에 기존 openssl을 교체를 하면 안됩니다.
그래서 맨 하단에 어플리케이션에 저 openssl버전을 적용하기 위한 systemd 환경설정 정보를 서술하였습니다.
그리고 RHEL(CentOS) openssl-1.1.1c-15.el8 은 2020년까지 공개된 CVE에 대한 취약점 보완이 된 패키지입니다.
말씀하신 openssl-1.1.1c-15.el8은 2020년 3월까지의 cve의 패치가 적용된 버전이고 1.1.1g를 적용한 이유는 2020년 4월 22일에 나온 cve 패치를 적용하기 위해서 입니다.
직접 컴파일한 openssl 라이브러리 적용한 쉘에선 rpm, dnf, su, sudo, password 명령어 에러 발생합니다.
의존성 문제 때문에 openssl을 컴파일 설치하더라도 기존 openssl을 변경하지 않습니다.
export의 경우는 제대로 적용되었는지 보여주기 위해 설정 한 것일 뿐입니다.
그래서 하단에 어플리케이션에서 openssl을 적용하기 위한 방법을 서술하였으며,
기존의 openssl을 변경하는 과정은 서술하지 않았습니다.
기존에는 OS의 openssl변경을 하지 말라는 경고 문구가 없어서 오해의 소지가 있기에 경고 문구를 추가하였습니다.
감사합니다.