|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
[ 作者:cryboy2001 加入时间:2006-07-07 21:08:07 来自: chinaunix
] | |
|
我一直在用ShoreWall做防火牆,我看到有人在問ShoreWall 7umLinux联盟 7umLinux联盟 我把我以前在網上看到的文件發出來(聯接已不可找,對作者報欠) 7umLinux联盟 在使用中如有問題可一起討論一下! 7umLinux联盟 7umLinux联盟 防火牆與ShoreWall 7umLinux联盟 7umLinux联盟 前言 7umLinux联盟 近年來,網路安全的課題愈來愈受重視,但是還是有愈來愈多的企業主或是員工受到非法入侵的傷害,為什麼會有這種現象呢?因為很多人都還抱持著不會那麼剛好的發生在自已身上的心態,而近年來的攻擊形態的改變,讓更多的使用者措手不及,自已突然成了受害者,連修復的能力也沒有,根據調查,每年美國因受網路攻擊的損失高達 100億美元,每年入侵事件的回報的次數愈來愈多,以下是CERT統計至2002年底為止,入侵事件的次數。 7umLinux联盟 7umLinux联盟 7umLinux联盟 年份 1995 1996 1997 1998 1999 2000 2001 2002 7umLinux联盟 數量 171 345 311 262 417 1090 2437 4129 7umLinux联盟 7umLinux联盟 而2003年的前二季也高達了1993次之多,顯示在美國這種高網路化的國家,網路安全的事件也是層出不窮,再加上近年來恐佈攻擊行動也有部份是由網路來進行資訊的傳送,或者是發動攤瘓型的攻擊行動,造成全球經濟的大損失。有鑑於此,各國政府的資訊管理部門都開始重視資訊安全,美國FBI與美國電腦安全協會CSI曾經指出,包含大型的美國企業、財務機構、大學,及政府單位等機構中,曾有百分之九十曾偵測到有遭受過安全侵害,大概有百分之七十的單位遭到比病毒更嚴重的侵害,幾乎一半的單位宣稱網路入侵、攻擊的行為,讓他們產生財務的損失,攻擊的手法各式各樣,包含了內部的濫用及外部的攻擊。 7umLinux联盟 7umLinux联盟 以下介紹幾個比較常見的攻擊手法給讀者們參考一下: 7umLinux联盟 1.掃瞄 (Scanning) 7umLinux联盟 通常在cracker或是hacker開始要進行入侵的時候,會事先將情報搜集好,比方說使用snmp此類的port偵測工具,或是利用ping來測試等,當他們收集了愈多的情報,當然就愈有把握入侵使用者的系統了。 7umLinux联盟 7umLinux联盟 2.阻絕服務 (Denial of Service,DoS) 7umLinux联盟 這一類的攻擊幾乎都會造成伺服器的當機,使得主機無法提供服務,攻擊者可以利用持續傳送不完整的封包方式,讓伺服器無?回應,自然其他的服務就受到影響,比如說利用郵件炸彈之類的。 7umLinux联盟 7umLinux联盟 3.分散式阻絕服務 (Distributed denial of service,DDoS) 7umLinux联盟 和DoS很像,只不過DoS是由單台主機進行攻擊,而DDoS則是利用網路上被入侵的主機,對同一台服務器進行DoS攻擊,使得伺服器無法承受主機所能處理的程序而當機。 7umLinux联盟 7umLinux联盟 4.竊取 (sniffing) 7umLinux联盟 這一類的攻擊通常都是從客戶端及伺服器端或是伺服器對伺服器的通訊中擷取資訊的,攻擊者通常都會抓取TCP/IP協定的封包,將之重組或解碼後就可以得到使用者的密碼或者是重要的資訊等,一般市面上賣的sniffer或者是fluke之類的網管軟體即是其中一類,像Linux中的snort也有類似sniffer的功能,若是有心人士在伺服器或是區域網路中安裝此類的軟體,那麼網路就可能會出現資料被盜用的危機。 7umLinux联盟 7umLinux联盟 5.劫持 (Hijacking) 7umLinux联盟 這是另一種在兩個點在通訊中進行攻擊的手法,通常是兩個通訊中的連線,由攻擊的第三者對其中之一的機器進行攻擊,當其中之一的機器被攤瘓後,第三者就偽裝成為其中的一個機器,繼續與另一台機器進行通訊,這樣就可以接受另一台機器的資訊。 7umLinux联盟 7umLinux联盟 6.實體 (Physical) 7umLinux联盟 實體部份其實是非常容易就達成的,試想,假設公司的MIS人員疏忽了實體線路的重要性的話,那麼當公司的有心人士要竊取公司的重要資料,則可以利用很多方式,比如說利用數據機傳送,或者可以在一個區段中接一個hub出來盜取資訊(可用VLAN來防護),或者是直接到主機旁進行破壞,這些都是有可能發生的,所以資訊系統的實體管理,也是不容忽視的。 7umLinux联盟 7umLinux联盟 7.系統漏洞 (Bug) 7umLinux联盟 沒有一個作業系統或是程序是絕對沒有錯誤的,比如Linux上的Sendmail套件,Windows的IIS套件,都是惡名昭彰的,不管任何的系統,一定都會有問題,攻擊者就是利用這些個漏洞來進行入侵的動作,管理者應該時時注意漏洞的更新,減少被入侵的機會。 7umLinux联盟 7umLinux联盟 8.後門 (back door) 7umLinux联盟 這類事件的發生多半伴隨著系統漏洞來產生,有時也是程式開發人員在程式中遺留下特殊的密碼,可以直接進入系統來取得管理者的權限,大部份的後門都是不為人知的,但一旦被發現可是都很嚴重的。 7umLinux联盟 7umLinux联盟 9.社交工程 (Social engineering) 7umLinux联盟 可以靠欺騙的手段來進行,也可以利用職務之便來接近,這些都是利用社交工程來進行取得對方資料的手段,例如商業間碟等。 7umLinux联盟 7umLinux联盟 假設您想要百分之百防堵以上所有的攻擊型態的話,很抱歉,除非您把伺服器的電源線給拔了,不然絕對無法做到99%的安全,那還有1%跑到那去了?注意最後一項,就是社交工程。 7umLinux联盟 7umLinux联盟 當然,筆者並不是叫大家把伺服器的服務都給停掉,那不就天下大亂了嗎,在此篇電子報的主題中所要介紹的,是防火牆(Firewall)的部份,並簡單的介紹一下防火牆能夠達到的功能。 7umLinux联盟 7umLinux联盟 防火牆的功能及種類 7umLinux联盟 防火牆是網路安全的第一道防線,很多組織都會在伺服器或者是路由器上建立防火牆的機制,並設定哪些通訊可以通過,哪些則不行,防火牆的目的在於關閉一些不必要的通訊,以減少被入侵的機會,但是它卻不能避免所有的網路攻擊行為,防火牆主要分成三種,分類如下: 7umLinux联盟 1.封包過濾(packet-filtering firewall) 7umLinux联盟 2.應用層防火牆(application firewall) 7umLinux联盟 3.線路層防火牆(circuit-level firewall) 7umLinux联盟 7umLinux联盟 現今在企業中主要的應用為NAT(Network Address Translatino,網路位址轉換)、VPN(Virtual Private Network,虛擬私有網路)及Proxy(代理伺服器),如果要以實體的裝置來區分的話,那麼又可以分為硬體式防火牆和軟體式防火牆。 7umLinux联盟 7umLinux联盟 顧名思義,硬體式防火牆就是專門用來進行防火牆功能的機器,一般來說此類產品都是有特別的硬體規格,並且提供制式的規格讓使用者選用,如果要另加功能(比方說是VPN)及使用者人數的話,那麼就要另加費用,通常此類型的防火牆,最少都要三、四萬元以上,而且都有人數的限制,台灣較常見的就是NetScreen及SonicWall這兩家。 7umLinux联盟 7umLinux联盟 而軟體式防火牆就是一套套裝的軟體,一般來說就是與一台伺服器或是PC搭配,配置於企業網路的最外層,直接保護企業網路不直接的與網際網路接觸,這類型的防火牆分成二個部份,一是商業軟體,常見的有微軟的ISA Server、Check Point的Firewall-1,而另外就是OpenSource的解決方案,常見的就是大家熟知的Iptables,另外還有一套就是今日的主角--ShoreWall。 7umLinux联盟 7umLinux联盟 ShoreWall 簡介 7umLinux联盟 ShoreWall是一套功能強大的防火牆軟體,是一套很棒的 Netfilter 整合工具,它把iptables, ip, tc...等一堆常見的netfilter 指令都整合起來,把原本複雜難懂的的指令集通通變成設定檔,再搭配一些規則的語法,可以讓Linux的系統管理人員不再需要去查詢一堆很難懂的指令,只要會設定規則,並且搭配ShoreWall的設定檔,就可以輕易的完成那些商業防火牆套件的功能。 7umLinux联盟 7umLinux联盟 另外,在使用ShoreWall的時候也具有很高的彈性,管理者可以在設定檔中依喜好設定各種規則,因此,ShoreWall這套軟體可以用在一台同時擁有路由器/防火牆/閘道器的Linux伺服器中,而且幾乎netfilter所支援的功能,ShoreWall都可以做到。 7umLinux联盟 7umLinux联盟 除了將指令整合到設定檔之外,ShoreWall也可以定義介面的代號,比方說一個內部網路192.168.1.0/24就可以定義為一個loc的變數,那麼就可以用很簡單的變數來代表內部網路的實際設定,這樣子的話,設定的規則就會更加的滐@易懂,詳細的設定會在以後的電子報內容進行說明。 7umLinux联盟 7umLinux联盟 ShoreWall 功能說明 7umLinux联盟 除了設定上的便利性之外,ShoreWall也支援以下的功能,列表如下所示: 7umLinux联盟 7umLinux联盟 1. 使用Netfilter的連線記錄的能力,用在標準封包過濾的功能上。 7umLinux联盟 2. 可以使用在路由器/防火牆/閘道器的應用上。 7umLinux联盟 3. 可以完整的自訂設定檔的內容。 7umLinux联盟 4. 沒有限制網路介面的數目(ISA Server 2000只允許三個網路介面)。 7umLinux联盟 5. 除了文字介面外,在Webmin1.060版之後,也可以使用圖形介面來管理。 7umLinux联盟 6. 支援許多位置管理/路由協定,列表如下。 7umLinux联盟 Masquerading/SNAT 7umLinux联盟 Port Forwarding(DNAT) 7umLinux联盟 One-to-One NAT 7umLinux联盟 Proxy ARP 7umLinux联盟 NETMAP(核心2.4版本需修補或是在版本2.6以上) 7umLinux联盟 7. 可以將單一的IP或是整個子網路列入黑名單中。 7umLinux联盟 8. 可以使用指令來啟動、停止或是清除防火牆規則。 7umLinux联盟 9. 支援狀態監控,針對較特別的封包發出提示的訊息。 7umLinux联盟 10.支援VPN,列表如下。 7umLinux联盟 IPSEC 7umLinux联盟 GRE 7umLinux联盟 IPIP 7umLinux联盟 Open VPN Tunnels 7umLinux联盟 PPTP 7umLinux联盟 11.可支援頻寬整合的機制,但是需要外加的設置。 7umLinux联盟 12.支援各種GNU/Linux的套件。 7umLinux联盟 13.支援MAC(Media Access Control)位址的確認機制。 7umLinux联盟 14.流量統計 7umLinux联盟 15.支援Bridge(核心2.4版本需修補或是在版本2.6以上) 7umLinux联盟 7umLinux联盟 結論 7umLinux联盟 總體來說,ShoreWall可以解決許多Linux網管人員心中的痛苦,因為管理一個Linux的防火牆是一件很惱人的事情,就算規則寫的再好,也是有一大串的指令必需自已親自撰寫,就算寫好了,在修正的時候也是件大工程,如果是小規模的就還好,但是如果同時擁有數個介面..然後每個介面都要寫上數十行的指令的話,那麼就不是件簡單的事了,重點是,使用ShoreWall這套Open Source的防火牆軟體,完全不用受制於商業套件的限制,這對企業主來說,也是一個很不錯的選擇。 7umLinux联盟 7umLinux联盟 下載及安裝 7umLinux联盟 1、下載 7umLinux联盟 ShoreWall的官方網址為http://www.shorewall.net,在安裝之前先要去下載它的原始碼程式,位址在http://www.shorewall.net/download.htm這個頁面,您可以選擇一個Mirror站台來下載,筆者是選擇USA的站點來下載,進入畫面之後,選擇一個您想要使用的版本,筆者在撰寫此編文件時,最新的版本已經出到了2.1.5,它的更新速度非常的快速,每隔一、二星期就會有新的版本出現,不過沒有關係,shorewall在更新的同時,也可以直接進行版本的更新,在稍後筆者會進行介紹。 7umLinux联盟 7umLinux联盟 在點選進入2.1.5(2004/8/19)版之後,應該會看見兩種版本,一種是RPM形式的套件,另一個則是tarball形式的原始碼,選擇一個您要使用的版本下載即可,接下來進行到安裝的步驟。 7umLinux联盟 7umLinux联盟 2、tarball安裝過程 7umLinux联盟 將shorewall-2.1.5.gz上傳到主機上,並且使用下列的指令進行安裝即可: 7umLinux联盟 # tar zxvf shorewall-2.1.5.gz 7umLinux联盟 # cd shorewall-2.1.5 7umLinux联盟 # ./install.sh 7umLinux联盟 7umLinux联盟 3、RPM安裝過程 7umLinux联盟 將shorewall-2.1.5-1.noarch.rpm上傳到主機上,並且使用下列的指令進行安裝即可: 7umLinux联盟 # rpm -ivh shorewall-2.1.5-1.noarch.rpm 7umLinux联盟 7umLinux联盟 4、反安裝過程 7umLinux联盟 Tarball: 7umLinux联盟 請在原來的安裝目錄中輸入以下的指令: 7umLinux联盟 # ./uninstall.sh 7umLinux联盟 這個指令會將shorewall的所有設定檔給移除掉。 7umLinux联盟 7umLinux联盟 RPM: 7umLinux联盟 # rpm -e shorewall 7umLinux联盟 7umLinux联盟 5、升級方式 7umLinux联盟 Tarball: 7umLinux联盟 # tar zxvf 最新版本編號.gz 7umLinux联盟 # cd 最新版本編號 7umLinux联盟 # ./install.sh 7umLinux联盟 # shorewall check 7umLinux联盟 # shorewall restart 7umLinux联盟 7umLinux联盟 RPM: 7umLinux联盟 # rpm -Uvh --nodeps 最新版本編號.rpm 7umLinux联盟 #shorewall check 7umLinux联盟 #shorewall restart 7umLinux联盟 7umLinux联盟 以上兩個方式就是升級shorewall的方法。 7umLinux联盟 7umLinux联盟 編輯設定檔 7umLinux联盟 安裝完畢後,必需先要設定各個設定檔才能啟動shorewall,在這邊請要特別注意,shorewall不是一個daemon的程式,它是一個載入指令的套件,所以請別指望使用ps -ax這類的指令來查詢它的行程,接下來的部份就分別說明各個設定檔的功能及格式。 7umLinux联盟 7umLinux联盟 1、/etc/shorewall/shorewall.conf 7umLinux联盟 shorewall.conf這個設定檔是整個軟體配置中最重要的一個檔案,裡面有許多的設定,若是搞錯的話,很可能會造成shorewall的啟動失敗或是咦鞑徽#P者在此就介紹幾個較常更改的設定參數給讀者參考: 7umLinux联盟 7umLinux联盟 STARTUP_ENABLED=Yes 7umLinux联盟 7umLinux联盟 預設是為No,如果您決定要使用shorewall來管理您的防火牆的話,那麼強烈的建議您將這個選項設定為Yes。 7umLinux联盟 7umLinux联盟 LOGFILE=/var/log/messages 7umLinux联盟 7umLinux联盟 設定記錄檔的位置,預設的記錄檔是messages這個檔案,您也可以指定另外的檔案,以區分防火牆及一般訊息,便於除錯時較能快速掌握狀況。 7umLinux联盟 7umLinux联盟 LOGNEWNOTSYN=info 7umLinux联盟 7umLinux联盟 設定記錄檔的等級,一般來說shorewall的記錄是由syslog這隻程式來進行,一共有八級,而shorewall預設的記錄等級為info,您可以參考/etc/syslog.conf來瞭解其他等級的記錄內容為何。 7umLinux联盟 7umLinux联盟 CONFIG_PATH=/etc/shorewall:/usr/share/shorewall 7umLinux联盟 7umLinux联盟 設定shorewall的所有配置檔所存放的目錄位置為何,如果您的設定檔不是放在這個位置的話,請自行修改至正確的路徑。 7umLinux联盟 7umLinux联盟 FW=fw 7umLinux联盟 7umLinux联盟 預設的防火牆介面名稱,在shorewall中,會內定一個防火牆的Zone名稱,這個名稱不需要在/etc/shorewall/zones中定義,直接可以在各個設定檔中使用。 7umLinux联盟 7umLinux联盟 IP_FORWARDING=On 7umLinux联盟 7umLinux联盟 預設是打開的,這個選項代表是開啟IP Forward的功能,如果您的Linux主機是獨立型的主機,並不需要使用到NAT或者是DNAT等功能的話,那麼這個選項就可以把它給關閉。 7umLinux联盟 7umLinux联盟 完成設定後就可以存檔離開了。 7umLinux联盟 7umLinux联盟 接著下來筆者就以一個最簡單的網路架構來做為設定的例子,以一台Linux主機為主要單位,有兩張乙太網路卡,eth0是對外部的網路卡,而eth1則是對內的網路卡,內部區域網路透過NAT連結到外部網路,而這台Linux主機同時具備有簡易防火牆的功能,針對下面的各個設定檔案做說明。 7umLinux联盟 7umLinux联盟 2、/etc/shorewall/zones 7umLinux联盟 在zones這個檔案中,您可以定義您的網路區域代碼,限制在5個或5個字元之下,總共有三個欄位,分別說明如下: 7umLinux联盟 7umLinux联盟 ZONE:定義的名稱,限制在5個或5個字元以下。 7umLinux联盟 7umLinux联盟 DISPLAY:這個介面所顯示的名稱,通常和ZONE設定是一樣的。 7umLinux联盟 7umLinux联盟 COMMENTS:對這個介面的簡略說明。 7umLinux联盟 7umLinux联盟 那麼在這個例子中,筆者就定義了二個介面,在zones的設定內容如下所示: 7umLinux联盟 7umLinux联盟 #ZONE DISPLAY COMMENTS 7umLinux联盟 loc Local Localhost 7umLinux联盟 net Net Internet 7umLinux联盟 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE 7umLinux联盟 7umLinux联盟 其中loc就是對內的網路介面,而net就是對外部網路的網路介面。 7umLinux联盟 7umLinux联盟 3、/etc/shorewall/interfaces 7umLinux联盟 接下來就要建立網路介面及ZONE的對照表了,前面說過eth0是對網際網路的介面,而eth1是對內部區域網路的介面,那麼設定的內容如下所示: 7umLinux联盟 7umLinux联盟 #ZONE INTERFACE BROADCAST OPTIONS 7umLinux联盟 net eth0 xxx.xxx.xxx.128 7umLinux联盟 loc eth1 192.168.1.255 dhcp 7umLinux联盟 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE 7umLinux联盟 7umLinux联盟 其中第一個欄位就是對應到/etc/shorewall/zones的ZONE名稱,而第二個欄位就是對應到在Linux系統中的介面名稱,在這個例子中,eth0是對外部網路的介面,所以對應到net,而eth1是對內部區域網路的介面,所以對應到loc,第三個欄位是設定該網路介面的BROADCAST,如果是C class的話,就是設定成x.x.x.255,以此類推,筆者不再此詳述,對外的介面, ISP公司都會提供一個設定的清單,只要照著上面的記錄填寫即可,而最後一個OPTIPNS的欄位就是這個介面要用什麼樣的功能,比方說在這個例子中,eth1介面還要負責DHCP配發的動作,所以就在OPTIONS的欄位上加入dhcp的記錄,其他的功能請參照interfaces的註解,在此不做太多的說明。 7umLinux联盟 7umLinux联盟 4、/etc/shorewall/policy 7umLinux联盟 這個檔案是設定整個大方向的防火牆政策,通常建議較安全的方案是先將所有由外而內的政策都設定成為拒絕,然後再一個一個的打開可用的port號,所以policy的設定內容如下: 7umLinux联盟 7umLinux联盟 #SOURCE DEST POLICY LOG LIMIT:BURST 7umLinux联盟 loc net ACCEPT 7umLinux联盟 net all DROP info 7umLinux联盟 all all REJECT info 7umLinux联盟 #LAST LINE -- DO NOT REMOVE 7umLinux联盟 7umLinux联盟 其中第一行是允許由內部區域網路連到外部網路,第二行是將所有外部來的封包都丟棄,並記錄到記錄檔中,第三行的功能也是一樣。 7umLinux联盟 7umLinux联盟 5、/etc/shorewall/masq 7umLinux联盟 這個檔案是設定讓內部的虛擬IP可以偽造真實的IP連線出去,也就是NAT的功能,設定內容如下: 7umLinux联盟 7umLinux联盟 #INTERFACE SUBNET ADDRESS 7umLinux联盟 eth0 eth1 xxx.xxx.xxx.xxx 7umLinux联盟 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE 7umLinux联盟 7umLinux联盟 其中INTERFACE是對外的網路卡,而SUBNET則是對內部虛擬網路的網路卡,最後的欄位ADDRESS則是對外網卡的真實IP,輸入完後就存檔離開。 7umLinux联盟 7umLinux联盟 最後再重新啟動shorewall的防火牆,請依照下列指令重新啟動 7umLinux联盟 7umLinux联盟 # shorewall check 7umLinux联盟 # shorewall restart 7umLinux联盟 # chkconfig --level 2345 shorewall on 7umLinux联盟 完成! 7umLinux联盟 7umLinux联盟 結論 7umLinux联盟 怎麼樣,很簡單吧!雖然這樣子就完成了最基本的防火牆建置,所有由外部對內部的服務全部都被關閉,只讓內部的虛擬IP以NAT的方式連線到外部網路,這樣子就算是成功的建立一座防火牆了,可是對於大部份的企業來說,這樣的設定還是不夠的,所以筆者在下一期的電子報中還會為各位讀者介紹更進階的使用,讓各位讀者能夠輕易的就架設起自已的防火牆。 7umLinux联盟 7umLinux联盟 進階元件 7umLinux联盟 上一篇電子報的內容中,筆者只介紹了幾個一定用到的檔案來做說明,其實shorewall還有很多其他的設定檔,在此就再做一次說明,根據不同的需求,還有下面幾個常用的設定檔案: 7umLinux联盟 7umLinux联盟 1、params 7umLinux联盟 這是用來設定shell變數的一個檔案,這個檔案有點像是C語言中的include功能一樣,把include進來的檔案的變數放到現在這個檔案中,只是在shorewall的設定檔中,並不需要再使用include來引入,params這個檔案的目的在於將所有相關的變數都統一設定在裡面,當您的規則全都設定好了之後,只要變更params的內容就可以套用在別的網路狀態,管理起來非常的方便,以下就是一個例子: 7umLinux联盟 7umLinux联盟 在/etc/shorewall/params中的設定: 7umLinux联盟 7umLinux联盟 NET_IF=eth0 NET_BCAST=130.252.100.255 7umLinux联盟 NET_OPTIONS=blacklist,norfc1918 7umLinux联盟 7umLinux联盟 在/etc/shorewall/interfaces中的設定: 7umLinux联盟 7umLinux联盟 net $NET_IF $NET_BCAST $NET_OPTIONS 7umLinux联盟 7umLinux联盟 這樣子的話,其他的規則就都可以使用變數的方式來寫,所以說規則只要寫一次,就可以重覆的使用囉! 7umLinux联盟 7umLinux联盟 2、rules 7umLinux联盟 這個檔案是整個shorewall的重點檔案,有看過前一篇電子報的讀者應該還記得一個叫做policy的檔案吧?policy檔案的目的在於制定整個防火牆政策的大方向,比方說loc這個介面對dmz這個介面的政策是REJECT或是ACCEPT等,通常由防火牆外至內部網路的政策都是全部先設定為關閉的,當然也有全設定為開放再一個個關起來的,不過安全的防火牆政策應該是屬於前者,而rules這個檔案則是在制定一些【例外】的狀況,比方說,您的防火牆將所有的port都給關閉了,以至於從外不能由ssh連結進來,那麼這個時候就可以在rules這個檔案中來定義,它的格式如下所示: 7umLinux联盟 7umLinux联盟 #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL 7umLinux联盟 # PORT PORT(S) DEST 7umLinux联盟 DNAT fw loc:192.168.1.3 tcp ssh,http 7umLinux联盟 7umLinux联盟 以上的設定是指轉送所有fw防火牆介面的ssh及http的請求至loc的介面,而IP為192.168.1.3的機器上。 7umLinux联盟 7umLinux联盟 在這個檔案中有幾個較常用到的欄位,分別說明如下,其他較少用的欄位在此筆者就不多加說明了: 7umLinux联盟 7umLinux联盟 欄位名稱 設定項目 說明 7umLinux联盟 ACTION ACCEPT 允許這個連線的要求。 7umLinux联盟 ACCEPT+ 和ACCETP一樣,但是會排除之後有關REDIRECT-及DNAT- 的規則。 7umLinux联盟 DROP 忽略這個連線的請求。 7umLinux联盟 REJECT 不接受這連線的請求,並回覆一個icmp-unreachable或是RST的封包給對方。 7umLinux联盟 DNAT 轉送這個封包至另一個系統(或是其他的port號)。 7umLinux联盟 DNAT- 只有進階的使用才會用到,這和DNAT的規則一樣,但是只產生DNAT的iptables的規則而且也不是ACCEPT成對的規則。 7umLinux联盟 REDIRECT 重導這個連線的請求到local的另一個埠號中。 7umLinux联盟 REDIRECT- 只有進階的使用才會用到,這和REDIRECT的規則一樣,但是只產生REDIRECT的iptables的規則而且也不是ACCEPT成對的規則。 7umLinux联盟 CONTINUE 專家模式專用,對於這裡所定義的來源及目的端的請求就會被pass通過。 7umLinux联盟 LOG 簡單的記錄封包資訊 7umLinux联盟 QUEUE 將這個封包佇放在使用者的應用程式中。 7umLinux联盟 <action>; 定義在/etc/shorewall/actions或是/usr/share/shorewall/actions.std中的動作。 7umLinux联盟 SOURCE 來源位址,格式可設定以下幾種樣式:loc、net(在zones檔案中所定義的介面)192.168.1.1(IP格式)192.168.1.0/24(子網路格式)loc:192.168.1.1loc:192.168.1.0/24loc:192.168.1.1,192.168.1.2loc: ~00-A0-C9-15-39-78(MAC Address) 7umLinux联盟 DEST 目的位址,設定的方式和SOURCE一樣,但是如果SOURCE設定為all時,則有以下的限制:並不允許使用MAC Address在DNAT的規則中只允許使用IP Address不可同時使用interface及IP 7umLinux联盟 PROTO 必需是tcp、udp、icmp或是all,或者是數字。 7umLinux联盟 DEST PORT(S) 目的端的埠號,可用數字或名稱,在設定這個欄位時,可以用逗號(,)來建立多個埠號清單,也可以用一整個範圍的埠號(1024:2048->;意思是從1024到2048之中所有的埠號)來建立清單。 7umLinux联盟 CLIENT PORT(S) 客戶端的埠號,這個欄位可以忽略掉。 7umLinux联盟 3、nat 7umLinux联盟 這個檔案主要是用來定義one-to-one型式的NAT,所謂的"one-to-one"是代表說一個真實IP將所有的服務都轉向內部的一個虛擬IP,所以通常是一個真實的IP就【只能】指向一個虛擬的IP,這通常是用在當這台NAT主機是只有跑防火牆服務,然後所有提供外部服務的主機都是藏在內部虛擬IP的狀況下,在一般的情況下比較少用到這個檔案,如果想要使用forward或是DNAT的功能的話,就不能使用這個檔案來設定,必需去設定rules這個檔案才行,有關於nat的設定內容如下所示: 7umLinux联盟 7umLinux联盟 #EXTERNAL INTERFACE INTERNAL ALL LOCAL 7umLinux联盟 # INTERFACES 7umLinux联盟 x.x.x.x eth0 192.168.1.23 7umLinux联盟 7umLinux联盟 EXTERNAL 設定此台伺服器所要對外的【真實IP】。 7umLinux联盟 INTERFACE 設定此台伺服器的對外網路網卡介面名稱。 7umLinux联盟 INTERNAL 設定想將此真實IP轉向內部的虛擬IP位址。 7umLinux联盟 ALL INTERFACES 如果不想同時套用到其他的網路介面時,請在此設定為no,如果為空白的話,就只會套用到這個介面。 7umLinux联盟 LOCAL 如果這個選項設定為Yes或yes,還有ALL INTERFACES也被設定為Yes或yes的話,那麼由EXTERNAL傳送至INTERNAL的封包就會被限制在內部,要開啟這個功能的話,核心版本必需要在2.4.19以上,並且要確認開啟CONFIG_IP_NF_NAT_LOCAL的功能,而且iptables的版本要在1.2.6a以上才行
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|
|
|
| |
|
© CopyRight
2006-2009 xxlinux.com.Inc All Rights Reserved |
Powered
by xxlinux.com |
|
|
|