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