DHCP +NAT+Transparent PROXY架設           瑞工網管林瑞豐89.10.21

  1. 前言:本校(瑞芳高工)當初向教育部申請一組class c的ip ,範圍210.59.2.0~255,但因ip不足,故利用REDHAT6.1版結合dhcp及nat...等功能將電腦教室隔開,電腦教室內使用虛擬位址(192.168.1.1~254),對外則使用1個合法位址(如210.59.2.161),並依區段特性,可作下列不同的結合設定:

       PS.以下5種組合除CASE 3,4兩者二擇一不要重覆外,其他各種功能可依需求獨立或互相結合搭配使用

特點:設定簡單,不過電腦教室內各學生PC需個別指定虛擬ip,dns,gate...,比較麻煩

特點:結合dhcp,各學生PC不用設定可直接動態取得虛擬ip,dns...

特點:於nat機器上再架proxy servcer 並結合redirect(導向)的功能,可強制學生的request 自動redirect至proxy server ,由proxy server向上層抓資料,換言之也就是當NAT主機上收到port80的 request時,會 redirect 至port 3128,如此可省去各pc的瀏覽器要設proxy的麻煩,不過和case2比較,此法主機配備要較佳否則下載網頁的速度反而會比較慢

特點:同上,差別在於學校內假設已有其他proxy server(如210.59.2.3),則於nat 機器上不用再架proxy server,可直接將學生的request 直接redirect(導向)至學校的proxy server,再由學校proxy server向上層抓資料,不過這種方法抓到的網頁會怪怪的,有些圖片會錯誤,按重新整理,每次錯誤的部分都不一樣,多按幾次才會正確,不知何故

特點:除case2的功能外,另假設電腦教室內學生pc使用虛擬ip,可是其中有一部電腦(192.168.1.2)要提供www的服務(如圖書館查詢系統),供外界查詢,則可利用這個方法,此法類似case4 redirect proxy的設定,所以當我們執行 http://210.59.2.161時,nat主機會自動將request REDIRECT至192.169.1.2這部主機

  1. 主機規格:
  1. 主機設定值:(可利用 linuxconf  或webmin0.8軟體設定)

                              netmask:255.255.255.0

                              netmask:255.255.255.0t

  1. 架 DHCP SERVER:(最好利用webmin0.80軟體比較簡單)
  1. 安裝webmin0.80

        參考相關文件

        下載

  1. 安裝dhcp-2.0b1p16-2.i386.rpm(此程式放於RH6.1光碟中)

       rpm -Uvh /mnt/cdrom/Redhat/RPMS/dhcp*

  1. 於webmin0.80中進入dhcp選項
  2. 增加兩個子網路(210.59.2.0)及(192.168.1.0)
  3. 點選192.168.1.0網路並設定下列數據
  1. 儲存,再點選 編輯客戶端選項 並設定下列數據
  1. 儲存
  2. 若合法ip網域內已有其他dhcp 伺服器,則210.59.2.0網路中堶悸瑪龠等i以不用設
  3. 啟動dhcp
  4. 檢查 client端是否自動取得ip,(可執行winipcfg檢查)若有則表示成功
  1.   架 NAT  SERVER

               1.修改 /etc/sysconfig/network

                    將 forward_ipv4 設為 yes ,並重新開機

                2.安裝 ipchain(此程式放於RH6.1光碟中)

                    #rpm -Uvh /mnt/cdrom/Redhat/RPMS/ipchain*

                 3.執行

                     #ipchains -A forward -p all -s 192.168.1.0/24 -d  0.0.0.0/0 -j MASQ

                    #/sbin/modprobe ip_masq_ftp

                    4.測試看看client端是否可以正常上網,含www,ftp,e-mail,telnet...,可以則表示成功

  1. 架 redirect PROXY(續5)

                 1.#ipchains -A input -p tcp -d 0.0.0.0/0 80 -j REDIRCT 3128

                 2.安裝proxy server(此程式放於RH6.1光碟中)

                    #rpm -Uvh /mnt/cdrom/Re*/RP*/squid*

                 3. 修改 /etc/squid/squid.conf 

                      a. 找到下列各行,並修改(#記得消掉)

                         http_accel_host virtual  (預設為http_accel_host hostname)

                         http_accel_port 80 (預設為http_accel_port port)

                         http_accel_with_proxy on  (預設為 off)

                         http_accel_uses_host_header on (預設為 off)

                      b. 其他依一般設定修改,如設parent, cache大小....等

                    4.啟動 squid

                        #squid -z

                        #/etc/rc.d/init.d/squid start

  1. 關閉學生電腦瀏覽器之proxy設定後, 上網測試並檢查/var/log/squid/access.log 內容,看是否有存取記錄,若有則表示成功
  1. dedicate proxy--(校內proxy server 之ip: 210.59.2.3) (續5)
    1. 下載 transproxy-0.4-1.i386.rpm (約1.6M)至本地端 tmp 目錄
    2. rpm -Uvh transproxy*
    3. #ipchains -A input -p tcp -d 0.0.0.0/0 80 -j REDIRECT 8081
      #/usr/sbin/in.tproxyd -s 8081 -r nobody 210.59.2.3 3128
    4. 測試並檢查proxy server 是否有記錄
    5. 這種方法網頁會怪怪的,不知何故?
  2. 架NAT Router內的對外服務伺服器 (續6 或7)
    1. 虛擬ip內有一部電腦(192.168.1.2)可由以下設定提供www的服務
    2. 下載 redir-1.1.tar.gz (約79K) 至本地端 tmp 目錄
    3. tar xzvf redir*
    4. make redir
    5. cd redir-1.1
    6. cp redir /usr/sbin
    7. #ipchains -A input -p tcp -d 210.59.2.161 80 -j REDIRECT 8082

      #/usr/sbin/redir 192.168.1.2 8082 80 &

    8. 測試:請從合法位址之電腦下http://210.59.2.161 看是否可以看到192.168.1.2的網頁
  3. 心得:
    1. 以上是針對本校實際情況,於近期架站之心得,綜合多篇多件,測試無誤,省去坊間文件,各家內容冗長,執行一大堆指令的困擾
    2. 若測試無誤可將上述指令寫入 /etc/rc.d/rc.local 中,以後開機可自動執行
    3. 中央大學  live cd可提供相關不錯的功能,安裝很簡單,不過因現今的光碟機一下子就會進入省電狀態,會造成nat 主機反應很遲鈍,上網不順,不知有何解決之道
    4. 因時間有限,未有任何圖片說明,在此說抱歉,才疏學淺,若有誤漏煩予告知
  4. 參考文件
    1. 中央大學 劉劍青 live cd 光碟內之說明檔
    2. linucer 4期
    3. RUN-PC雜誌6月號
    4. BBS站 LINUX 版
    5. LINUX 中文說明文件中有關NAT ,FIREWALL,IPMASQ等部分