ICT教育

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1093|回复: 9

OpenVPN实现远程接入服务

[复制链接]
发表于 2011-9-10 09:11:05 | 显示全部楼层 |阅读模式
本帖最后由 ltzy 于 2011-11-3 20:15 编辑

OpenVPN实现远程接入服务

参考文档:

https://help.ubuntu.com/10.10/serverguide/C/openvpn.html

http://xuchengji.blog.51cto.com/160472/473766


学校的路由器上有vpn功能,但是感觉安全性和可控性都不够强,所以打算自己搞VPN。花了不少时间,总算搞定了。

拓扑结构

公网----路由器----内网----OpenVPN服务器

路由器公网IP 1.1.1.1

OpenVPN服务器内网IP 2.2.2.2  网关 2.2.2.1 掩码 24位

OpenVPN服务器使用Debian 6



路由器设置

映射1.1.1.1 的UDP 1194 端口到 2.2.2.2 的UDP 1194 端口   (  OpenVPN默认使用UDP 1194端口)



OpenVPN服务器设置

apt-get install bridge-utils

#准备创建网桥
nano /etc/network/interfaces

添加红色部分

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 2.2.2.2 netmask 255.255.255.0
  network 2.2.2.0
  broadcast 2.2.2.255
  gateway 2.2.2.1
dns-nameservers 8.8.8.8
   
auto br0
iface br0 inet static
  address 2.2.2.1
netmask 255.255.255.0
  network 2.2.2.0
  broadcast 2.2.2.255
  gateway 2.2.2.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp on



/etc/init.d/networking restart


apt-get install openvpn

mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
chown -R $USER /etc/openvpn/easy-rsa/                                                               

#使用合适的用户名替换 $USER

nano /etc/openvpn/easy-rsa/vars


export KEY_COUNTRY="US"
export KEY_PROVINCE="NC"
export KEY_CITY="Winston-Salem"
export KEY_ORG="Example Company"
export KEY_EMAIL="steve@example.com"

#适当修改以上内容

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

cd /etc/openvpn/easy-rsa/
source vars
#这一步每次生成其他客户端的密钥和证书钱都要做一次
./pkitool $hostname        
                                                                        

#使用合适的主机名替换 $hostname   



使用可靠的方式复制以下文件到客户端

/etc/openvpn/ca.crt

/etc/openvpn/easy-rsa/keys/hostname.crt

/etc/openvpn/easy-rsa/keys/hostname.key

/etc/openvpn/ta.key



cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz    /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz



nano /etc/openvpn/server.conf
#这是服务器端的配置文件

local 2.2.2.2                                            #监听的本地IP地址
port 1194
proto udp
--script-security 2                                   #允许使用自定义脚本
up "/etc/openvpn/up.sh br0"
dev tap0
down "/etc/openvpn/down.sh br0"
server-bridge 2.2.2.2 255.255.255.0 2.2.2.3 2.2.2.10             #设置网桥,使用2.2.2.3-2.2.2.10 的地址给客户端使用
push "route 2.2.2.0 255.255.255.0 2.2.2.1"                                       
push "route 3.3.3.0 255.255.255.0 2.2.2.1"                           #这句的作用是为了路由到3.3.3.0这个子网(校内,2.2.2.1是openvpn服务器所在的网关
push "dhcp-option DNS  8.8.8.8"                                            #推送DNS地址
push "dhcp-option DOMAIN example.com"
ifconfig-pool-persist ipp.txt
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth ta.key
comp-lzo
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log                                                                       #启用日志
log-append openvpn.log
verb 3

cp /usr/share/doc/openvpn/examples/sample-config-files/openvpn-startup.sh   /etc/openvpn/up.sh

cp /usr/share/doc/openvpn/examples/sample-config-files/openvpn-shutdown.sh  /etc/openvpn/down.sh

#这是两个启动脚本,主要是设置网桥和tap接口,按之前的配置适当修改up.sh文件


nano  /etc/openvpn/down.sh

添加下面这句到末尾

/etc/init.d/networking restart
#如果不加上这句,我发现重启openvpn服务后,网卡的配置信息会全丢失掉

chmod 755 /etc/openvpn/down.sh
chmod 755 /etc/openvpn/up.sh

/etc/init.d/openvpn restart



OpenVPN客户端设置  (windows XP)

下载安装    openvpn-gui

http://openvpn.se/download.html

ca.crt、hostname.crt、hostname.key、ta.key复制到c:\program files\openvpn\config

c:\program files\openvpn\sample-config里的client.ovpn复制到c:\program files\openvpn\config

修改 client.ovpn如下

client
dev tap
proto udp
remote 1.1.1.1 1194                                     #这里是路由器的外网IP和端口
resolv-retry infinite
nobind
persist-key
persist-tun
tls-auth ta.key 1
ca ca.crt
cert hostname.crt
key hostname.key

verb 3
#客户端配置文件里的客户端证书和密钥名字要和config的证书和密钥文件名相同

最后客户端连接OpenVPN,不再赘述
配置文件里德其他选项,请大家参考官方文档
发表于 2011-9-13 13:28:25 | 显示全部楼层
安全性和可控性,二者有何差别?
 楼主| 发表于 2011-9-13 16:43:31 | 显示全部楼层
本帖最后由 ltzy 于 2011-9-13 16:47 编辑

安全性来说,路由器直接连接公网,一旦被入侵内网也就败了。通常服务器之前都会连接防火墙或者IDS。
可控性来说,openvpn是建立在一个完整的os之上,不像路由器是一个单纯定制的系统,可以附加更多的功能和策略。
一般大家都会买现成的VPN硬件设备,soho级别才用路由器上的vpn。
发表于 2011-9-17 16:46:12 | 显示全部楼层
学习一下
感觉有收获
发表于 2011-10-6 17:08:51 | 显示全部楼层
我是用ROUTEROS中的VPN给自己与领导一个不限速与随时可以上网的帐号,机房学生机被限制了上网,但老师机想上网怎吧?就用VPN帐号拨号。
 楼主| 发表于 2011-10-6 20:23:55 | 显示全部楼层
gzsunlight 发表于 2011-10-6 17:08
我是用ROUTEROS中的VPN给自己与领导一个不限速与随时可以上网的帐号,机房学生机被限制了上网,但老师机想上 ...

ros没用过,vpn一般是为了提供远程接入用的,不知道你这个vpn什么作用。按照你的需求可以用pppoe拨号。
发表于 2011-10-8 08:13:42 | 显示全部楼层
ltzy 发表于 2011-10-6 20:23
ros没用过,vpn一般是为了提供远程接入用的,不知道你这个vpn什么作用。按照你的需求可以用pppoe拨号。

呵呵,VPN是给我在校外拨入内网用(这个是正解,但我一般不会推广,用得越多,我的麻烦也越多),我只是与部分老师说用这个VPN帐号就可以在所有的机房内拨号上网,不用叫我开网。如发现有许多人都用这帐号,我会删除的。PPPOE是可以,但它不能过三层交换机,设置上没pptp来得简单。
 楼主| 发表于 2011-10-8 08:33:26 | 显示全部楼层
gzsunlight 发表于 2011-10-8 08:13
呵呵,VPN是给我在校外拨入内网用(这个是正解,但我一般不会推广,用得越多,我的麻烦也越多),我只是与 ...

机房里就用panabit吧,透明桥,不需要修改你原来的网络拓扑,老师用固定的IP,设置例外,其他全封了,方便
发表于 2011-10-11 15:51:49 | 显示全部楼层
又学了一招了,呵呵,暂时还用不到噢!
发表于 2011-11-9 09:40:53 | 显示全部楼层
学习了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|ICT教育—中小学信息技术教育网 ( 苏ICP备10008215号

GMT+8, 2018-1-24 15:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表