最好的5个VPN软件下载(有好几个是开源的!)

642 views
Skip to first unread message

老K实验室

unread,
Jul 31, 2007, 10:25:07 AM7/31/07
to ee

Top 5 VPN Software Free Downloads

VPN software applications include clients, servers and utility programs. VPN software technology enables private communications over wireless / computer networks via a method called "tunneling." The popular VPN software applications listed below are readily available for free download on the Internet.

1. Hamachi

Hamachi is free VPN software that uses a mediation server to establish peer-to-peer connections over UDP.

2. OpenVPN

OpenVPN is SSL-based open source VPN software. OpenVPN runs on Windows, Linux and Mac OS X operating systems.

3. Cisco VPN Client

The Cisco VPN client software supports IPSec connections to Cisco VPN concentrators. This VPN software application runs on Windows, Linux and Mac OS X.

4. Tinc VPN Daemon

The free Tinc VPN software enables virtual private networking via low-level daemon / network device configuration. Designed originally for Linux / Unix networks, Tinc also works on Windows computers.

5. FreeS/WAN

FreeS/WAN is an IPSec VPN software solution for Linux networks. Active development of FreeS/WAN has stopped, making this solution of interest mainly to students and researchers.

Michael Young

unread,
Jul 31, 2007, 10:11:32 PM7/31/07
to key...@googlegroups.com
我个人比较喜欢用Hamachi.
 
用它联网打游戏也不怎么卡.

老K实验室

unread,
Aug 1, 2007, 1:12:18 AM8/1/07
to key...@googlegroups.com
不怎么卡什么的都是由网速决定的,内网里面5个人一起开BT下载照样也会卡到死。
Hamachi最大的问题是后期一个VIP帐号的证书要收费30多美元,企业级应用要花一大笔美刀买证书。
只是两个人打打游戏的话确实是足够了。
 
像OpenVPN 这种就是开源的,组里面有能力的人可以自己把核心代码拿走,把用户界面拿来改了。

Michael Young

unread,
Aug 1, 2007, 1:16:58 AM8/1/07
to key...@googlegroups.com
我们这些普通人就不需要什么VIP吧.
 
 
 

Michael Young

unread,
Aug 1, 2007, 1:23:58 AM8/1/07
to key...@googlegroups.com
Static key使用的就是预先生成的key对数据进行加密和解密,也就是常说的对称试加密,加密和解密双方必须预先知道加密的Key。OpenVPN使用TLS加密是通过使用公开密钥(非对称密钥,加密解密使用不同的key,一个称为Public key,另一个是Private key)对数据进行加密的,对于TLS传输的工作原理,大家可以去Google一下,资料一大堆。对于OpenVPN使用TLS mode,首先Server和Client要有相同CA签发的证书,双方通过交换证书验证双方的合法性以决定是否建立VPN连接,然后使用对方CA把自己目前使用的数据加密方法(类似于密钥)加密后发送给对方,由于使用对方CA加密的,所以只有对方CA对应的Private key才能解密该字串,保证了此密钥的安全性,并且此密钥定期改变,对于窃听者来说,可能还没有破解出密钥,通信双方已经更换密钥了。

Michael Young

unread,
Aug 1, 2007, 1:24:52 AM8/1/07
to key...@googlegroups.com
OpenVPN  -  NAT穿透力特强,支持HTTP代理,对动态地址支持很好,可配置性强,配置安全,开源便于二次开发...其他没有想好:)。
关于OpenVPN的相关内容可以在http://openvpn.net上找到

老K实验室

unread,
Aug 1, 2007, 1:25:00 AM8/1/07
to key...@googlegroups.com
你确实不需要什么VIP,因为你是你自己口中说的"普通人"。
我不需要它的VIP是因为VIP意味着收费。
一个VPN网络有5个以上节点是很正常的。
似乎VPN网络对你来说只是"联网打游戏"的代名词。
不同目的的应用没有继续讨论的必要。

老K实验室

unread,
Aug 1, 2007, 1:25:52 AM8/1/07
to key...@googlegroups.com
里面有自带KEY生成工具,可以随时更换。

Michael Young

unread,
Aug 1, 2007, 1:25:49 AM8/1/07
to key...@googlegroups.com
OpenVPN的安装和配置方法,是在Fedora Core 2环境下配置的,由于机器在网络中不是在网关的位置,所以使用NAT方式来访问内网,否则还涉及到配置网络设备的路由。假设我的VPN Server有2块网卡,eth0对外,IP:61.1.1.2 eth1对内,IP:192.168.1.2,内网地址:192.168.0.0/16
本文除配置文件中行首的"#"是注释外,其他行首的"#"都是提示符,如果在非配置文件一行中第二次出现"#"说明后面的是注释,书写命令时可以省略。

获取并安装Openvpn:
首先检查系统是否安装lzo实时压缩工具
$rpm -qa | grep lzo
如果没有安装可以在 http://www.oberhumer.com/opensource/lzo/找到并安装,安装方法详见压缩包中的INSTALL文件,当然也可以用rpm包安装,记住一定要安装lzo-devel开头的那个包,因为OpenVPN需要使用lzo的头文件。
$wget http://mesh.dl.sourceforge.net/sourceforge/openvpn/openvpn-2.0_rc16.tar.gz
$tar -zxvf openvpn-2.0_rc16.tar.gz
$cd openvpn-2.0_rc16
$./configure
$make
$su
#make install
按照INSTALL文件中的说明,做如下操作:
#mknod /dev/net/tun c 10 200 #创建一个tun设备
#echo "alias char-major-10-200 tun" >> /etc/modprobe.conf
#echo 1 > /proc/sys/net/ipv4/ip_forward #打开系统的转发功能
接下来就生成服务器客户端需要使用的keys了,为了方便,我们使用OpenVPN包自带的脚本生成。
#mkdir /etc/openvpn
#cp -r easy-rsa /etc/openvpn #切换到OpenVPN源代码目录执行
修改vars 文件
-------------CUT Here-------------
# easy-rsa parameter settings

# NOTE: If you installed from an RPM,
# don't edit this file in place in
# /usr/share/openvpn/easy-rsa --
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.

# This variable should point to
# the top level of the easy-rsa
# tree.
export D=`pwd`

# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=$D/openssl.cnf

# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR=$D/keys

# Issue rm -rf warning
echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR

# Increase this to 2048 if you
# are paranoid. This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
# 定义你所在的国家,2个字符
export KEY_COUNTRY=CN
# 你所在的省份
export KEY_PROVINCE=Liaoning
# 你所在的城市
export KEY_CITY=Shenyang
# 你所在的组织
export KEY_ORG="ELM OpenVPN ORG"
# 你的单位
export KEY_OU="OpenVPN Service"
# 你的邮件地址
export KEY_EMAIL="e...@elm.freetcp.com"
-------------CUT Here-----------------
修改后保存,下面我们开始什成keys,以下为shell命令 "#" 为提示符
#. vars #使修改的变量生效
NOTE: when you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
#./clean-all #初始化keys目录,创建所需要的文件和目录
#./build-ca #什成Root CA证书,用于签发Server和Client证书,请保护好keys/ca.key文件。
Generating a 1024 bit RSA private key
........................++++++
.............++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CN]: #如果无需修改,直接回车
State or Province Name (full name) [Liaoning]:
Locality Name (eg, city) [Shenyang]:
Organization Name (eg, company) [ELM OpenVPN ORG]:
Organizational Unit Name (eg, section) [OpenVPN Service]:
Common Name (eg, your name or your server's hostname) []:OpenVPN Root CA
Email Address [e...@elm.freetcp.com]:

# ls keys
ca.crt ca.key index.txt serial
我们可以看到ca.crt ca.key文件已经什成了。
下面我们为服务器生成 Diffie-Hellman 文件
# ./build-dh #TLS server 需要使用的一个文件
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
..+..............................................................+....................................................................+....+........+.........+....................................................+.+..................................................................................................................................................................+.......................................+.................................+.............+.................................................................................+.......................................................+.............................++*++*++*

创建并签发VPN Server使用的CA
# ./build-key-server server # server 为创建后的文件名,分别为server.crt server.key
Generating a 1024 bit RSA private key
......................++++++
...............++++++
writing new private key to ' server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [Liaoning]:
Locality Name (eg, city) [Shenyang]:
Organization Name (eg, company) [ELM OpenVPN ORG]:
Organizational Unit Name (eg, section) [OpenVPN Service]:
Common Name (eg, your name or your server's hostname) []:Server No.1
Email Address [ e...@elm.freetcp.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'CN'
stateOrProvinceName :PRINTABLE:'Liaoning'
localityName :PRINTABLE:'Shenyang'
organizationName :PRINTABLE:'ELM OpenVPN ORG'
organizationalUnitName:PRINTABLE:'OpenVPN Service'
commonName :PRINTABLE:'Server No.1'
emailAddress : IA5STRING:'e...@elm.freetcp.com'
Certificate is to be certified until Feb 26 14:43:44 2015 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

接下来为VPN Client颁发CA证书,如果以后要为其他Client颁发证书,直接使用build-key命令签发新证书。
# ./build-key elm
Generating a 1024 bit RSA private key
........++++++
....................++++++
writing new private key to 'elm.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [Liaoning]:
Locality Name (eg, city) [Shenyang]:
Organization Name (eg, company) [ELM OpenVPN ORG]:
Organizational Unit Name (eg, section) [OpenVPN Service]:
Common Name (eg, your name or your server's hostname) []:ELM #注意Common Name最好不要相同,如果相同[server要加duplicate-cn选项],那么Email地址也不能相同
Email Address [e...@elm.freetcp.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'CN'
stateOrProvinceName :PRINTABLE:'Liaoning'
localityName :PRINTABLE:'Shenyang'
organizationName :PRINTABLE:'ELM OpenVPN ORG'
organizationalUnitName:PRINTABLE:'OpenVPN Service'
commonName :PRINTABLE:'ELM'
emailAddress :IA5STRING:'e...@elm.freetcp.com'
Certificate is to be certified until Feb 26 14:45:36 2015 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
为防止恶意攻击(如DOS、UDP port flooding),我们生成一个"HMAC firewall"
#openvpn --genkey --secret keys/ta.key
生成证书吊销链文件,防止日后有人丢失证书,被非法用户接入VPN
#./make-crl vpncrl.pem
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf

到现在为止,一切准备就绪,下面开始写配置文件,为了缩小篇幅,把原有注释都去掉了。
Server使用的配置文件server.conf
----------------CUT Here-------------
#申明本机使用的IP地址,也可以不说明
;local a.b.c.d
#申明使用的端口,默认1194
port 1194
#申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
;proto tcp
proto udp
#申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。
#tun是ip层的点对点协议,限制稍微多一些,本人习惯使用TAP设备
dev tap
;dev tun
#OpenVPN使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法
ca ca.crt
#Server使用的证书文件
cert server.crt
#Server使用的证书对应的key,注意文件的权限,防止被盗
key server.key # This file should be kept secret
#CRL文件的申明,被吊销的证书链,这些证书将无法登录
crl-verify vpncrl.pem
#上面提到的生成的Diffie-Hellman文件
dh dh1024.pem
#这是一条命令的合集,如果你是OpenVPN的老用户,就知道这条命令的来由
#这条命令等效于:
# mode server #OpenVPN工作在Server模式,可以支持多client同时动态接入
# tls-server #使用TLS加密传输,本端为Server,Client端为tls-client
#
# if dev tun: #如果使用tun设备,等效于以下配置
# ifconfig 10.8.0.1 10.8.0.2 #设置本地tun设备的地址
# ifconfig-pool 10.8.0.4 10.8.0.251 #说明OpenVPN使用的地址池(用于分配给客户),分别是起始地址、结束地址
# route 10.8.0.0 255.255.255.0 #增加一条静态路由,省略下一跳地址,下一跳为对端地址,这里是: 10.8.0.2
# if client-to-client: #如果使用client-to-client这个选项
# push "route 10.8.0.0 255.255.255.0" #把这条路由发送给客户端,客户连接成功后自动加入路由表,省略了下一跳地址: 10.8.0.1
# else
# push "route 10.8.0.1" #否则发送本条路由,这是一个主机路由,省略了子网掩码和下一跳地址,分别为: 255.255.255.255 10.8.0.1
#
# if dev tap: #如果使用tap设备,则等效于以下命令
# ifconfig 10.8.0.1 255.255.255.0 #配置tap设备的地址
# ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0 #客户端使用的地址池,分别是起始地址、结束地址、子网掩码
# push "route-gateway 10.8.0.1" #把环境变量route-gateway传递给客户机
#
server 10.8.0.0 255.255.255.0 #等效于以上命令
#用于记录某个Client获得的IP地址,类似于dhcpd.lease文件,
#防止openvpn重新启动后"忘记"Client曾经使用过的IP地址
ifconfig-pool-persist ipp.txt
#Bridge状态下类似DHCPD的配置,为客户分配地址,由于这里工作在路由模式,所以不使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
#通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
#VPN启动后,在VPN Server上增加的路由,VPN停止后自动删除
;route 10.9.0.0 255.255.255.252
#Run script or shell command cmd to validate client
#virtual addresses or routes. 具体查看manual
;learn-address ./script
#其他的一些需要PUSH给Client的选项
#
#使Client的默认网关指向VPN,让Client的所有Traffic都通过VPN走
;push "redirect-gateway"
#DHCP的一些选项,具体查看Manual
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"
#如果可以让VPN Client之间相互访问直接通过openvpn程序转发,
#不用发送到tun或者tap设备后重新转发,优化Client to Client的访问效率
client-to-client
#如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA
#和keys连接VPN,一定要打开这个选项,否则只允许一个人连接VPN
;duplicate-cn
#NAT后面使用VPN,如果VPN长时间不通信,NAT Session可能会失效,
#导致VPN连接丢失,为防止之类事情的发生,keepalive提供一个类似于ping的机制,
#下面表示每10秒通过VPN的Control通道ping对方,如果连续120秒无法ping通,
#认为连接丢失,并重新启动VPN,重新连接
#(对于mode server模式下的openvpn不会重新连接)。
keepalive 10 120
#上面提到的HMAC防火墙,防止DOS攻击,对于所有的控制信息,都使用HMAC signature,
#没有HMAC signature的控制信息不予处理,注意server端后面的数字肯定使用0,client使用1
tls-auth ta.key 0 # This file is secret
#对数据进行压缩,注意Server和Client一致
comp-lzo
#定义最大连接数
;max-clients 100
#定义运行openvpn的用户
user nobody
group nobody
#通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys
persist-key
#通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的,
#否则网络连接会先linkdown然后linkup
persist-tun
#定期把openvpn的一些状态信息写到文件中,以便自己写程序计费或者进行其他操作
status openvpn-status.log
#记录日志,每次重新启动openvpn后删除原有的log信息
log /var/log/openvpn.log
#和log一致,每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后
;log-append openvpn.log
#相当于debug level,具体查看manual
verb 3
--------------Cut Here-----------------
把server.conf文件保存到/etc/opennvpn目录中,并把使用easy-rsa下的脚本什成的key都复制到/etc/openvpn目录下,命令如下:
#cd /etc/openvpn
#cp easy-rsa/keys/ca.crt .
#cp easy-rsa/keys/server.crt .
#cp easy-rsa/keys/server.key .
#cp easy-rsa/keys/dh1024.pem .
#cp easy-rsa/keys/ta.key .
#cp easy-rsa/keys/vpncrl.pem .
创建OpenVPN启动脚本,可以在源代码目录中找到,在sample-scripts目录下的openvpn.init文件, 将其复制到/etc/init.d/目录中,改名为openvpn
然后运行:
#chkconfig --add openvpn
#chkconfig openvpn on
立即启动openenvpn
#/etc/init.d/openvpn start

接下来配置客户端的配置文件client.conf:
Linux或Unix下使用扩展名为.conf Windows下使用的是.ovpn,并把需要使用的keys复制到配置文件所在目录ca.crt elm.crt elm.key ta.key
-------------Cut Here---------------------
# 申明我们是一个client,配置从server端pull过来,如IP地址,路由信息之类"Server使用push指令push过来的"
client

#指定接口的类型,严格和Server端一致
dev tap
;dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# 使用的协议,与Server严格一致
;proto tcp
proto udp

#设置Server的IP地址和端口,如果有多台机器做负载均衡,可以多次出现remote关键字

remote 61.1.1.2 1194
;remote my-server-2 1194

# 随机选择一个Server连接,否则按照顺序从上到下依次连接
;remote-random

# 始终重新解析Server的IP地址(如果remote后面跟的是域名),
# 保证Server IP地址是动态的使用DDNS动态更新DNS后,Client在自动重新连接时重新解析Server的IP地址
# 这样无需人为重新启动,即可重新接入VPN
resolv-retry infinite

# 在本机不邦定任何端口监听incoming数据,Client无需此操作,除非一对一的VPN有必要
nobind

# 运行openvpn用户的身份,旧版本在win下需要把这两行注释掉,新版本无需此操作
user nobody
group nobody

#在Client端增加路由,使得所有访问内网的流量都经过VPN出去
#当然也可以在Server的配置文件里头设置,Server配置里头使用的命令是
# push "route 192.168.0.0 255.255.255.0 "
route 192.168.0.0 255.255.0.0

# 和Server配置上的功能一样如果使用了chroot或者su功能,最好打开下面2个选项,防止重新启动后找不到keys文件,或者nobody用户没有权限启动tun设备
persist-key
persist-tun

# 如果你使用HTTP代理连接VPN Server,把Proxy的IP地址和端口写到下面
# 如果代理需要验证,使用http-proxy server port [authfile] [auth-method]
# 其中authfile是一个2行的文本文件,用户名和密码各占一行,auth-method可以省略,详细信息查看Manual
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# 对于无线设备使用VPN的配置,看看就明白了
# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# Root CA 文件的文件名,用于验证Server CA证书合法性,通过easy-rsa/build-ca生成的ca.crt,和Server配置里的ca.crt是同一个文件
ca ca.crt
# easy-rsa/build-key生成的key pair文件,上面生成key部分中有提到,不同客户使用不同的keys修改以下两行配置并使用他们的keys即可。
cert elm.crt
key elm.key

# Server使用build-key-server脚本什成的,在x509 v3扩展中加入了ns-cert-type选项
# 防止VPN client使用他们的keys + DNS hack欺骗vpn client连接他们假冒的VPN Server
# 因为他们的CA里没有这个扩展
ns-cert-type server

# 和Server配置里一致,ta.key也一致,注意最后参数使用的是1
tls-auth ta.key 1

# 压缩选项,和Server严格一致
comp-lzo

# Set log file verbosity.
verb 4
--------------Cut Here---------------------
Linux下Client的OpenVPN的安装方法一样,只是配置文件和keys上的不同,只要把client.conf ca.crt elm.crt elm.key ta.key复制到/etc/openvpn目录即可启动VPN。
Win下OpenVPN的安装,WIN下有图形界面的OpenVPN-GUI程序,下载地址http://openvpn.se
下载安装,默认下一步就OK了,安装完事后在托盘上出现一个新的图标,把client.ovpn ca.crt elm.crt elm.key ta.key文件拷贝到C:\Program Files\openvpn\config目录下,然后点右键connect就OK了。
对于LinuxServer使用NAT的一些说明:
首先要把系统的Forward打开,可以通过如下命令实现
echo 1 > /proc/sys/net/ipv4/ip_forward
或者使用
sysctl -w net.ipv4.ip_forward=1
或者修改/etc/sysctl.conf文件,增加
net.ipv4.ip_forward = 1
设定SNAT的规则,使用iptables命令
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j SNAT --to-source 192.168.1.2
OK,OpenVPN Client可以访问内网了。

Michael Young

unread,
Aug 1, 2007, 1:27:25 AM8/1/07
to key...@googlegroups.com
不同的VPN所用的领域不同,作用也自然不同.
 
OpenVP我始终觉得如果公司出现内鬼的话,窃取资料将更加容易.

老K实验室

unread,
Aug 1, 2007, 1:27:29 AM8/1/07
to key...@googlegroups.com
端口映射和代理功能非常重要也是必须的。

老K实验室

unread,
Aug 1, 2007, 1:31:00 AM8/1/07
to key...@googlegroups.com
你無間道看多了。

Michael Young

unread,
Aug 1, 2007, 1:36:38 AM8/1/07
to key...@googlegroups.com
不同的VPN用的领域不同,作用当然也不同.
 
我喜欢用HAMACHI打游戏,感觉还不错.

Michael Young

unread,
Aug 1, 2007, 1:40:05 AM8/1/07
to key...@googlegroups.com
虚拟专用网络(V P N )是利用隧道技术,通过在公用网络上建立逻辑隧道,网络层的加密以及采用口令保护,身份验证,权限设置,防火墙等设施,保证数据的完整性,避免被非法窃取,将远程用户,分支机构,业务合作伙伴等和公司的企业网连接起来,构成一个扩展的企业网

Michael Young

unread,
Aug 1, 2007, 1:53:43 AM8/1/07
to key...@googlegroups.com
為何要用VPN

相較於傳統的專線式網路連結,VPN的架構至少提供了下列的幾項優點:
(1). 成本較低。VPN的架設在設備的使用量及廣域網路的頻寬使用上均較專線式的架構節省,故能使企業網路的總成本(Total
Cost of Ownership) 降低。根據分析,在LAN-to-LAN的連結上,VPN將較專線式的架構成本節省20% ~ 40%左右;而就遠端存取
(Remote Access)而言,VPN更能比直接撥接至企業內部網路節省60% ~ 80%的成本。

(2). 網路架構彈性較大。VPN較專線式的架構來的有彈性,當有必要將網路擴充或是變更網路架構時,VPN可以輕易的達成;
相對的,傳統的專線式架構便需大費周章了。

(3). 管理方便。較少的網路設備及實體線路,使網路的管理較為輕鬆;不論分公司或是遠端存取用戶再多,均只需透過Internet
的路徑進入企業網路。

Michael Young

unread,
Aug 1, 2007, 1:54:55 AM8/1/07
to key...@googlegroups.com
何謂VPN

VPN,"虛擬私有網路",簡易的說法,即是指在公眾網路架構上所建立的企業網路,且此企業網路擁有與私有網路相同的安
全、管理及效能等條件。VPN乃是原有專線式企業私有廣域網路的替代方案,VPN並不是改變原有廣域網路的一些特性,諸如
多重協定的支援、高可靠性及高擴充度,而是使用更為符合成本效益的方式來達成這些特性。

VPN可以分成三大項目,分別為遠端存取(Remote Access)、Intranets 及Extranets。遠端存取VPN乃是連結移動用戶(Mobile User)及
小型的分公司,透過電話撥接上網來存取企業網路資源。Intranet VPN是利用Internet來將固定地點的總公司及分公司加以連結,
成為一個企業總體網路。而Extranet VPN則是將Intranet VPN的連結再擴展到企業的經營夥伴,如供應商及客戶,以達到協力廠
商彼此資訊共享的目的。

Michael Young

unread,
Aug 1, 2007, 1:57:10 AM8/1/07
to key...@googlegroups.com
VPN的注意事項

(1). 企業對於VPN的建構及應用上,並不應該將原有的廣域網路架構完全替換掉,而是要在既有的廣域網路架構上加上VPN的
功能,改變網路的邏輯架構,進而得到VPN節省成本、具彈性且易於管理的優點。若是完全引進新的VPN設備而不利用現有之
廣域網路設備來做為VPN之節點,則勢必使建置之成本倍增,且增加網路架構之複雜性;反之,若能使用現有的路由器
(Router)、防火牆(Firewall)等設備,使之成為VPN的節點,則可大幅降低VPN的建置成本,並且易於管理。

(2). VPN的資料均需在加密之後,才由公眾網路傳送至接收端,再由接收端設備加以解密。故每一個封包在整個傳輸過程中均
需被加、解密一次,而加密、解密均是相當消耗VPN設備運算能力的工作。因此,VPN設備的加解密速度表現,快者可達
100Mega,慢者則只有幾Mega的速度,亦是在架設VPN時必需要謹慎考量的因素。如上節所述,硬體式的VPN產品在運作效能
上會比軟體VPN產品有較佳的表現。故在使用量較大、對加解密及傳輸速度在意的用戶,應以硬體式的VPN產品,如VPN路由
器及擁有VPN功能之硬體防火牆為較佳之考量。

(3). 考量VPN產品的連結相容性,未來的VPN產品均會以IETE所公怖的IPSec協定為標準,來作為彼此資料加解密、傳輸的依
據。然而到目前為止,在實際的應用上,不同廠牌的VPN產品仍常會有連結上無法完全相容的問題。故就現實面而言,仍應以
同一廠牌之VPN產品做為企業體VPN 建置的設備,所需面臨的困難最少。也因為如此,選擇足夠規模、能夠提供完整的VPN解
決方案的廠商,亦成立VPN建構中重要的課題。而所謂的VPN完整解決方案極是包括本文所提及之遠端撥接(Remote Access,
Client-to-LAN VPN)、Intranet VPN & Extranet VPN (LAN-to-LAN VPN)等架構,以及擴充性佳、完整網路安全功能、以及VPN服務
(QoS Service)等項目。

(4). 在VPN架構安全考量的使用者認證部份,若能以集中式的管理方式(Centralized Management)來運作,必能減少網路管理的負
擔。網路上需要有認證機制的設備,除了VPN產品之外,亦有防火牆及遠端撥接伺服器(Remote Access Server)等設備。若所有這
些設備均能透過單一的安全認證伺服器來做認證的工作,則無論未來網路如何擴充,永遠只需一套認證伺服器即可滿足需求。

Michael Young

unread,
Aug 1, 2007, 1:57:32 AM8/1/07
to key...@googlegroups.com
VPN的產品種類

市面上VPN產品相當多,不過可以區分成三大種類,分別是硬體式的VPN系統,軟體式的VPN產品以及與防火牆相結合的VPN
系統;分述如下。

(1). 硬體式的VPN系統

最常見的硬體式的VPN設備便是VPN加密的路由器(VPN Router)。因為這些設備將加解密的鑰匙儲存於記憶體中,故較不易被損
壞,同時加解密的速度亦較快;尤其是專線頻寬較高之企業,硬體式的設備應是較佳的選擇。此外,若再****配個人用戶使用
的VPN軟體(VPN Client Software),則其功能亦與軟體式的VPN產品相近。

(2). 軟體式的VPN產品

軟體式的VPN產品乃是架設於伺服器及作業平台之上,可以提供較為彈性的功能,例如依據目的地位址或通訊協定來建立VPN
通道。相對的,硬體式的VPN系統則多數依據位址目的地來建立VPN通道,將傳輸的所有通訊協定均加密。

然而,軟體式的VPN產品通常較難以管理;需要對作業系統、VPN軟體及相關之網路安全機制均有相當程度的了解,才能真正
管理好VPN系統。同時,有些VPN軟體亦需要對路由路徑表(Routing Table)及網路IP位址規劃(Network Address Scheme)加以修
改。

(3). 與防火牆相結合的VPN系統

與防火牆相結合的VPN系統自然承襲了防火牆安全功能的優點,使進出的交通均能受到較佳的限制及保護,以及強化的認證功
能。一般而言,相當多的VPN廠商並沒有提供對於其作業系統的安全保護。若是採用硬體式且具有VPN功能的防火牆設備,則
本身便已對其運作的作業系統做了補強作用(Harden O.S),事先將所有不必要及有危險的服務(Service)均加以去除,以確保此
VPN設備不會被駭客所入侵,而導致整體VPN系統功能無法運作。

同時擁有VPN及防火牆功能的設備,對於網路的安全建構有相當大的好處,只需一台機器便可擁有兩項不可或缺的功能,建置
成本明顯降低,且管理的負擔亦較輕。

老K实验室

unread,
Aug 1, 2007, 1:58:40 AM8/1/07
to key...@googlegroups.com
OpenVPN功能很强大,界面不够友好,有着在LINUX下开发出来的自由软件共同特性,需要使用命令行和手工修改配置文件的方式进行配置,对不少人这个都是个问题。
玩游戏还是用那种傻瓜型的点击几下就能用的平台软件吧。

Michael Young

unread,
Aug 1, 2007, 1:58:48 AM8/1/07
to key...@googlegroups.com
構成VPN的要件

VPN網路的形成,必定要有幾個重要的要素及條件,以確保資料能被安全、及時的傳輸於公眾網路之上。這些要件分別是:

(1). VPN平台的擴展性(Platform Scalability)

VPN的平台需要具備完整的擴展性,大至企業總部的設備,小至各分公司,甚至個人撥接用戶,均可被包含於整體的VPN架構
中。同時,VPN的平台亦需保留有對未來廣域網路頻寬擴充及連結架構更新的彈性。

(2). 安全(Security)

過去企業的網路架構,多以封閉式的專線連結為主;其主要考量即是在於資料傳輸的"安全性"。若在安全性不能被保障的狀
況下,一旦企業重要資料被駭客或有心人士所竊取,將對企業造成難以彌補的傷害及損失。這樣的危機考量,絕對是較網路建
置成本、便利性等因素來的更為重要,且不可替代。所以在VPN架構中的各項安全機制,諸如通道(Tunneling)、加密
(Encryption)、認證(Authentication)、防火牆(Firewall)及駭客偵防系統(Intrusion Detection)等技術,便成為VPN技術中最為重要的一
環。

VPN的建置中,必需透過上述的各項網路安全技術,確保資料在公眾網路中傳輸時不致於被竊取,或是縱使被竊取了,對方亦
無法讀取封包內所傳送的資料。如此才可讓VPN的架構,取代傳統的專線式網路連結,而仍然讓企業的資料傳輸擁有相同的"
安全性"保障。

(3). VPN服務

頻寬的管理及服務品質(Quality of Service,QoS)服務的提供,來確保資料透過公眾網路傳輸時的及時性,避免網路的阻塞,並
提供封包資料的等級分類及傳送。

Michael Young

unread,
Aug 1, 2007, 2:00:33 AM8/1/07
to key...@googlegroups.com
VPN安全項目介紹

如上節所述,資料在公眾網路中傳輸的安全性乃是VPN架構中,相當重要的一個因素;這些相關的技術包括通道(Tunneling)、
加密(Encryption)、封包認證(Packet Authentication)、防火牆(Firewall)、使用者認證(User Authentication)及入侵偵防系統(Intrusion
Detection),分述如下:

(1). Tunneling & Encryption

藉由對資料加密的通道點對點傳輸技術,VPN可以確保非授權的用戶無法於公眾上讀取到他人的機密文件。通道技術讓企業能
建立邏輯上的點對點網路連結,而加密技術則是將欲傳送的資料加以編碼、計算,使得唯有發送者及接收者能夠解讀其中的意
義。

一般常見的通道技術協定為Layer 2 Tunneling Protocol (L2TP)、Layer 2 Forwarding (L2F)、Generic Routing Encapsulation (GRE)及IP
Security (IPSec)。而加密的技術則依加密鑰匙的長度不同,有DES及3DES等,至於加密鑰匙的管理,則可配合相關的管理伺服器
(Certificate Authentication Server,CA Server)來達成。

(2). Packet Authentication

當VPN的虛擬通道建立,資料要開始於通道上傳輸時,為了確保資料的完整性及確認其未被駭客修改過,便需利用一些封包認
證的協定來達到此目的。常見的技術如AH、ESP、MD-5及SHA等協定。傳送者及接收者於加密通道建立時便需溝通好依何種封
包認證技術來做資料的傳輸,故當接收者收到資料封包之後,便可利用事先約定好的封包認證方式來檢查封包是否在公眾網路
傳輸時被修改過。

(3). Firewall & Intrusion Detection

提供網路安全,便不能不談到防火牆及偵防系統,尤其在VPN的網路架構下,這些功能的建立更是不可或缺的。透過防火牆及
偵防系統,可以將可能的駭客入侵或是非授權用戶阻隔於企業網路之外,以保障企業網路的安全。

(4). User Authentication

VPN既然允許遠端的用戶透過網際網路來進入企業網路內部存取資料,對於使用者身份的確認及權限的管理便極為重要。使用
完整的安全認證伺服器(Authentication, Authorization and Accounting Server),便可加強使用者的認證管理,以確保機密資料不會
被非相關人員所讀取。
Reply all
Reply to author
Forward
0 new messages