본문 바로가기
CentOS and Redhat Linux/보안설정

(CentOS7) OpenSSL 버전 업그레이드

by 미니몬 2023. 7. 10.

목차

    728x90
    반응형

    Summary

    이 게시물에서는 CentOS7 버전의 서버에서 사용되는 openssl 의 개념에 대해 간단히 설명하고 버전을 변경하는 절차에 대해 설명합니다.

     

    What  is OpenSSL?

    OpenSSL 이란 암호화 및 보안 프로토콜을 구현하는 오픈 소스 라이브러리입니다. 이 라이브러리는 다양한 보안 기능을 제공하여 데이터의 암호화, 복호화, 디지털 서명, 인증서 관리 등을 수행할 수 있습니다. openssl TLS(Transport Layer Security) 및 SSL(Secure Sockets Layer)과 같은 프로토콜의 구현에 주로 사용됩니다.

    리눅스 운영 체제에서는 openssl 라이브러리를 사용하여 보안 관련 작업을 처리합니다. openssl을 사용하여 암호화, 복호화, 디지털 서명 등의 작업을 수행할 수 있으며, 네트워크 통신에서 TLS/SSL 암호화를 구현하기 위해 사용됩니다.

    openssl은 암호화 알고리즘(예: AES, RSA), 해시 함수(예: SHA-256, MD5), 디지털 서명(예: RSA 서명), 인증서 관리(예: X.509 인증서) 등 다양한 암호화와 보안 관련 기능을 제공합니다. 이러한 기능은 데이터의 기밀성, 무결성, 인증, 안전한 통신 등을 보장하기 위해 사용됩니다.

    리눅스에서 openssl은 명령행 인터페이스와 API를 통해 사용할 수 있습니다. 명령행 인터페이스는 openssl 명령어를 사용하여 다양한 보안 작업을 수행할 수 있는 방법을 제공합니다. 또한, C 언어를 비롯한 다양한 프로그래밍 언어에서 openssl API를 사용하여 보안 기능을 직접 구현할 수 있습니다.

    openssl은 오픈 소스 프로젝트로서 활발한 개발 및 업데이트가 이루어지고 있으며, 다양한 운영 체제에서 사용할 수 있습니다. 이러한 특징으로 openssl은 보안 관련 작업을 수행하는 데 중요하고 신뢰할 수 있는 도구로 사용되고 있습니다.

     

     

     

    How can I change the OpenSSL version?

    0. OpenSSL tar 파일 다운로드 :

    https://www.openssl.org/source/old/

    위 링크를 클릭하면 아래와 같은 화면이 나오는데 원하는 버전을 찾아 다운로드 받으면 됩니다.

    다운로드 받은 파일을 설치할 서버에 업로드 해주면 준비 입니다!

     

    1. 현재 OpenSSL 버전 확인 :

    [root@test ~]# cd /tmp
    [root@test tmp]# ls -al |\grep openssl
    drwxr-xr-x. 20 root root    4096  7월 12 12:35 openssl-1.0.2p
    -rw-r--r--.  1 root root 5338192  7월 10 08:29 openssl-1.0.2p.tar.gz
    
    [root@test tmp]# which openssl
    /usr/bin/openssl
    
    [root@test tmp]# ls -al /usr/bin/openssl
    -rwxr-xr-x. 1 root root 555280  3월 23  2022 /usr/bin/openssl
    
    [root@test tmp]# openssl version
    OpenSSL 1.0.2k-fips  26 Jan 2017

     

    2. 기존 링크 파일 백업 :

    [root@test tmp]# cp /usr/bin/openssl /usr/bin/openssl_1.0.2k
    [root@test tmp]# ls -al /usr/bin/openssl*
    -rwxr-xr-x. 1 root root 555280  3월 23  2022 /usr/bin/openssl
    -rwxr-xr-x. 1 root root 555280  5월 30 13:06 /usr/bin/openssl_1.0.2k

    기존의 OpenSSL 실행 파일을 백업하고, 백업된 파일이 있는지 확인합니다.

     

     

    3. 압축 해제 후 설치 :

    [root@test tmp]# tar xzvf openssl-1.0.2p.tar.gz
    ...생략...
    
    [root@test tmp]# ls -al |\grep openssl
    drwxr-xr-x. 20 root root    4096  7월 12 12:35 openssl-1.0.2p
    -rw-r--r--.  1 root root 5338192  7월 10 08:29 openssl-1.0.2p.tar.gz
    
    [root@test tmp]# cd openssl-1.0.2p
    [root@test openssl-1.0.2p]# ./config
    ...생략...
    
    [root@test openssl-1.0.2p]# make
    ...생략...
    
    [root@test openssl-1.0.2p]# mv /usr/local/openssl /usr/local/openssl_1.0.2k
    [root@test openssl-1.0.2p]# ls -al /usr/local | \grep openssl
    lrwxrwxrwx.  1 root root  30  7월 10 08:49 openssl_1.0.2k -> /usr/local/ssl/include/openssl
    [root@test openssl-1.0.2p]# make install
    ...생략...

    OpenSSL 압축 파일을 해제하고, 압축 해제된 디렉토리로 이동하여 config, make, make install 명령을 실행합니다. 

    설치가 완료된 후 기존 사용중인 링크 파일을 /usr/local/openssl_1.0.2k 와 같이 기존 이름으로 백업 합니다. 

     

     

    4. 링크 파일 생성 :

    [root@test openssl-1.0.2p]# rm /usr/bin/openssl
    rm: remove 일반 파일 '/usr/bin/openssl'? y
    
    [root@test openssl-1.0.2p]# ln -sf /usr/local/ssl/include/openssl /usr/local/openssl
    [root@test openssl-1.0.2p]# ln -sf /usr/local/ssl/bin/openssl /usr/bin/openssl
    
    [root@test openssl-1.0.2p]# ls -al /usr/local/openssl
    lrwxrwxrwx. 1 root root 30  7월 12 12:55 /usr/local/openssl -> /usr/local/ssl/include/openssl
    
    [root@test openssl-1.0.2p]# ls -al /usr/bin/openssl
    lrwxrwxrwx. 1 root root 26  7월 12 12:55 /usr/bin/openssl -> /usr/local/ssl/bin/openssl

    이제 기존 openssl 바이너리를 삭제하고, 새롭게 빌드된 openssl 바이너리의 링크를 생성합니다.

     

     

    5. 변경된 버전 확인 :

    [root@test openssl-1.0.2p]# openssl version
    OpenSSL 1.0.2p  14 Aug 2018

    변경된 OpenSSL의 새 버전을 확인합니다.


    위의 절차를 따라 OpenSSL 버전을 변경할 수 있습니다. 하지만 이 작업은 시스템에 영향을 줄 수 있으므로 신중하게 진행해야 합니다. 또한, 필요에 따라 추가적인 설정이나 조치가 필요할 수 있으니 해당 시스템의 환경과 요구 사항을 고려하여 진행해 주시기 바랍니다. 

     

     

    추가로 아래 명령어로 OpenSSL 라이브러리가 종속되어 있는 라이브러리를 확인할 수 있습니다.

    [root@test bin]# which openssl
    /usr/bin/openssl
    [root@test bin]# ldd `which openssl`
            linux-vdso.so.1 =>  (0x00007fffcd2b2000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007f1ce47d3000)
            libc.so.6 => /lib64/libc.so.6 (0x00007f1ce4405000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f1ce49d7000)

     

    728x90
    반응형