2009년 2월 22일

fedora 8에 bridge방식으로 openvpn설정

bridge방식의 openvpn설정법은 자세히 나와있는 블로그를 보지 못했다.
아래 간략한 설치방법을 소개한다.

1.openvpn 관련 패키지 설치

yum install openvpn
yum install openssl
yum install lzo

2. brdige util설치
yum install bridge-utils

3.*easy-rsa디렉토리는 아래와 같다.
아래 디렉토리의 내용을 /etc/openvpn에 복사한다.

/var/share/openvpn/easy-rsa/2.0

4.var설정및 ca, key, dh생성

. ./vars
./clean-all
./build-ca

* build-ca생성시 common name은 'ca'로 넣는다.

./build-key-server server

* server key생성시 common name은 'server'로 넣는다.

./build-key client1

* client key생성시 common name은 'clinet1'로 넣는다.(client2가 있으면 client2처럼 각각의 common name을 다르게 넣는다)

./build-dh

*diffe hellman parameter를 생성한다.

5. 서버 config 생성

# Tunnel options
mode server # Set OpenVPN major mode
proto tcp-server # Setup the protocol (server)
port 1194 # TCP/UDP port number
dev tap0 # TUN/TAP virtual network device
keepalive 3600 7200 # Simplify the expression of --ping
daemon # Become a daemon after all initialization
verb 3 # Set output verbosity to n
comp-lzo # Use fast LZO compression

# OpenVPN server mode options
client-to-client # tells OpenVPN to internally route client-to-client traffic
duplicate-cn # Allow multiple clients with the same common name
#crl-verify /etc/openvpn/keys/crl.pem

# TLS Mode Options
tls-server # Enable TLS and assume server role during TLS hands
ca /etc/openvpn/keys/ca.crt # Certificate authority (CA) file
dh /etc/openvpn/keys/dh1024.pem # File containing Diffie Hellman param
cert /etc/openvpn/keys/server.crt # Local peer's signed certificate
key /etc/openvpn/keys/server.key

#TCP 1194포트를 기준으로 만들었다. 각각의 key들의 디렉토리를 본인의 서버에 맞게 변경한다.
#crl인증은 사용자 접속을 제한할때 사용한다.


6. startup스크립트 작성
#!/bin/bash
br="br0"
tap="tap0"
eth="eth0"
eth_ip="192.168.0.*"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"
for t in $tap; do
openvpn --mktun --dev $t
done

brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

7. openvpn시작
openvpn /etc/openvpn/sever.conf

*위와같은 bridge.start 와 openvpn start 명령을 /etc/rc.local에 추가하여 boot시 시작되도록한다.
/etc/openvpn/bridge.start
openvpn /etc/openvpn/sever.conf


*참고
bridge stop스크립트

br="br0"
tap="tap0"
ifconfig $br down
brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done