Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

基于IPsec的虚拟专用网在Linux上的实现--安装配置篇

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

上一篇我们介绍了基于IPsec的VPN的基本原理, 现在我们来看看具体怎么配置自己的虚拟专用网.

1.VPN的类型

  关于如何组建VPN, 有的公司付费购买专门的软件, 而有的公司用自己的路由器来实现, 因为很多路由器内嵌VPN功能. 这些VPN可以像SSH隧道一样简单, 也可以做的很复杂. 所有的方案都有一个共同点, 那就是必须在不安全的互连网创建一个虚拟的安全的隧道. VPN主要有以下类型:

  • IPsec
  • VPND
  • SSH
  • 诸如一些CISCO路由器(内嵌VPN功能)

2.我推荐的选择FreeS/WAN

  上面如此多的选择, 为什么我要选择Linux上的FreeS/WAN(基于IPsec)来实现VPN呢?

  因为从目前的应用情况看, FreeS/WAN是目前最安全的在Linux上的实现方案. 它基于 3DES等加密算法. 另外, 试验表明SSH和VPND方案缺少FreeS/WAN的某些功能, 而且IPsec被越来越多的其他软件所支持, 以后的兼容性更好. 例如, NAI的PGPnet就和FreeS/WAN一起工作得很好. 但是, 我认为真正重要的一点是, 它是免费的(Linux也是免费的), 这对于我们国内用户来说, 不用花大价钱去买专门的软件, 您只需要向ISP支付一点上网费, 就可以组建自己的廉价的VPN.

3.它的用途

  • 通过Internet连接2个甚至更多的办公室(当然是两地分居的那种);
  • 允许公司的某个职员在千里之外远程登录到公司内部网络;
  • 在Internet上, 数据是在一个虚拟的安全通道内传播;

4.安装和配置IPsec和FreeS/WAN1.5

4.1.安装

  如果你的内核版本低于2.2.14, 那么我强烈建议你升级到2.2.14; 可以从http://www.kernel.org/下载. 按照你自己的要求编译内核, 开始最好不要IPsec支持(以后再做).

  然后到http://www.freeswan.org/ 上下载freeswan-1.5.tar.gz(七月二号出的最新版), 把这个文件放到/usr/src/目录下, 运行tar zxvf freeswan-1.5.tar.gz解开, 这时候会出现一个新的目录/usr/src/freeswan-1.5/, 所有的freeswan的源代码和各种文件都在这个目录下.

  这时候切记当前目录是/usr/src/freeswan-1.5/, 运行make menugo; 在网络部分, 确定所有IPsec的部分都被选上. 退出菜单, 保存新内核的设置, 注意!!!即使你什么也没改, 也必须save, 否则IPsec不会启动.

  现在你需要用新的内核启动, 运行

  cp /usr/src/linux-2.2.14/arch/i386/boot/bzImage /boot/vmlinuz-2.2.14

  将bzImage移到/boot目录下. 然后运行

  cp /usr/src/linux-2.2.14/System.map /boot/System.map-2.2.14

  来创建新的System.map文件. 最后在/usr/src/linux-2.2.14/下运行

  make modules
  make modules_install

  编辑/etc/lilo.conf, 将新的内核放到最前面, 运行lilo使之生效.

  重新启动, 你将会看到

  IPSec running under FreeS/WAN 1.5 will start up
  ipsec0 start up 

  等字样, 如果没有的话, 说明安装不正确, 需要重新安装.

4.2.VPN的配置

4.2.1.ipsec.conf 文件 (/etc/ipsec.conf)

  现在IPsec已经装好了, 我们需要用它来配置VPN. 典型的, 我们需要两个网关, 不必关心那个是左边的, 那个是右边的, 只要记住它们是一对, 就好像两个克隆人. 让我们看看下面的例子:

  Left Net === Left Gate -------------------- Right Gate === Right Net
                              Internet

  有关信息如下:

  Left Net: 192.168.1.0/24
  Left Gate (internal): 192.168.1.1
  Left Gate (external): 100.100.100.100
  Left Name: North
   
  Right Net: 192.168.2.0/24
  Right Gate (internal): 192.168.2.254
  Right Gate (external): 200.200.200.200
  Right Name: South
   

  现在需要在ipsec.conf文件里创建连接. 注意通信有很多种情况: Net to Net, Left Gate to Right Net, Left Net to Right Gate, and Gate to Gate. 每一个情况都必须有一个连接来处理. 我推荐你在对这些连接命名的时候最好能够反映通信情况. 本例中需要5个连接, 分别是%default, NorthNet-SouthNet, NorthGate-SouthNet, NorthNet-SouthGate和NorthGate-SouthGate. 注意名字中不能有空格.配置文件中加入下面内容:

  注意%default在文件中已经存在, 它说明了以后的连接所用的加密或认证算法以及密钥和spi等, 一般密钥需要改动. 如下

  # defaults for subsequent connection descriptions
  conn %default
      # How persistent to be in (re)keying negotiations (0 means very).
      keyingtries=0
      # Parameters for manual-keying testing (DON'T USE OPERATIONALLY).
      spi=0x200
      esp=3des-md5-96
      espenckey=0x01234567_89abcdef_02468ace_13579bdf_12345678_9abcdef0
      espauthkey=0x12345678_9abcdef0_2468ace0_13579bdf

  然后加入下面的新连接

  conn NorthNet-SouthNet
  left=100.100.100.100
  leftsubnet=192.168.1.0/24
  leftfirewall=yes
  right=200.200.200.200
  rightsubnet=192.168.2.0/24
  rightfirewall=yes
   
  conn NorthGate-SouthNet
  left=100.100.100.100
  right=200.200.200.200
  rightsubnet=192.168.2.0/24
  rightfirewall=yes
   
  conn NorthNet-SouthGate
  left=100.100.100.100
  leftsubnet=192.168.1.0/24
  leftfirewall=yes
  right=200.200.200.200
   
  conn SouthGate-NorthGate
  left=100.100.100.100
  right=200.200.200.200
   


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:http/www安全   下一篇:基于IPsec的虚拟专用网--原理篇

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号