利用 ssh 和 vtund 接入别人的局域网
最近在帮另一办公室的同事调试程序,有些东西远程弄起来比较麻烦,征得同意后,我希望直接连入对方的局域网来弄。但是申请 VPN 权限以及修改对方路由的程序比较繁琐,所以我想找个简单的方法。
首先我在我们办公室的网关上做了个 NAT ,让对方可以 ssh 到我的机器。
阅读 ssh 的手册我发现 openssh 支持一个 -w 参数,用来连接两端的 tun 设备。不过试了半天没有搞定 :( 所以又想了其它办法。
后来,我安装了 vtund 。对方在本机上以 server 模式启动 vtund ,监听本地端口。然后再通过 ssh -R 把本地端口映射到我的机器上。
我的机器以 client 方式启动 vtund ,连接上映射过来的 vtund 服务端口即可。
这个时候,两边使用 ifconfig 均可以查到 tun0 设备。用 ifconfig 设置一下点对点路由。由于两边系统不太一样,分别是 freebsd 和 linux ,语法有细微不同。感觉上 linux 的语法繁琐一些。
接下来,对方机器上设置好 ip 转发,作为网关。我的机器删除原有默认网关,并添加默认网关为对方的 vtun 的 ip 。 另外记得增加一条路由规则,由原网关连入对方 ip 。
一切搞定 :D 我的机器可以自由访问对方的局域网了。
ps. 为了安全,用来接收对方 ssh 登陆的用户特别设置了一下。在 .ssh/authorized_keys 里设置上 permitopen 只允许映射 vtund 的端口,并加上 command 强制允许一个死循环脚本。
这个方法反过来用的话,挺适合在外面不安全的环境上网的。在不安全的环境里,先通过 ssh 连接到自己信任的网络上,建立一个 VPN ,然后再访问其它网络资源。
Comments
Posted by: Homeway | (4) July 11, 2011 08:21 PM
Posted by: Anonymous | (3) November 19, 2008 01:39 PM
Posted by: 重庆人才网 | (2) November 18, 2008 08:45 PM
Posted by: LI Daobing | (1) November 18, 2008 09:25 AM