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