2015. 4. 26. 00:50

openVPN

openVPN은 리눅스에서 쓸수있는 open source VPN 프로그램중 하나이다.

-서버 설정

# cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn

# vim /etc/openvpn/easy-rsa/2.0/vars// 인증서나 키를 만들때 그냥 엔터처도 값이 나오게 하려고

-----------------------------------------------------------------------------

...

export KEY_COUNTRY="KR"// 국가

export KEY_PROVINCE="KB"// 지방

export KEY_CITY="GUMI"// 도시

export KEY_ORG="KOTHS"// 기관명

export KEY_EMAIL="web@skill.com"// 메일 주소

-----------------------------------------------------------------------------

# cd /etc/openvpn/easy-rsa/2.0

/etc/openvpn/easy-rsa/2.0# . ./vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

/etc/openvpn/easy-rsa/2.0# ./clean-all

/etc/openvpn/easy-rsa/2.0# ./build-ca// 개인키(ca.key)와 공개인증서(ca.crt) 생성 과정

->계속 엔터 입력하다가 common이 나오면 server를 적어줌

/etc/openvpn/easy-rsa/2.0# ./build-key-server server// 서버 키(server.key), 서버인증서

(server.crt)생성 과정

->계속 엔터 입력 하다가 common이 나오면 server을 입력 그리고 y/n선택이 나오면 y를 입력

/etc/openvpn/easy-rsa/2.0# ./build-key client1// 클라이언트 키 생성

->계속 엔터 입력 하다가 common이 나오면 client1을 입력 그리고 y/n선택이 나오면 y를 입력

/etc/openvpn/easy-rsa/2.0# ./build-dh

# mkdir /client

# cd /etc/openvpn

/etc/openvpn# cp easy-rsa/2.0/keys/server.* .

/etc/openvpn# cp easy-rsa/2.0/keys/ca.crt .

/etc/openvpn# cp easy-rsa/2.0/keys/dh1024.pem .

/etc/openvpn# cp easy-rsa/2.0/keys/client.* /client

/etc/openvpn# cp easy-rsa/2.0/keys/ca.crt /client

-> 클라이언트 디렉토리에 옴긴것은 클라이언트(컴퓨터)에 옴겨 줘야함(인증해야 하기 때문에)

# gunzip /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz

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

# vim /etc/openvpn/server.conf

-----------------------------------------------------------------------------

port 1194// vpn 포트 설정

proto udp// 프로토콜 설정(tcp로 하려면 udp에 주석 뒤 tcp에 주석제거), 권장 값:UDP

dev tun// 클라이언트와 통신할 가상 인터페이스 지정(tun과 tap이 있음)

ca ca.crt// 인증서 이름 입력

cert server.crt// 서버 인증서 이름 입력

key server.key// private key 이름 입력

dh dh1024.pem// Diffie Hellman 이름 입력

ifconfig 10.10.1.1// 서버 아이피 설정 tap어댑터 방식은 10.10.1.1 255.255.0.0이고 tun방식은 10.10.1.1 10.10.1.2다

server 10.8.0.0 255.255.0.0// 서버모드로 운영, 사설망으로 10.8.0.0/16 네트워크 사용

ifconfig-pool-persist ipp.txt// 고정 아이피를 해줄 목록

push "dhcp-option DNS 10.8.0.1"// 클라이언트의 dns주소를 10.8.0.1로 설정

client-to-client// vpn 클라이언트끼리 통신 가능하게 설정

keepalive 10 120// 10초마다 ping을 해서 120초 동안 응답불가시 원격지가 다운 된걸로 판단

comp-lzo// 압축 알고리즘을 사용(서버가 사용 시 클라이언트도 사용해야함)

persist-key//

persist-tun//

status openvpn-status.log// 로그파일 설정

verb 3// 로그 레벨 설정

-----------------------------------------------------------------------------

※ 딱히 수정할것은 없고 아이피나 파일등 자신에 입맛에 맞게 맞춰주면 된다.

# /etc/init.d/openvpn restart

- 클라이언트 설정

·클라이언트에 openvpn을 설치한다.

·아까 서버에 client폴더에 담긴 파일들을 "시작"-"모든 프로그램"-"openvpn"-"openvpn configuration file directory"를 클릭하여 그곳에 옴겨 놓는다.

·“시작”-"모든 프로그램"-"openvpn"-"openvpn sample configuration Files"를 클릭하여 client.ovpn(client)파일을 "시작"-"모든 프로그램"-"openvpn"-"openvpn configuration file directory"에 옴겨놓는다.

·client.ovpn(client)파일을 열어 remote 어쩌고저쩌고 되있는 부분을 remote <서버IP> <포트>로 적어준다. (예 remote 192.168.0.1 1194)

TAP 은 이더넷 디바이스(2계층)로 작동하고, TUN (TUNnel)은 IP계층(3계층) 디바이스로 작동한다.

TAP 은 네트워크 브리지를 생성하는데 사용할 수 있고, TUN 은 라우팅에 사용할 수 있다.

'OPS > LInux' 카테고리의 다른 글

LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
squid  (0) 2015.04.26
Iptables  (0) 2015.04.21
Posted by 배주혁