搭建 openvpn (Linux server + windows client)

上一篇 / 下一篇  2008-04-22 11:33:19 / 个人分类:Linux 笔记

目标:搭建 bridge 类型的 openvpn 服务器,并使用dhcpd 为客户分配ip地址,使用 pam 进行登陆验证。

1、emerge
 USE="examples iproute2 pam ssl threads" emerge openvpn

2、服务端配置

cd /etc/openvpn
mkdir gateway
cp -r /usr/share/openvpn/easy-rsa /etc/openvpn
cd easy-rsa
vi vars

将vars 的内容按照需要进行修改。

export KEY_COUNTRY="CN"
export KEY_PROVINCE="YunNan"
export KEY_CITY="Kunming"
export KEY_ORG="Risy"
export KEY_EMAIL=risy007@gmail.com

继续

. ./vars
./clean-all
./build-ca
./build-key-server
./build-dh
cd ../gateway
mkdir keys
cp ../easy-rsa/keys/{ca,server}.{crt,key} ./keys
cp ../easy-rsa/keys/dh1024.pem ./keys
openvpn --genkey --secret ./keys/ta.key
vi local.conf

生成配置文件
mode server
proto udp
port 1194
dev tap0
keepalive 10 120
daemon
writepid /var/run/openvpn.pid
comp-lzo
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
verb 3
mute 20
client-to-client
duplicate-cn
cd /etc/openvpn/gateway
tls-server
tls-auth keys/ta.key 0
cipher BF-CBC
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
client-config-dir ccd
#使用PAM插件
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
#客户端可以不提供证书
client-cert-not-required
#用户登录名称作为Common Name
username-as-common-name
继续
ln -sf gateway/local.conf openvpn.conf

为最新的openrc配置桥接的openvpn接口,首先将bridge,tun编译为module,并在启动的时候加载,方法为修改 /etc/conf.d/modules 文件加入以下行

modules_2_6="tun bridge"
创建 net.br0 ,net.tap0 启动脚本
cd /etc/init.d/
ln -sf net.lo net.br0
ln -sf net.lo net.tap0
配置 /etc/conf.d/net 文件加入桥接的定义

tuntap_tap0="tap"

#config_eth0="dhcp"
config_eth1="null"
config_tap0="null"

RC_NEED_br0="net.eth1 net.tap0 openvpn"

bridge_br0="eth1 tap0"
config_br0="192.168.0.1/24"

将 net.tap0 net.br0 openvpn 分别加入不同的启动 level
rc-update add net.tap0 boot
rc-update add net.br0 default
rc-update add openvpn default

服务器配置完了。

将 /etc/openvpn/gateway/keys/ca.crt 和 ta.key 分发给需要登陆的 客户。

3、客户端配置文件

client
proto udp
port 1194 # or any other port you want to use
dev tap
remote 192.168.0.1 #替换为公网ip地址 
auth-user-pass
tls-client
ca ca.crt
tls-auth ta.key 1
mtu-test
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
pull

comp-lzo
verb 4

 

至此,所有工作完成,客户电脑使用openvpn-gui 拨号连接服务器,会要求输入在服务器上的有效用户名和密码,正确的话就能建立vpn连接了。
如果在服务器上的br0 上绑定了 dhcpd 服务,拨号以后客户端可以自动获取到dhcp服务器给出的ip地址配置。

---------------补上 dhcpd.conf 配置 --------------------------------------------

option domain-name "risy.com";
default-lease-time 3600;
max-lease-time 7200;
authorative;
log-facility local7;
ddns-update-style interim;

subnet 192.168.1.0 netmask 255.255.255.0
{
option subnet-mask 255.255.255.0;
option netbios-name-servers 192.168.1.1;
option broadcast-address 192.168.1.255;
option domain-name-servers 222.172.200.68,61.166.150.123;


class "pxeclient"
{
 match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
 vendor-option-space PXE;
 allow bootp;
 next-server 192.168.1.1;
 filename "pxelinux.0";
}

class "openvpn" {
 match if substring (hardware, 1, 2) = 00:FF;
}

pool {
 allow members of "pxeclient";
 deny members of "openvpn";
 range 192.168.1.50 192.168.1.60;
 option routers 192.168.1.1;
}

pool {
 deny members of "pxeclient";
 deny members of "openvpn";
 range 192.168.1.80 192.168.1.90;
 option routers 192.168.1.1;
}

pool {
 allow members of "openvpn";
 range 192.168.1.100 192.168.1.200;
}

}

TAG: openvpn tap bridge

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 621
  • 日志数: 10
  • 建立时间: 2007-09-04
  • 更新时间: 2008-04-22

RSS订阅

Open Toolbar