日期:2013-07-30  浏览次数:20538 次

(12)配置samba服务器

.....

(13)构建基于Linux的VPN网络

  构建VPN几乎是Linux的最高级应用之一了,学会了这项技术,是足以使你自豪的资本。VPN的主要用途就是建立一个加密的通信机制,然后通过把所有的你的子网的信息按照特定的方式加密传输,构成一个逻辑上的虚拟的网络。简单的说,就是一个Linux系统的IP层加密解决方案。这里面需要用到不少组件,下面一一介绍。

  1、准备工作和安装

  1.1 从http://www.kernel.org下载2.4.X的内核,除了2.4.15版本(该版本有一个致命错误)。然后把该内核放置到:/usr/src中。(这里我们使用Linux-2.4.18.tar.gz),然后释放:tar zxvf linux-2.4.18.tar.gz

  1.2 删除原来的连接rm linux

  1.3 ln –s linux-2.4.18.tar.gz linux

  1.4 检查当前的网卡和SCSI的型号(参见内核升级一章)

  1.5 cd linux (进入linux-2.4.18目录)

  1.6 make menugonfig

  1.7 make dep

  1.8 make bzImage

  1.9 编译工作做到这里就打住!

  1.10 从http://www.swox.com/gmp 下载gmp库的最新版本到/usr/local/src。

  1.11 tar zxvf gmp-4.0.1.tar.gz

  1.12 cd gmp-4.0.1

  1.13 ./configure

  1.14 make

  1.15 make install

  1.16 从http://www.freeswan.org下载freeswan-1.97.tar.gz(我们这里使用的版本)到/usr/local/src

  1.17 tar zxvf freeswan-1.97.tar.gz

  1.18 从http://www.strongsec.com/freeswan/ 下载x509patch-0.9.11-freeswan-1.97.tar.gz ,这个是补丁文件。释放,进入x509补丁目录,复制freeswan.diff到外面的freeswan源目录,然后回到freeswan源目录中运行:patch –p1 < freswan.diff

  1.19 从http://www.openssl.org下载openssl-0.9.6b版本到/usr/local/src,释放,进入目录

  1.20 ./config (如果原来系统中有openssl需要先uninstall再安装,不过一般情况下你可能uninstall不下来8-)。如果无法uninstall,找到他们的路径,在这里通过—prefix=参数指定路径覆盖旧版本的文件。这里严重建议:如果你没有把握确定路径,最好这样做:到你用的发行包的开发商的FTP站点(如果你用turbolinux就去ftp.turbolinux.com用redhat就去ftp.redhat.com),用anonymous用户和随便一个电子邮件作为密码登陆,找到你用的发行包版本的生机目录,然后下载相应的RPM包,注意:这里的包至少应该是0.9.6b1以上的i386版本。下载完毕后用rpm –Uvh更新。这样做完了很干净。

  1.21 make (如果你用rpm包升级就不用这个步骤了)

  1.22 make test (如果你用rpm包升级就不用这个步骤了)

  1.23 make install (如果你用rpm包升级就不用这个步骤了)安装完了以后执行openssl命令,输入version看看是不是你刚刚安装的版本。如果不是,可能没有覆盖原来安装的旧版本。从1.20重新来过

  1.24 然后回到freeswan的源目录,运行:make menugo,在networking options中选择关于iptables和ipsec相关的所有选项。其中ipsec是freeswan加上的,最好把前面括号中M(模块方式)换成*(编译进内核)。下列内核选项应该选上:

  进入:Networking Options至少选择上:


  [*] Network packet filtering (replaces ipchains)
  [*] Network packet filtering debugging (NEW)
  进入:IP: Netfilter Configuration --->
  <*> Connection tracking (required for masq/NAT) (NEW)
FTP protocol support (NEW)
IRC protocol support (NEW)




  注意:如果你需要使用DHCP功能,需要增加Pachet Socket mmapped IO和Socket Filtering两个选项,参见DHCP一章。

  等等……

  把下面的选项全部标记<*>

  返回上一层菜单后,把列表选项最下面的凡是IPSEC相关的选项全部选为<*>。另外的,如果你打算使用拨号连接请在网络设备支持菜单选择ppp支持(注意,你用的ppp程序一定要2.4版本以上的)

  1.25 然后检查网卡和硬盘选项是否正确,如果没有问题就逐层退出,然后保存配置。

  1.26 退出后将自动编译内核,等待……

  1.27 编译完成后,来到/usr/src/linux目录,运行:make modules;make modules_install

  1.28 cp System..map /boot/System.map-2.4.18-vpn

  1.29 cd arch/i386/boot

  1.30 cp bzImage /boot/vmlinuz-2.4.18-vpn

  1.31 cd /boot

  1.32 rm System.map

  1.33 ln –s System.map-2.4.18-vpn System.map

  1.34 vi /etc/lilo.conf

  增加一段:


  boot=/dev/sda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  lba32
  default=linux-vpn

  image=/boot/vmlinuz
label=linux
initrd=/boot/initrd
read-only
root=/dev/sda5
  image=/boot/vmlinuz-2.4.18-vpn
label=linux-vpn
initrd=/boot/initrd
read-only
root=/dev/sda5




  1.35 运行lilo更新数据

  1.36 reboot

  1.37 启动后,运行:ipsec setup restart 应该不报任何错误而正常出现freeswan的版本。

  注意:还有一些必要的内核参数配置,这些配置可以在rc.local中实现。他们是:


  echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
  echo 1 > /proc/sys/net/ipv4/ip_forward




  如果你把下面两项编译成模块(前面扩号是M而不是*):


   FTP protocol support (NEW)
IRC protocol support (NEW)




  你需要在rc.lo