萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux簡明系統維護手冊(五)

Linux簡明系統維護手冊(五)

class="22686">  (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.local中加上:


  modprobe ip_nat_ftp

  安裝完了,接下來我們將說明幾種VPN的玩法。

  2、配置Frees/wan用於支持雙網關通信。也就是兩個異地的子網通過一對ipsec的VPN網關進行交互訪問。第一種玩法是網絡對網絡的VPN。一般的,某企業在甲乙兩地(距離相當遠)各有一個辦公室,每個辦公室各有一套LAN,他們分別通過專線連接到internet網絡上。甲LAN上是企業的管理中心,運行著企業的管理系統。而乙LAN上的用戶也需要使用該管理系統,盡管乙LAN可以通過internet(公網)連接過去,但是企業的老板說不行!我們的數據不能暴露在公網上,必須加密!好了,我們的VPN網絡就可以應用於該企業的這種需求。首先在甲乙兩個LAN的出口各放置一台我們的Linux服務器,他們都安裝好了ipsec(前面說的安裝步驟一個都不少),兩個LAN的數據分別通過各自的這台機器(ipsec gateway)進入公網,凡是經過該網關的數據全部都是加密的。在效果上,兩個LAN的用戶可以互相ping到對方的機器,盡管他們可能一個是192.168.1.0/24網段,另一個是192.168.10.0/24網段的。他們好像在同一個局域網中工作,沒有界限。公共網絡的加密部分對他們來說也是透明的。而兩個LAN在公共網絡上交換的數據是密文的。這就是虛擬專用網VPN。

  但願你已經按照前面的步驟順利的安裝好了兩台機器,下面我告訴你怎樣配置成網對網的環境。

  2.1 我們先配置甲網的ipsec網關(該網關有兩個網卡,我們配置他們的地址分別為eth1:192.168.1.231和eth0:21.9.22.22)。安裝完成後,我們首先要做的事情是生成CA證書。(用到剛才安裝的openssl)

  2.2 找到openssl.cnf文件,一般在/etc/ssl/中,也可能在/var/ssl中或/usr/ssl中(實在不行你就find / -name “openssl.cnf”找找嘛!),要是有好幾個,你要搞清楚哪個是你安裝的版本。改動其中的default_bits選項的值從1024到2048,然後改動default_days的值到3650。讓期限為10年!保存退出。

  2.3 在/var/中建立一個目錄:/var/sslca,改變該目錄的權限為700(chmod 700 /var/sslca)

  2.4 在你安裝的openssl目錄中找到CA.sh腳本。注意,應該是你當前運行的openssl版本的CA.sh

  2.5 cd /var/sslca 進入到你剛才建立的目錄

  2.6 比如你剛才找到的CA.sh在/usr/lib/ssl/misc/,那麼就輸入/usr/lib/ssl/misc/CA.sh –newca,接下來你會被問到一系列問題。問題和回答類似於下面的樣子。如果你確認哪些你有把握更改就改,比如公司名稱、郵件、密碼等。不能確定的就按照下面的樣子抄上即可。


  ~/sslca#/usr/lib/ssl/misc/CA.sh -newca
  CA certificate filename (or enter to create)
(enter)
  Making CA certificate ...
  Using configuration from /usr/lib/ssl/openssl.cnf
  Generating a 2048 bit RSA private key
  ........................................+++
  ........................................+++
  writing new private key to './demoCA/private/./cakey.pem'
  Enter PEM pass phrase:(enter password)
  Verifying password - Enter PEM pass phrase:(enter same password again)
  -----
  You are about to be asked to enter   
  information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.

						
copyright © 萬盛學電腦網 all rights reserved