[Linux] Open Vpn 구축

 OpenVPN 구축 


오픈VPN(OpenVPN)은 라우팅 구성이나 브리지 구성, 원격 접근 기능을 통해 안전한 점대점 또는 사이트 대 사이트 연결을 만들기 위해 가상 사설망(VPN) 기술을 구현하는 오픈 소스 형태의 응용 소프트웨어 입니다.
 키 교환을 위해 SSL/TLS를 이용하는 맞춤식 보안 프로토콜을 이용합니다.


VirtualBox VM 과 암호화를 이용해 가상 사설망 터널을 만들어 안전하고 눈에 띄지 않게 원격으로 연결하는 과정을 진행합니다 . 
그리고 네트워크를 전략적으로 분할하기 위해 더 정교한 방화벽 아키텍처를 만드는 과정을 진행하며  VirtualBox 안에 가상 사설망 환경을 구축해 환경 설정을 테스트 해보겠습니다 . 


Epel 저장소 추가 및 Open VPN 설치 

Open Vpn 설치를 위한 epel 저장소를 추가합니다 
#yum -y install epel-release

Open Vpn 설치 합니다 . 
#yum -y install openvpn






CA 유틸 easy-rsa 설치 

OpenVPN 인증을 위한 shell 기반 CA 유틸 easy-rsa 설치
#yum -y install easy-rsa 



server.conf 복사

#cp /usr/share/doc/openvpn-2.4.11/sample/sample-config-files/server.conf /etc/openvpn 

설치된 openvpn의 server.conf를 /etc/openvpn 폴더로 이동 시킵니다 . 





easy-rsa 파일 복사 

방금 설치한 easy-rsa 파일도 /etc/openvpn 폴더에 복사 합니다 
# cp -r /usr/share/easy-rsa/ etc/openvpn 





easy-rsa의 스크립트와 기능

easy-rsa에는 많은 스크립트와 기능이 있는데 대표적인 스크립트와 기능은 다음과 같습니다 
이러한 작업들은 루트권한에서만 작업이 가능합니다 . 

 

script

function

clean-all

키를 새로 생성하고 기존의 키를 삭제한다 . 

pkitools

OpenSSL 래퍼( 대부분의 Key-Gent 작업을 수행)

build-ca

pkitool 스크립트로 최상위 (root)인증서 생성

build-key-server server

pkitool 스크립트로 키 쌍과 인증서 생성 

build-dh

Diffie-Hellman 인증 파라미터 생성 





easy-rsa 스크립트 수정 

키 생성 시 매번 정보를 입력해야 하는데 vars 파일을 수정하여 기본 값을 설정할 수 있습니다.
 새로운 “KEY_” 환경 변수 값들을 source 명령을 사용해서 적용합니다.





인증서 생성 및 설정 . 

d /etc/openvpn/easy-rsa/keys/ 에 있는 기존내용을 삭제하기 위해 clean-all 스크립트를 실행 한다 . 
# ./clean-all 

최상위 인증서를 생성하기 위해 ./build-ca 스크립트 실행 
#./build-ca

pkitool 스크립트로 키 쌍과 인증서 생성을 위한 스크립트 실행 
#./build-key-server-server

다음 스크립트에 둘다 yes를 해준다 . 
openvpn은 새로운 연결을 인증하는데 디피헬먼 알고리즘으로 생성된 파라미터를 생성한다 . 
#./build-dh


클라이언트 암호화 구성 

TLS 암호화는 대응되는 키 쌍을 이용합니다 . 하나는 서버, 다른 하나는 원격지 클라이언트에게 설치 됩니다 . 앞서 살펴보았던 pkitool 스크립트를 실행합니다 . 
# ./pkitool client


vpn 서비스 재시작  및 클라이언트 설정 

systemctl restart openvpn@server 명령어로 시스템을 재시작 합니다. 
클라이언트 측 에서 openvpn 설치 
마찬가지로 etc/open vpn에 복사합니다 . 

# yum -y install openvpn 
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn

인증서 및 키 복사해오기 


#cd /etc/openvpn
#scp root@192.168.179.1:/root/ca.crt
#scp root@192.168.179.1:/root/client.crt     //클라이언트 인증서 복사 
#scp root@192.168.179.1:/root/client.key   //클라이언트 키 복사 
클라이언트 측에서 openVpn 실행 및 업데이트로 완료합니다 . 
#openvpn --tls-client --config /etc/openvpn/client.conf 
=> TLS로 암호화로 작동하는 클라이언트이며 --config인자는 설정 파일을 가르킵니다 . 








댓글