使用Linux高效構建企業無線網關/防火牆

火星人 @ 2014-03-09 , reply:0
←手機掃碼閱讀

秦鋼 夏勁松 潘愛民

安全與帶寬的危機

---- 1999年初,某企業大廈網路(以下簡稱B大廈)受到了帶寬和安全問題的困擾,為此,網路中心開始醞釀網路的升級改造.

---- B大廈內有研究院、集團、公司等單位.大廈內所有的計算機使用某大學(以下簡稱A大學)校園網分配的真實Internet IP,共有7個24位掩碼網段,下面又進一步劃分了不同掩碼長度的子網,計有近500台計算機,運行Windows NT、Windows 9x、Solaris、AIX、IRIX等多種操作系統.中心交換機為IBM 8274,安裝了兩個百兆交換模塊.中心伺服器(Web、FTP、文件共享、光碟庫、Exchange Server、SMS、Lotus Notes Domino、NT PDC/BDC、DNS、WINS、Proxy)使用PC/Alpha平台,全部直接連至8274的百兆交換埠.4個樓層各有一個百兆交換機分別使用3Com 3800(3C16910)、Intel E550T等型號,全部為三層可管理並支持VLAN.每個樓層交換機都上行至8274的百兆埠.內部網路運行穩定,速度基本上能夠滿足要求.

---- B大廈的網路通過無線網路設備和A大學辦公樓相連,兩端相距7km各有一台運行NetWare 3.x的無線網關機器,兩台機器各裝有一塊AT&T WaveLan無線網卡,通過樓頂的高增益天線對連,連接速率為2Mbps.辦公樓的主幹網路是由4台Digital 900EF路由器組成的FDDI雙環.其中一台900EF連接到A大學校園網作為Internet出口,另外3台各自接到不同的部門,有一台接到無線網關.

---- B大廈及A大學辦公樓的網路拓撲結構如圖1所示.



---- 當時,B大廈內已經有員工400多人.2Mbps的Internet接入帶寬遠遠跟不上需求.從網路結構上看,FDDI環通過10兆交換乙太網埠接入A大學校園網,B大廈的主幹網路為百兆乙太網,因此整個網路的瓶頸為無線網.



---- 為了解決帶寬問題,我們探討了多種方案,是敷設光纖.牽涉到市政等多方面的因素,敷設光纖的費用頗高,是我們無法承受的.而租用專線速度不能滿足要求,費用也不低,沒有必要,因此我們決定仍然使用無線網的方式,使用新的快速無線網技術對舊有設備進行升級.

---- 另一個嚴重的問題是安全問題,此前,B大廈的網路持續受到來自Internet的攻擊,包括MailSpam、PoD、大規模的埠掃描等,多次造成Exchange伺服器宕機和Internet訪問中斷,影響了企業的日常運作.當時採用的安全措施是在FDDI環的第一台900EF上進行IP訪問限制,而900EF屬於已經過時的設備,僅支持簡單的包過濾.早已不能滿足網路安全的需要.另一方面,B大廈的內部網對外幾乎完全沒有設防,從外部可以很容易地竊取內部網未經嚴格設置的員工機器上的信息.採取措施防止這類問題的發生.

---- 經過論證,我們決定增加一台或兩台防火牆機器來抵禦黑客攻擊.當時Linux 2.2系列內核剛發布不久,2.2.x中全新的IPChains代替了從BSD中移植來的ipfw,在性能和配置方面得到了各方的好評,因此我們初步決定採用Linux系統配置IPChains來作為新的包過濾防火牆.

---- 此外,還有IP的浪費問題也引起了我們的注意,兩台無線網關佔用了整整兩個24位掩碼網段.這是NetWare 3.x使用早期的RIP協議,不支持子網的進一步劃分.我們也希望通過升級來省出IP,以便適應日益增長的網路規模的需要.

使用Linux升級無線網

---- 當時,新一代無線區域網協議IEEE802.11b尚未發布,市場上有多種標稱速率在8Mbps至12Mbps的無線網路產品,大多是基於專有協議.我們對其中的5種產品進行了現場測試.測試方法是兩端使用兩台筆記本電腦,都安裝Windows 98,一端安裝Server U 2.4 FTP伺服器軟體,另一端使用Windows 98自帶的命令行ftp程序進行連接,多次下載20MB的文件.經測試,沒有一家的產品傳輸速率在500KBps以上.有些產品隨距離增加傳輸速率迅速衰減.經過比較,我們選擇了Lucent公司的WaveLan IEEE.在7km的距離上,WaveLan IEEE的FTP實測速率可達400KBps左右,約為傳統有線10兆乙太網的二分之一(原因見後文"方興未艾的無線網路技術"),隨距離增大信號衰減不明顯.,Lucent是即將出台802.11b的主要制訂者之一,WaveLan IEEE已經事實上支持了這個標準,為我們提供了可擴展性.



---- 廠家建議的方案是使用兩個WavePointⅡAP專用無線網橋,各插一塊WaveLan IEEE PCMCIA卡,兩端通過饋線連接高增益天線對連.網橋可配置為工作在下兩層,不需要單獨的網段.WavePointⅡAP價格較高而WavaLan IEEE PCMCIA支持多種系統,我們開始探討使用PC機代替專用無線網關的可能性.經過調查,發現在台式機上使用ISA橋接卡轉接即可使用WavaLan IEEE PCMCIA卡.在廠商的配合下,經過實驗,我們成功地實現了用兩台Linux機器作為無線網關,並發現這種方案的效率要比使用兩台WavePointⅡAP略高.這樣還免去了根據計劃要在網路中再增加Linux防火牆的麻煩,可以直接把無線網關配置為防火牆.但WavePointⅡAP具有管理程序可供實時查看通道情況,有助於我們的管理,且安裝也比較簡單,我們最終採用了一個WavePointⅡAP和一台Linux機器.我們選擇將無線網的Linux網關安裝在辦公樓一端,主要是基於如下考慮:訪問流量以進入方向為主,而網路速度是有線乙太網較快,這樣可以減弱啟用IPChains對網路速度帶來的影響.事實證明,後來啟用IPChains(約30條規則)效率非常高,沒有對網路速度產生影響.其次,是最大保護原則,這樣可以保護包括WavePointⅡAP在內的盡量多的設備.

---- 我們採用了RedHat Linux 6.0,內核版本為2.2.5.Lucent僅以二進位可執行模塊和庫的方式提供了Linux的驅動程序,非GPL授權.當時網上已經有了由志願者開發的GPL版本,但尚處在早期測試階段,功能支持不完善,我們未予採用.是在台式機上安裝PCMCIA設備,我們需要配置含PCMCIA支持,而Linux 2.2.5內核中沒有包括這一部分,於是我們選擇ftp://csb.stanford.edu/pub/pcmcia/下載了最新的PCMCIA支持包,並進行編譯安裝.

---- 在編譯之前要先把WaveLan IEEE的驅動程序放入PCMCIA 卡服務程序源代碼中,假設PCMCIA 卡服務程序源代碼目錄與WaveLan IEEE的驅動程序的打包文件出於同一目錄中,則執行如下操作.



---- #cd pcmcia-cs-3.0.9

---- #tar xzvf ../wavelan2_cs-3.10.tar.gz

---- #make config

---- #make all

---- #make install

---- 這時PCMCIA支持包已經編譯安裝完畢,需要再對無線網卡的IP參數進行配置.無線網卡的驅動識別和載入實在PCMCIA卡服務程序啟動之後發生的,不同於編譯到內核中或以內核模塊方式載入驅動的普通乙太網卡,因此需要在PCMCIA卡服務程序的配置文件中指定網卡的IP設置.,編輯/etc/pcmcia/config.opts,加入如下一行.

---- module "wavelan2_cs" opts "network_name=wirelessrouter"

---- 這裡的wirelessrouter是無線網的網路代號.這裡也可以使用對等模式,參見無線網卡驅動程序的說明文件.然後,再編輯/etc/pcmcia/network.opts,設置網路參數.

*,*,*,*)
IF_PORT=""

BOOTP="n"

IPADDR="163.215.120.238"

NETMASK="255.255.255.240"

NETWORK="163.215.120.224"

BROADCAST="163.215.120.255"

GATEWAY="163.215.120.252"

DOMAIN="router.Au.edu.cn"

---- 這時就可以啟動PCMCIA卡服務程序了.

---- # /etc/rc.d/rc.pcmcia restart

---- 此時如果聽到"嘟"一聲,說明設備已被識別.

---- 另一端的無線網橋也需要經過簡單地配置,根據說明書將一台PC機的IP設為與網橋的默認IP在同一個網段,然後運行網橋的配置管理程序.對網橋的配置進行修改,將網路代號填為與Linux配置文件中一致.這裡要注意的是,雖然WavePoint Ⅱ AP行使網橋的功能,但並不妨礙為其分配IP,否則將無法通過網路進行管理.

---- 隨後就是各級路由的設定,為了達到節省IP的目的,我們把163.215.120.224/27網路分為兩個子網分別為163.215.120.224/28和163.215.120.240/16.將連接無線網關的900EF的IP地址改為163.215.120.239,將Linux乙太網卡的IP改為163.215.120.238,無線網卡的IP則與另一端的IBM8274的出口埠設在一個網段.這樣便節省出了163.215.121.x和163.215.154.x這兩個網段.,逐一進行各級的三層以上設備的靜態路由設置,實現網路的全線貫通.



網關/防火牆的安全策略

---- 無線網升級完成後,為了解決網路安全問題,我們進行了一系列的設置.

---- 要確保網關本身的安全.我們採取了如下措施.

---- 1.使用TCP Wrapper的訪問限制功能,設置僅允許一個指定的IP(由網路管理人員使用)訪問,這是通過修改/etc/hosts.allow和/etc/hosts.deny等文件來實現的,具體方法可參見本刊2000年第44期《設置安全的Linux伺服器》一文(以下簡稱《設》文).

---- 2.在Linux網關上停止一切不必要的服務,包括telnet和ftp,並取而代之以SSH和scp,從而實現網路管理員和網關通訊時僅傳輸加密數據,並摒棄了口令認證的方式,使用更為先進的密鑰交換認證.這是通過修改/etc/inetd.conf文件(可參見《設》文)和安裝、配置SSH來實現的.現在SSH已經向SSH2全面轉移,可在http://www.ssh.com/products/ssh/download.html下載.

---- 3.為了加強網關的開機安全性,我們為BIOS設置口令,並為LILO設置口令,以防止未授權用戶使用"Linux single"進入系統單用戶模式.

---- 4.在內、外兩個邊界路由器設置對Linux網關的直接訪問限制.具體做法是,在FDDI環的上與Linux網關直接連接的一台900EF上禁止所有指向Linux網關兩個IP(分別綁定在有線和無線兩塊網卡上)的IP包;在內部網的IBM 8274上設置禁止除源地址為網管IP以外的所有指向Linux網關IP的數據包.這裡可能有些難以理解,有些人會認為這樣阻斷了Linux網關與外界的連接,Linux無法施行路由功能.事實上,所有目的地址不是Linux網關IP的數據包仍然可以通過網關,被正常路由.在這個方案中,把Linux看作一個可管理的網路設備更恰當.

---- 通過以上的設置,我們幾乎可以保證,除了IPChains和路由部分以外,即使Linux有後門,黑客也無法利用之.



---- 然後是通過在Linux網關上設置IP包過濾防火牆來增強內部網的安全性.設置時,我們通過拒絕外來的SYN包來禁止從Internet向內部網發起主動TCP連接.僅允許指向特定IP特定埠(比如E-mail伺服器的25埠和Web伺服器的80埠)的數據包通過.這樣基本上擋住了Internet對內部網路的攻擊.這樣設置后,內部網路的用戶基本上可以透明地訪問Internet,對於FTP等少數需要反向連接的應用,在客戶端使用被動模式就可以使其恢復正常了.

總結

---- 我們順利解決了長期困擾B大廈網路的一系列問題.通過Linux無線網關/防火牆,我們節省了一台昂貴的專用無線網橋,在減少路由躍點數的同時建立起包過濾防火牆,基本解決了安全問題.還省出2個24位掩碼網段的IP地址.當然,最重要的是不再有網路瓶頸,Internet訪問速度得到了顯著提高.可以說,我們事半功倍地完成了網路的升級和改造計劃.

方興未艾的無線網路技術

---- 其實,無線網路技術已經發展了很久.AT&T(後來的lucent、avaya)早在20世紀90年代初就開發出了無線區域網技術和產品.1997年,IEEE 802.11無線區域網標準正式問世.802.11規定無線網路設備使用2.4GHz到2.4835GHz的頻帶進行通訊.在直序擴頻(DSSS)方式下可提供2Mbps的傳輸速率,而在跳頻擴頻(FHSS)方式下可提供1Mbps的傳輸速率.802.11規定了漫遊功能,使裝有無線網路設備的系統可以在位置改變時自動選擇新的接入點而保持與網路的連接.1999年秋天發布的802.11b將傳輸速率提高至11Mbps,並增加了自適應降速功能和SNMP協議的管理信息庫(MIB)等特性.一般來說,相同標稱速率下,無線區域網要比有線乙太網低很多.這主要是無線網採用了與傳統乙太網不同的介質訪問控制(MAC)協議,即CSMA/CA(帶衝突避免的載波偵聽多路訪問),比乙太網的CSMA/CD(帶有衝突檢測的載波偵聽多路訪問)效率低.



---- 本文介紹的是無線區域網的一種擴展應用,即使用高增益天線擴展兩個無線節點間的連接距離,最遠可達幾十公里,然後在兩端分別與有線乙太網橋接,實現兩個區域網的遠程連接.

---- 在Internet浪潮和聯網設備多樣化趨勢的共同推動下,無線網路技術近兩年以前所未有的高速發展.藍牙和HomeRF等技術相繼面世.

---- 藍牙(Bluetooth)是由Ericsson、Nokia、IBM、Intel、Toshiba等公司在1998年聯合提出的,面向短距離,低功率,低成本的應用環境,也就是手機、PDA、筆記本電腦等移動設備間的通訊.藍牙的傳輸距離在10m以內,如果增加天線可以把距離增加到100m.藍牙的最大傳輸速率為1Mbps,目前正在產品化.藍牙已經獲得了業界的廣泛支持.IEEE最近在802.15標準中採用了藍牙技術,微軟的下一代操作系統Whistler也將支持藍牙.和IEEE 802.11b一樣,藍牙也採用被稱為工業/科學/醫學(ISM)頻帶的2.4GHz頻帶進行通訊,藍牙和無線區域網之間會相互影響.

---- HomeRF基於共享無線訪問協議(Shared Wireless Access Protocol,SWAP),面向家庭應用,用來實現家庭網路設備的互聯和資源共享,可提供1.6Mbps的傳輸速率.HomeRF最早是由Proxim開發的,得到Compaq、IBM、Intel和Motorola等業界巨人的支持.最近,美國聯邦通訊委員會接受了HomeRF工作組的要求,將SWAP使用的2.4GHz頻段中的跳頻帶寬增加為原來的5倍,使HomeRF能夠傳輸實時音樂和視頻信息.目前市場上已經出現了多種HomeRF設備.

---- 與802.11b相比,HomeRF和藍牙的共同優勢在於成本低廉.802.11b主要面向商用環境,而HomeRF和藍牙分別面向家用和移動通訊領域.三者相互之間的定位存在交叉,將展開一定的競爭,但總的來說會各自獨立發展.

用不用Linux?



---- B大廈的網路雖然包含多種多樣的操作系統平台,但在整體上是採用了微軟的解決方案.網路中各種服務和應用都能很好地協同工作,並可享受充分的技術支持.出於個人喜好,我們曾經試著安裝Linux系統(通過Samba)作為文件伺服器,結果卻差強人意,Linux的設置管理要比Windows複雜的多,妨礙了我們對各伺服器進行統一的管理.,Linux缺乏必要的技術支持.對Linux的使用取決於網管人員的技術水平,一旦發生網管人員不能解決的事故就可能造成重大損失,這對於一個企業網路來說是不可接受的.而為單獨的Linux伺服器和發生可能性非常小的故障去購買Linux服務又顯然是得不償失的.事實證明,在一個充斥著Windows的網路中,使用基於任何其他平台的伺服器都考慮到和已有網路(不僅包括伺服器,還包括工作站)的集成,否則沒有實際意義.Linux同樣如此.在伺服器領域,Linux更適用於較為單一的應用場合,比如網站的Web/Mail/FTP伺服器等.

---- 相比之下,Linux的路由功能是值得大書特書的.Linux誕生於Internet並和多數Unix在源代碼級兼容,其路由部分是天生的強項,在業界具有良好的口碑.使用Windows NT/2000也能構建無線網關.當時Windows 2000 已經發布了Beta 2測試版本,我們發現Windows 2000在路由方面比Windows NT 4.0有了質的提高,但當時Windows 2000尚不支持我們選擇的無線網設備.更重要的是,Windows 2000不具備Linux的高度可定製性,使用Linux,我們將內核經過精簡定製,編譯為300KB.在一台Pentium MMX 166、32MB內存的機器上仍能保證有大量資源空閑,而同樣的配置遠不能Windows 2000的需求.,雖然Windows 2000的路由組件在易用性方面較Linux具有優勢,但在功能上不及Linux豐富完整,對於在安全方面要求頗高的路由設備,網路管理人員應該進行盡量縝密的設置,易用性的考慮變得次要了.因此,我們使用開放、可控制的Linux.



---- 如果從穩定性和安全性考慮,使用FreeBSD或OpenBSD可能要比Linux略勝一籌.但它們當時尚不支持我們的無線網卡,因此也就無從比較了.

無線網的缺點以及需要注意的問題

---- 無線網發送的是微波信號,易被物體阻擋,可能受到地形(樹木、高層建築等)、天氣或其他因素的影響.曾經有一個例子,某公司和總部的無線連接在工作時間每隔15分鐘中斷一次,下班后卻正常.系統管理員進行了大量檢查,排除了設備故障、人為、電壓等各方面的因素,仍然沒有找到原因,後來,一個偶然的機會、他發現在和總部的直線方向上有一個工地,本來工地是擋不住連接的,但在施工過程中,塔吊需要調轉裝貨,正好每隔15分鐘一次.而裝貨時塔吊的位置正好處於連線上,阻擋住了連接.因此,使用無線接入,不僅在安裝時要確保兩端可視無障礙,還要考慮到日後的發展變化,比如樹木長高、建築施工等.因此應盡量向市政建設等方面多加諮詢.另外,雖然2.4GHz屬於民用頻段,但在使用時遵守當地的有關規定.,要特別注意微波束攜帶大量能量、穿透能力強,事實上2.4GHz的頻段和微波爐的頻段相近,因此一定要盡量避免人員在無線收發設備(指室外的高增益天線,室內的無線網設備是安全的)附近長期逗留,至於人體擋住微波束不僅會造成無線網路中斷,還會直接對人體造成危害.

為中型網路選擇路由協議

---- 通常有3種選擇: 靜態路由、RIP和OSPF.RIP的使用最簡單,幾乎不需要設置,只要在所有的網路設備中打開RIP選項,整個網路就能自動學習路由,填充路由表.但在升級實驗過程中我們發現了兩個問題.,任何一台聯網計算機或網路設備只要啟動RIP並廣播聲稱自己是Internet出口,就會給整個網路帶來混亂.其直接的結果就是使內部網無法訪問Internet.其次,RIP不能禁止用戶在內部網中建立非授權的子網,假如有員工盜用任何正式的Internet IP建立了子網,就可以越過900EF的包過濾訪問教育網以外的收費站點,並且不被記錄(我們的制度允許內部網訪問教育網的"免費"IP,對於非"免費"IP則經過代理伺服器),這雖然可以通過在包過濾路由器上進行一定的配置來防止,但從根本來說這是由RIP的缺陷造成的.此外,這種情況還會導致和Internet上被盜用的地址產生衝突.三者之中,靜態路由是最原始的方法.OSPF是為大型網路設計的,功能最為強大.OSPF沒有了RIP的缺點,但要比RIP難配置.對於我們的網路來說,還是靜態路由更加簡明.因此,在網路升級的過程中,我們把所有的路由/交換設備都改為使用靜態路由.






[火星人 via ] 使用Linux高效構建企業無線網關/防火牆已經有332次圍觀

http://www.coctec.com/docs/linux/show-post-56424.html