이전 글(구글 클라우드 플랫폼(GCP)에 OpenVPN 서버 구축(3) : 소스 컴파일 설치)에 이어서 쓰는 글입니다.

( 우분투 데스크톱(GUI) 홈서버 OpenVPN 설치 확인 방법 글에서 넘어왔을 수도 있습니다.)

 

※ 배경 지식

 

RSA(Rivest Shamir Adleman)는 공개키(public-key) 알고리즘 기반의 암호화 방식입니다.
공개키 알고리즘의 구성요소는 공개키(public-key)와 개인키(private key)입니다. 쌍으로 묶여 있지요.
공개키는 불특정 다수에게 배포하고, 이 공개키로 암호화 해달라고 부탁하면 됩니다.
공개키로 암호화된 데이터는 해당 공개키로 복호화할 수 없고, 오로지 개인키(private-key)로만 풀 수 있습니다.

(반대로 개인키로 암호화한 내용은 매칭된 공개키로만 복호화할 수 있습니다.)
개인키는 한사람만 가지고 있어야 하겠죠? 개인키를 소유한 사람이라면 누구든지 공개키를 풀 수 있을테니.
(결국, 대칭키 암호화 방식과 공개키 암호화 방식은 구동 방식이 다를 수밖에 없겠지요?)

 

RSA 암호화에 대해 자세히 알고 싶은 분은 아래의 두 링크를 참고하시고...

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

https://ko.wikipedia.org/wiki/RSA_암호

(재미삼아 보려면 나무위키 : https://namu.wiki/w/RSA 암호화 )

 

제가 이 글을 왜 쓰고 있을까요?

 

 

Easy RSA는 공개키-개인키 쌍을 쉽게 관리(생성/폐기)할 수 있게 도와주는 유틸리티입니다.
독자적인 설계로 작동하는 것은 아니고, 백엔드로 OpenSSL의 기능을 끌어 쓴다고 해요.
(결국 Easy RSA는 일종의 스크립트인 셈이에요.)

 

우분투 리눅스에서 easyrsa를 쉽게 설치하려면 터미널 창을 띄우고

sudo apt install easyrsa

라고 치면 됩니다.
하지만 이렇게 설치하면 터미널 창에서 누구든 어떤 경로에서든 easyrsa 명령어를 입력함으로써 공개키 인증서를 생성할 수 있고, 이런저런 조작으로 기존의 인증서를 탈취할 수 있는 빌미를 제공하기 때문에 안좋은(보안에 불리한) 설치법이라고 생각합니다. Easy RSA의 컨셉이 쉬운 인증서 생성이니까 위험성이 좀 높죠.

 

가장 좋은 설치법은 인증서 발급용 서버(CA 서버)를 별도로 구축한 다음 easyrsa를 설치하는 것이라고 보는데, 개인은 현실적으로 어렵겠지요? 그래서 Easy RSA 공식 배포처에서 다운로드받고 본인만 아는 경로에 압축을 푸는 방식으로 설치할 계획입니다(컴파일 설치 안해도 됩니다!). 해당 경로에 접근해서 EasyRSA 스크립트를 실행해야만 이용할 수 있을테니 보안에 조금이라도 도움이 되겠지요?

 

▼ OpenVPN용으로 사용할 EasyRSA 프로그램을 다운로드 받으려면 구글에서 openvpn github 라고 입력하세요. 그러면 배포처가 나옵니다. 주소는 https://github.com/OpenVPN/easy-rsa 예요.

 

▼ 들어가서 우측의 Releases 글씨를 클릭하면...

 

▼ 버전별/운영체제별 압축파일 링크가 뜹니다. 저는 EasyRSA-3.0.8.tgz 파일을 마우스 우클릭하여 주소를 복사했습니다.

 

▼ 저는 sudo 명령어로 easyrsa를 실행하기 싫어서 /home/계정명/.local/share/applications 경로(로컬계정 권한이 부여된 본인만 아는 경로라면 어디든 OK~)에 easyrsa 디렉토리가 만들어졌으면 좋겠는데, ll 명령어로 확인해보니 /home/계정명 경로에 .local 디렉토리가 없더군요. 그래서 mkdir 명령어로 차근차근 생성한 다음 cd 명령어를 사용하여 이동했습니다.

mkdir -p ~/.local/share/applications

cd ~/.local/share/applications

 

▼ 그다음 wget 명령어로 EasyRSA-3.0.8.tgz 파일을 받았고...

( wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz )

 

▼ tar 명령어로 EasyRSA-3.0.8.tgz 압축파일을 풀었습니다.

( tar -zxf EasyRSA-3.0.8.tgz )
ll 명령어로 봤더니 EasyRSA-3.0.8 디렉토리가 생기면서 압축이 풀렸군요. 다행입니다.
rm 명령어로 EasyRSA-3.0.8.tgz 압축파일을 지웠습니다. 필요가 없으니...

( rm EasyRSA-3.0.8.tgz )

cd EasyRSA-3.0.8

(cd 명령어 이용)EasyRSA-3.0.8 디렉토리에 들어가서 (ll 명령어 이용)조회해보니 easyrsa라는 파일에 실행 권한이 부여되어 있군요. 그래서 ./easyrsa --help 라고 입력하여 실행되는지 확인해봤더니, 실행되면서 도움말이 나옵니다. ①sudo 권한 없이 ②특정 로컬 계정으로 ③특정 경로에 접근했을 때에만 실행되도록 환경이 구성되었네요. 만족스럽습니다.

 

▼ 도움말의 길이가 짧습니다. 참고하시라고 스샷하여 첨부합니다.

 

EasyRSA를 다루는 방법을 정리한 문서들 중에서 괜찮아보이는 것 2개를 적어둘테니 참고하시고...

https://easy-rsa.readthedocs.io/en/latest/

https://www.lesstif.com/system-admin/easy-rsa-certificate-authority-106856593.html

 

이후 과정은 다음 글에서 적겠습니다.

(만자로 리눅스, 아치 리눅스라면 sudo pacman -S openvpn easyrsa 라고 입력하는 것만으로 최신버전 설치가 끝나는데, 우분투 리눅스는 글 3개로 구구절절 쓰게 되네요. 힘듭니다.)

 

※ 다음 글 : 구글 클라우드 플랫폼(GCP)에 OpenVPN 서버 구축(5) : EasyRSA 설정

반응형