목차
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)
'CentOS and Redhat Linux > 보안설정' 카테고리의 다른 글
(Linux) CentOS7 방화벽(firewalld) 설정 (1) | 2023.11.20 |
---|---|
(CentOS7) 리눅스 Logrotate 기능(2) (0) | 2023.07.14 |
(CentOS7) 리눅스 Logrotate 기능(1) (0) | 2023.07.14 |