오래된 서버에 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로 업데이트를 진행해보자!
sudo yum groupinstall 'Development Tools'
sudo yum install wget perl coreutils
두 명령어를 통해 필요한 패키지를 설치하자.
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
다운로드 받을 경로로 이동해서 다운로드 이후 압축을 풀고 해당 폴더 안으로 이동하자.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
sudo make install
OpenSSL을 /usr/local/ssl
경로에 컴파일 및 설치한다.
기존 경로에 설치가 되어있다면 경로를 바꿔도 무방
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
명령어를 통해 라이브러리 설치 후, 다시 컴파일 및 설치를 진행해보자.
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
위 명령어로 수정한 환경변수 값을 저장한다.
sudo sh -c "echo '/usr/local/ssl/lib' > /etc/ld.so.conf.d/openssl-1.0.1g.conf"
sudo ldconfig -v
두 명령어를 통해 라이브러리 경로를 설정한다.
openssl version
1.0.1g 버전으로 업데이트 되었는지 확인!