최근에 충격 좀 먹고(?) 포스팅 해본다
VPN (Virtual private network)
일반 공공망 (인터넷망)을 내부망(사설망) 처럼 회선 비용 절감 및 보안 등등 목적으로 사용하는 사설망
간단히 설명 요즘은 개인 NAS가 많이 사용된다
외부 및 사무실에서도 집에서 NAS를 옆에둔 서버처럼 연결 및 사용 하는 방식 (이게 맞나...?)
그나마 제일 많이 사용하는 OpenVPN 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #설치 환경 CentOS 7 기준(2017/07) #설치폴더 생성 mkdir -p /root/vpn_install cd /root/vpn_install #centos EPEL 레포지토리 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm rpm -Uvh epel-release-7-10.noarch.rpm #openvpn 설치 yum install openvpn -y #키 관리를 해주는 easy-rsy yum install easy-rsa -y easy-rsa 파일을 easy-rsa 복사 mkdir /etc/openvpn/easy-rsa cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #vars 파일 수정 # vi /etc/openvpn/easy-rsa/vars #아래 정도만 수정 "꼭 이대로 안해도 된다" export KEY_COUNTRY="KR" export KEY_PROVINCE="NA" export KEY_CITY="Seoul" export KEY_ORG="example.com" export KEY_EMAIL="admin@example.com" export KEY_OU="server" # X509 Subject Field export KEY_NAME="server" | cs |
1 2 3 4 5 6 7 8 | #var를 편집하고, key를 빌드 key 폴더가 생성 cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf cd /etc/openvpn/easy-rsa chmod +rwx * source ./vars ./clean-all ./build-ca | cs |
1 2 | #서버키를 기존 빌드와 다르게 엔터 말고 마지막부분에 y으로 커밋해주서야 ./build-key-server server | cs |
1 2 | pem 파일 생성 ./build-dh | cs |
빌드 시간이 어느정도 걸린다.
1 2 3 4 5 6 7 | cd /etc/openvpn/easy-rsa/keys #생성된 서버키를 상단으로 복사해준다 cp dh2048.pem ca.crt server.crt server.key /etc/openvpn/ #클라이언트에서 사용할 키 ./build-key client | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #샘플설정파일 복사 - 디렉토리 버전은 다를수 있음 cp /usr/share/doc/openvpn-2.4.3/sample/sample-config-files/server.conf /etc/openvpn/ #OpenVPN 서버 설정파일 수정 vi /etc/openvpn/server.conf #아래 내용만 주석제거 및 수정 push "redirect-gateway def1 bypass-dhcp" #본인이 선호(?)하는 DNS로 수정 push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" client-to-client comp-lzo user nobody group nobody status openvpn-status.log log /var/log/openvpn.log | cs |
테스트겸 설치 해보는거라 서버상의 방화벽은 전부 내리고 테스트를 해봄
1 2 3 4 5 | #테스트 하기 위해 vpn서버 가동 openvpn --config /etc/openvpn/server.conf #에러확인하기위해 로그파일 확인 tail -F /var/log/openvpn.log | cs |
로그파일
udp 1194 포트가 열려있는거 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #OpenVpn 클라이언트에서 사용할 프로파일 수정 client.ovpn client dev tun0 proto udp remote [본인 접속할 vpn] 1194 resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3 ca ca.crt cert client.crt key client.key | cs |
외부에서 접속테스트
사설망(내부망)이 아닌 외부테스트로 LTE 환경에서 테스트 진행
"OpenVPN Connect" 안드로이드에서 테스트
Import로 들어가서
Import Profile from SD card 선택
미리 복사해둔 클라이언트키 및 프로파일
"client.ovpn"파일 선택
프로파일 적용후 Connect를 클릭
접속이 잘되는것을 확인
vpn접속후 사설망형태로 접속을 해본다
vpn서버에서 "10.8.0.6"으로 접속한 폰(?) 디바이스를 확인 할 수 있다
일단 간단하게 OpenVpn 서버 구축 여기까지
나중에 좀 더 보충하기