2003-10-22, 07:29 PM | #1 | |
注册日期: 2003-10-22
帖子: 11,053
积分:6
精华:24
现金:14348金币
资产:29325305金币
|
LINUX下用SSH+PPPD实现企业间VPN
这是我参考网上N多文章,综合实验,成功后的方法,无需下载其它软件,无需打补丁和重编译内核,用PPPD OVER SSH实现的企业间VPN。 一、环境 本地(Local):Redhat Advananced Server, IP:192.168.0.1, 域名:local.3322.org 远地(Remote): Redhat 8.0, IP:192.168.1.1, 域名:remote.3322.org 二、步骤 两端操作都用root用户 1、Remote端 建用户:adduser vpnuser 2、Local端 生成KEY:ssh-keygen -t das 在.ssh目录下生成两个文件:id_dsa id_dsa.pub 3、Local端 把id_dsa.pub考到Remote端:scp .ssh/id_dsa.pub remote.3322.org:/tmp 4、Remote端: cat /tmp/id_dsa.pub >> ~vpnuser/.ssh/authorized_keys 5、Remote端 再把权限赋给vpnuser: chown -R vpnuser:vpnuser ~vpnuser/.ssh chmod 711 ~vpnuser/.ssh chmod 644 ~vpnuser/.ssh/authorized_keys 6、测试:在Local端, ssh -l vpnuser remote.3322.org 应该不用输密码就能连接,否则,重新查查看啦。 7、Remote端 给vpnuser运行pppd和route的权限,修改文件:/etc/sudoer 加两行: Cmnd_Alias VPN=/usr/sbin/pppd,/sbin/route vpnuser ALL=(ALL) NOPASSWD: VPN 8、Local端 最重要的一步了---连! pppd connect-delay 5000 pty "ssh -t -l vpnuser remote.3322.org sudo /usr/sbin/pppd noauth ipcp-accept-remote ipcp-accept-local" 192.168.0.2:192.168.1.2 noauth local ipcp-accept-local ipcp-accept-remote 注意:这里假设本地和远地192.168.0.2和192.168.1.2都是没被使用的 用ifconfig看看,如果多了个ppp设备,就算连接成功了。 一般要试几次才成功。 9、建立路由 Local端:route add -net 192.168.1.0/24 gw 192.168.1.2 Remote端:route add -net 192.168.0.0/24 gw 192.168.0.2 (或者在Local端:ssh -t -o 'Batchmode yes' -l vpnuser remote.3322.org sudo /sbin/route add -net 192.168.0.0/24 gw 192.168.0.2) 这样,两端的局域网就算连在地起了,局域网内任找台能上网的电脑,ping一下对方的IP看看,没问题! 10、断开连接:ps找进程,kill它。 三、把连接过程写个script吧,我不会 |
|
|
||
|