Linux/Unix2017. 7. 14. 03:00

최근에 충격 좀 먹고(?) 포스팅 해본다

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 -/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 -/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 서버 구축 여기까지

나중에 좀 더 보충하기


Posted by 샤키