wget http://dag.wieers.com/packages/lzo/lzo-1.08-4.2.el4.rf.i386.rpm
wget http://dag.wieers.com/packages/lzo/lzo-devel-1.08-4.2.el4.rf.i386.rpm
rpm -Uvh lzo*
## open vpn 받아서 rpm 만들고 설치
wget http://openvpn.net/release/openvpn-2.0.7.tar.gz
rpmbuild -tb openvpn-2.0.7.tar.gz
rpm -Uvh /usr/src/redhat/RPMS/i386/openvpn-2.0.7-1.i386.rpm
3. 인증서 생성 - 서버
인증성 생성은 필수이다. 다음과 같이 생성한다.
1) CA 생성 (상위 인증기관)
cd /usr/share/doc/openvpn-2.0.7/easy-rsa/
#vars 파일을 열어서 맨 마지막 줄을 수정한다.!!
export KEY_COUNTRY=KR
export KEY_PROVINCE=NA
export KEY_CITY=BUSAN
export KEY_ORG="superuser.co.kr"
export KEY_EMAIL="doly@suidc.com"
####################################
#인증서 생성시 마다 넣는게 귀찮아서 이렇게 정의 하는 것이니 하지 않아도 무관^^;
. ./vars
## 위 명령은 , vars내용을 include한다는 명령이다.
./clean-all
## 기존에 생성된 것이 있으면 모두 삭제한다.
./build-ca
## CA 인증서를 생성한다.
## 이렇게하면 keys라는 폴더에 ca.key(개인키), ca.crt(공개인증서)가 생성된것을 확인한다.
## ca.crt파일은 모든 클라이언트에 배포. ca.key는 서버만 가지고 있음.
2) 서버키 생성 (서버에 사용될 인증서 및 개인키)
./build-key-server server
## 뭐 많이 물어보는데 대충 대답하고 , y를 누른다.
Common Name 을 물어 오면 'server'를 입력한다. 그리고 다음 두개의 질문에 Yes 라고 답한다.
Sign the certificate? y/n
1 out of 1 certificate requests certified, commit? y/n
# keys 디렉토리에 server.crt server.key 등이 생긴것을 확인할수 있다.
# 이 키들은 CA에 의해 사인된 인증서이다.
# server.crt, server.key 모두 서버에만 사용
3) 클라이언트키 생성 (클라이언트에 사용될 인증서)
./build-key client
## 뭐 많이 물어보는데 대충 대답하고 , y를 누른다.
Common Name 을 물어 오면 'client'를 입력한다. 그리고 다음 두개의 질문에 Yes 라고 답한다.
Sign the certificate? y/n
1 out of 1 certificate requests certified, commit? y/n
# keys 디렉토리에 client.crt client.key 를 볼 수 있다.
# 이 키들은 CA에 의해 사인된 인증서이다.
# client.key, client.crt 모두 클라이언트에만 사용됨.
4) Diffie Hellman 파라메터 생성(암호화에 필요한 놈)
./build-dh
# keys디렉토리에 dh1024.pem 파일이 생긴것을 확인할 수 있다.
# dh1024.pem은 서버에만 가지고 있는다.
5) 클라이 언트용 파일 복사 및 보관
mkdir -p /root/client-keys
cp keys/ca.crt keys/client.* /root/client-keys
cd /root
zip client-keys.zip client-keys/*
4. 설정파일(server.conf)파일 복사 및 편집 - 서버
1) 설정파일 및 키 복사
cd /usr/share/doc/openvpn-2.0.7/
cp sample-config-files/server.conf /etc/openvpn/
cp easy-rsa/keys/server.* /etc/openvpn/
cp easy-rsa/keys/dh1024.pem /etc/openvpn/
cp easy-rsa/keys/ca.* /etc/openvpn/
2) 설정파일 편집.(/etc/openvpn/server.conf)
server 10.1.1.0 255.255.255.0
client-to-client
duplicate-cn
max-clients 100
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
## 설명
# sever 네트웍 설정은 10.1.1.0으로 한다.
# client-to-client : 클라이언트 끼리 통신 가능하게
# duplicate-cn : client인증서 하나로 여러대의 PC에서 사용할 수 있게한다.
# max-clients 100 : 연결수를 100으로 제한한다.
# plugin .... : user/pass인증을 받는다. (시스템 계정)
3) G/W로 VPN서버를 쓰기 때문에 인터넷 공유 설정.
echo 'iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE' >> /etc/rc.d/rc.local
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -L
참고자료 > VPN 구축 (via OpenVPN) 글쓴이 : doly™ 날짜 : 07-03-06 15:56