通过 OpenVPN 隧道广播 DHCP

lan-to-lan(AB 两个 IDC) 的 OpenVPN(tun) 网络,A 端的 lan 里面部署有一台 DHCP,想通过隧道广播到 B 端内网里面,这个明显是不可能的,中间需要跨越多个网络。因此可以通过 relay 实现。
在 B 端的 GWb 上部署一台 dhcrelay,将其指向 A lan 的 DHCP,按理来说 B lan 里面的机器这下可以获取到从 A 过来的 relay 了,可是试了几次都没有成功。调试过程中用到了如下的两个工具。

一个是 dhcpdump。还有一个是 dhcping,这个用的比较多,可以模拟做 request:
# dhcping -h 00:12:3f:20:11:49 -s 10.1.200.200 -c 10.1.200.1 -V

或者
# dhcping -s 255.255.255.255 -r -V
在 g 上搜 "dhcp over vpn" 一搜一大把,应该是有不少成功的案例的,我这里为什么获取不到 IP,到目前为止还不清楚,就当抛砖引玉了。

MS 下脚本启动 OpenVPN

MS 上的 OpenVPN 没有安装 GUI,连内网机器都要打开 DOS 手动输入那几个重复的命令。学了点 bat 的东西,写了个简单的脚本。

cd "C:\Program Files\OpenVPN\config\vpn"
openvpn --config client.conf start

保存该文件。

注意:刚新建一个 "Text Document",然后重命名为 vpn.bat。但是图表依然是文本的样子,在 DOS 查看,真正的全名是 vpn.bat.txt。所以要变成真正的 bat 文件需要在 DOS 下执行:

C:\Documents and Settings\Administrator>move vpn.bat.txt vpn.bat

接下来双击就可以运行了。

pptp

pptp(point to point tunneling protocol) 使用的认证方式有如下四种:
pap(Password Authentication Protocol):使用明文传送用户名密码
chap(Challenge/Handshake Authentication Protocol):即 challenge/response 的方式
MSCHAP:MS 自家搞的一套玩意儿。
MS-CHAP-v2:升级版本

建议使用 MS-CHAP-v2

加密使用的是 MPPE(Microsoft’s Point-to-Point Encryption protocol,又是 MS 搞的一套),基于 RSA,基本没有安全性可言。那为什么还有那么多人用?方便,尤其对 MS 用户而言,点击几下就可以了。

pptp 使用的端口为 1723 ,不可修改端口。再加上使用 GRE(Generic Routing Encapsulation)协议来传输数据包使得 pptp 可以轻易被封锁。
Continue reading

Ubuntu 9.10 Server OpenVPN的配置

SSH配置完当然那就要上VPN啦;D话说配置刚开始时候客服给我的是台CentOS的,出于对CentOS部分命令的不熟悉(现在回过头来想想其实都是大同小异的)再加上对Ubuntu的喜爱,我还是麻烦他们帮我改成了Ubuntu Server的.
9.10的,1G的内存;硬盘貌似有点小,但是跑个VPN应该是没问题的.


 

预备问题:
在VPS内安装OpenVPN,或遇到两大问题:
1) OpenVPN所调用的/dev/net/tun设备无法启动,即VPS内没有加载tun内核模块
2)OpenVPN需要进行NAT地址转换,但VPS内的iptables没有加载iptables_nat模块
这 两个问题是因为VPS所在的宿主服务器没有加载需要的内核模块和配置,导致OpenVPN依存的设备和模块不能调用.由于VPS是有自身安全保护的,因此 VPS的用户自己无法进行配置操作需要联系VPS服务商,请服务商的系统管理员登录到宿主节点,在宿主节点上按照下列流程执行配置,解决这两个问题后,在 VPS内运行OpenVPN就畅通无阻了!
Continue reading