当前在线人数11409
首页 - 分类讨论区 - 电脑网络 - Linux 操作系统版 -阅读文章
未名交友
[更多]
[更多]
文章阅读:tomatovpn设置过程小结
[同主题阅读] [版面: Linux 操作系统] [作者:kukutf] , 2010年04月12日00:54:11
kukutf
进入未名形象秀
我的博客
[上篇] [下篇] [同主题上篇] [同主题下篇]

发信人: kukutf (五脚蟹★酷酷豆腐), 信区: Linux
标  题: tomatovpn设置过程小结
发信站: BBS 未名空间站 (Mon Apr 12 00:54:11 2010, 美东)

目的:
破解只有80/443端口开放的网络的限制,使得其他的端口的程序能够正常使用,比如
ssh的22端口,ftp端口,mitbbs的web radio:8000端口。

硬件要求:
1。能够刷tomato firmware的路由器
2。路由器用了dyndns注册了域名
3。路由器启动了openvpn server功能。
4。一个跑linux的笔记本

基本原理:
在路由器上启动vpn server服务,端口设在443上。
笔记本通过openvpn client,与路由器之间建立一个vpn安全连接,
所有的网络包都先转发到路由器上openvpn server。然后再上internet
因此,笔记本上能够用到的带宽,基本就是dsl路由器上传的带宽了。
一般dsl上传带宽就300-600kbps,不做大量下载,还够用。

vpn的认证方式有两种:static key和TLS,以下步骤是TLS用的,static key应该更简
单的。

路由器上的步骤
1。路由器刷上tomatovpn (http://tomatovpn.keithmoyer.com/),设置好dyndns,在port forwarding那里,把443映射到192.168.0.1路由器IP上。
2。配置路由器的vpn server,
  Basic:
     Start with wan (打勾)
     Interface Type (TUN) (windows下面,这个得用tap,相应的client设置也要改
成tap)
     Protocol (TCP)据说UDP更好,不过我实验过,好像连接不上的。
     Port (443)
     Firewall (Automatic)
     Authorization Mode (TLS)
     Extra HMAC authorization (disabled)
     VPN subnet/netmast (10.8.0.0, 255.255.255.0)
Advanced:
   Poll interval (0)
   Push LAN to clients (checked)
   Direct clients to redirect internet traffic (checked)
   Respond to dns (checked)
   Advertise dns to clients (checked)
   encryption cipher (use default)
   compression (enabled)
   tls renegotiation time -1
   Manage client-specif options (unchecked)
Keys:
   见下面产生key文件说明。
启动vpn server,等待连接。

笔记本上的步骤(都是在root下运行的)
3。在ubuntu笔记本上安装openvpn工具。
4。产生一堆key和certificate文件。具体看看:http://openvpn.net/index.php/open-source/documentation/howto.html#pki
这些文件,有4个是给路由器vpn服务器用的,有3个是给client用的。
这些文件一定要对应上,不要拷贝错了。
路由器vpn server的keys页面上,
"Certificate Authority"  <===> ca.crt
"Server Certificate" <===> server.crt (从"-----BEGIN CERTIFICATE-----"到"---
--END CERTIFICATE-----"这段)
"server key" <====> server.key
"Diffie Hellman parameters"  <===> dh1024.pem
client1.crt, client1.key, ca.crt文件,会被client.conf文件引用到的。我一般就
是把它们都拷贝到/etc/openvpn/目录下。
5。建立一个client.conf文件。这个client.conf文件在系统里面有个例子,拷贝到/
etc/openvpn下面,稍加修改就可以了。/usr/share/doc/openvpn/examples/sample-
config-files/client.conf
以下是我的修改地方:
proto tcp
remote 我的DYNDNS域名 443
ca ca.crt文件的绝对路径
cert client1.crt文件的绝对路径
key client1.key文件的绝对路径
keepalive 10 60
script-security 3 system 这个是为了运行下面两个关于dns解析的脚本
up /etc/openvpn/vpn-up
down /etc/openvpn/vpn-down
这是两个脚本的内容
#!/bin/bash
# vpn-up
TEMPFILE=`mktemp /tmp/resolv.conf.XXXXXX`
echo search fglan >> $TEMPFILE
for DHCPOPTVAR in ${!foreign_option*} ; do
    DHCPOPT="${!DHCPOPTVAR}"
    if echo $DHCPOPT | grep -qe '^dhcp-option.DNS' ; then
        echo $DHCPOPT | sed -re 's/dhcp-option.DNS.([0-9.]+)$/nameserver \1/
' >> $TEMPFILE
    fi
done
cat $TEMPFILE | resolvconf -a $dev
rm $TEMPFILE


#!/bin/bash
# vpn-down
rm /etc/resolvconf/run/interface/tun0
resolvconf -u


6。在root shell下面,运行openvpn /etc/openvpn/client.conf
7。如果正常的话,ifconfig可以看到一个新的网络设备。
8。如果发现firefox还是无法上网,就要看看/etc/resolv.conf,是不是把dns服务器
设置对了。

Have fun and good luck.
--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 76.199.]

[上篇] [下篇] [同主题上篇] [同主题下篇]
[转寄] [转贴] [回信给作者] [修改文章] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回] [收藏] [举报]
 
回复文章
标题:
内 容:


未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996