[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인자는 설정 파일을 가르킵니다 . 
댓글
댓글 쓰기