[OpenSSL 취약점] HeartBleed 문제 해결하기 (feat. CentOS)

wannabeing·2024년 5월 14일
0

알쓸코잡

목록 보기
18/18
post-thumbnail

오래된 서버에 OpenSSL 취약점 공격이 감지되었다고 한다.
문제 해결방법은 영향받지 않는 버전으로 업데이트하기!

  • 영향받는 버전 
    OpenSSL 1.0.1 ~ OpenSSL 1.0.1f
    OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1
  • 영향받지 않는 버전
    OpenSSL 1.0.1g
    OpenSSL 1.0.0대 버전
    OpenSSL 0.9.8대 버전

보통 1.0.1g 버전으로 많이 업데이트하므로 1.0.1g로 업데이트를 진행해보자!


1. 필요한 패키지 설치

sudo yum groupinstall 'Development Tools'
sudo yum install wget perl coreutils

두 명령어를 통해 필요한 패키지를 설치하자.


2. OpenSSL 1.0.1g 다운로드

cd 다운로드 받을 경로
wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -xzvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g

다운로드 받을 경로로 이동해서 다운로드 이후 압축을 풀고 해당 폴더 안으로 이동하자.


3. OpenSSL 컴파일 및 설치

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
sudo make install

OpenSSL을 /usr/local/ssl 경로에 컴파일 및 설치한다.
기존 경로에 설치가 되어있다면 경로를 바꿔도 무방

zlib 관련 에러 발생 시

c_zlib.c:767: error: ‘BIO_ZLIB_CTX’ has no member named ‘obuf’
c_zlib.c:768: error: ‘BIO_ZLIB_CTX’ has no member named ‘obuf’
c_zlib.c:770: error: ‘BIO_ZLIB_CTX’ has no member named ‘obufsize’
make[2]: *** [c_zlib.o] 오류 1
make[2]: Leaving directory `/root/openssl-1.0.1g/crypto/comp'
make[1]: *** [subdirs] 오류 1
make[1]: Leaving directory `/root/openssl-1.0.1g/crypto'
make: *** [build_crypto] 오류 1

위와 같은 에러가 발생한 이유는 zlib 라이브러리가 설치되어 있지 않기 때문이라고 한다.
sudo yum install zlib-devel 명령어를 통해 라이브러리 설치 후, 다시 컴파일 및 설치를 진행해보자.


4. 환경변수 설정

sudo vi /etc/profile.d/openssl.sh
// /etc/profile.d/openssl.sh
export PATH=/usr/local/ssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH

OpenSSL 환경변수 값을 설정(수정)하자
기존 파일이 없어서 생성할 수도 있음

source /etc/profile.d/openssl.sh

위 명령어로 수정한 환경변수 값을 저장한다.


5. OpenSSL 라이브러리 경로 설정

sudo sh -c "echo '/usr/local/ssl/lib' > /etc/ld.so.conf.d/openssl-1.0.1g.conf"
sudo ldconfig -v

두 명령어를 통해 라이브러리 경로를 설정한다.


6. 업데이트 된 OpenSSL 버전 확인

openssl version

1.0.1g 버전으로 업데이트 되었는지 확인!

참고

profile
wannabe---ing

0개의 댓글