Secure VPN (Virtual Private Network) 实例分析

  • 系统方案说明:

    • 包括 192.168.0.x (IT),192.168.1.x (Finance),192.168.2.x (Sales and Marketing) 三个子网的 intranet

    • 与 internet 相连的网关主机 igloo.its.unimelb.edu.au,配有两块网卡,跨在两个网段上。内部网址 192.168.0.1,外部地址 128.250.18.40

    • Mobile User 通过本地 ISP 的 PPP 连接进入 internet,被动态分配的 IP 地址为 202.108.2.10。现可连上 internet 网关主机 igloo.its.unimelb.edu.au (IP: 128.250.18.40)



    • Mobile User 在网关 igloo 上有 account - "terrence""terrence" 可直接通过 Secure Shell 登录 igloo (无需口令验证);通过 sudo,"terrence" 可运行 pppd∶

      [terrence@igloo terrence]$ cd .ssh/
      
      [terrence@igloo .ssh]$ cat authorized_keys 
      1024 35 117999148810358794844308185618547122781973349391506660734244887754296071
      16871816825514212679805495612085212696115756233064925862459322186706997676395094
      49801813714415807320591874229419242883266585135616876135901613250579653382087071
      83551152175609460944511846722692015356746283638349364870193219740994753407531 te
      rrence@nomad.paradise.net
      
      [terrence@igloo terrence]$ cat /etc/sudoers
      terrence        ALL=NOPASSWD: /usr/sbin/pppd
      		
    • 网关主机 igloo 上装有 sudo,pppd 和 ssh

    • Mobile User 的主机上装有 pty-redir,pppd,sudo 和 ssh



  • 操作步骤:

    1. [terrence@nomad terrence]$ /usr/bin/pty-redir /usr/bin/ssh -t -l terrence igloo.
      its.unimelb.edu.au sudo /usr/sbin/pppd passive
      /dev/ttyp3
      
      [terrence@nomad terrence]$ 
      		
    2. [terrence@nomad terrence]$ sudo /usr/sbin/pppd /dev/ttyp3 local 192.168.2.121:19
      2.168.0.1
      
      [terrence@nomad terrence]$ ifconfig
      ppp0      Link encap:Point-to-Point Protocol  
                inet addr:202.108.2.10  P-t-P:202.108.2.1  Mask:255.255.255.255
                UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
                RX packets:7 errors:0 dropped:0 overruns:0 frame:0
                TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:10 
      
      ppp1      Link encap:Point-to-Point Protocol  
                inet addr:192.168.2.121  P-t-P:192.168.0.1  Mask:255.255.255.255
                UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
                RX packets:7 errors:0 dropped:0 overruns:0 frame:0
                TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:10 
      
      [terrence@nomad terrence]$ route -n
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      202.108.2.10    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
      192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ppp1
      127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
      0.0.0.0         202.108.2.1     0.0.0.0         UG    0      0        0 ppp0
      		
      这样,你就在非 Secure 的 ppp0 连接的基础上建立了 Secure 的 IP Tunnel - ppp1;此时你的主机已变成你部门内部 intranet 上的一个节点,因此你就可以访问所有的 intranet 上资源了。由于是 Secure 连接,即使是通过 internet,你也不必担心有任何机密资料会泄露了。

      推而广之,VPN 并不仅限于 Mobile User,PPP Connection 的联接,在 intranet,extranet,internet 上都可以实现。

      无论多么大型的企业,只需一个 internet IP 地址,就可架构完整的全球规模的 IT infrastructure。VPN 技术使梦想成为了现实。


  • Reference:



  • Software you need to install:

    • SSH Secure Shell - ssh-1.2.26-4i; ssh-clients-1.2.26-4i; ssh-server-1.2.26-4i
    • Sudo - sudo-1.5.9p3-1
    • pppd - ppp-2.3.7-2
    • pty-redir - pty-redir-0.1