版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、NAT 服務器與防火墻-NAT 服務器與防火墻 淺談 IP NAT原理及主要功能 NAT服務器的安裝與使用 iptables在防火墻上的運用 實例練習 防火墻的簡單設置 iptables 設置文件參考范例Squid 服務器有著快速讀取功能, 減少了客戶端直接連接 Internet 的機會, 不足, 這在目前以 IPv 4為主流的網絡環(huán)境中,的確困擾著許多系統(tǒng)及網絡設計人員。因此本章將使用 NA T 的方式來 提供這一問題的解決方案。除此之外,利用 NAT 概念的擴展,我們也將介紹防火墻的基本概念 以及它對企業(yè)網絡安全性的影響。 淺談 IP因為 NAT 的使用主要是為了解決 IP 地址不足的問題
2、,所以在學習 NAT 的內容前,必須先對 IP 地址的意義及功能要有基本的了解。本節(jié)將就 IP 的基本特性逐一介紹以幫助讀者建立正確的概 念。 IP 的定義IP 是位于 OSI 網絡模型中的網絡層(Network Layer 能信協(xié)議,它也是 TCP/IP 通信協(xié)議,它 也是 TCP/IP通信協(xié)議組件中最重要的兩個通信協(xié)議之一,目前 Internet 中使用的版本是 IPv4, 有關它的標準都定義在 RFC 791中。 IP 主要定義 3個基本概念: 在 TCP/IP網絡中定義數據傳輸的基本單位 - -數據報 (Datagram , 所有數據在網絡上傳遞都有 特定的格式。 IP運行路由(Rou
3、ting 的功能,它會選擇一條最佳路徑供數據傳輸之用。 訂立數據報在不可靠(Unreliable 的網絡上傳遞時應該遵循的原則。通常 IP 是利用以下的運作模式將數據發(fā)送到網絡上的: 源主機 IP 層之上的傳輸服務會選將數據以 TCP 或 UDP 的格式發(fā)送到 IP 層上。 IP 層再將來源及目地的地信息(用來在網絡上路由的數據與 IP 數據報組合。 接下來 IP 層將數據報向下發(fā)送到網絡接口層,在這一層中,數據鏈路服務會將 IP 數據報轉 換成框架,以便在物理網絡中的特定媒體上進行傳遞。 因為每個 IP 數據報都包含來源及目的的地址,然后將這個地址與區(qū)域維護的路由表相比較, 再判定需進一步采
4、取的轉送動作,而在目的地主機上則要運行反向處理。 IP 尋址除了路由之外, IP 的另一項重要功能為尋址(Addressing 目前 Internet 上都使用這套標準來表 示主機和網絡點的邏輯地址, 而通過這個管理模式, 可以確定每臺主機或網絡都擁有惟一的識別 方法,這可避免地址重復問題的發(fā)生。有一點請大家注意的,每個網絡設備的物理地址(MAC 也具有惟一性,可以用來精確表示網 絡上的主機位置, 但因為無法利用其地址來建立一套管理方法, 所以通常無法達到尋址的功能所 以才設計出 IP 的尋址方法。在 IPv4中 , 每 臺 主 機 所 使 用 的 IP 地 址 都 是 以 32個 二 進 制
5、 的 數 字 來 表 示 , 如 011110101011001010010110101101111, 這種表示法可以確保 Internet 上的每臺主機都有惟一的地 址,因為這些地址都需要經過 InterNIC 的授權才可以使用。如果知道特定的 IP 地址,就可以利用這個地址來連接到此主機。以上的例子中使用 32個二進制的數字來表示 IP 地址,當然也可以使用十六進制(75652D6F 或十進制(196965039來表示,但這些表示法都很難讓一般用戶記憶。所以 IP 地址通常使用 Dotted Decimal Notation(DDN表示法, 它是將 32個二進制的位分為 4個字節(jié) (有時也
6、稱為 Octet , 然后將每個字節(jié)以十進制來表示,而每個字節(jié)之間以一具句點(. 來分隔。因此,上例中的 IP 地址 DDE 表示法為 11, 這個表示法并沒有什么特殊意義, 只是利于識別的方便, 如 圖 1-1所示。 根據 IP 的定義,每個 IP 地址都是由兩個部分所組成:網絡識別碼(Network ID及主機識別碼 (Host ID 。例如,網絡識別碼包含 8位,則主機識別碼就有 32-8=24個位。而用來判斷網絡識 別碼的主機識別碼包含的位數,就必須使用 子網掩碼 (Subet Mask 和 IP 地址來運算, 舉例來 說,在一般情形下, IP 地址為 150.
7、23.51.36的網絡識別碼是 150.23 ,而主機識別碼為 51. 36 , 如圖 1-2所示。 網絡識別碼在網絡中是相當重要的概念,因為它可用來識別 TCP/IP網絡中的網絡節(jié)點,而所有 位于同一具網絡節(jié)點中的主機,都擁有相同的網絡識別碼。換句話說,如果兩臺主機的 IP 地址 中包含相同的網絡識別碼,則它們可以互相傳遞信息,而無需通過路由器或網關轉送。 反之, 如 果兩臺主機的 IP 地址經過子網掩碼運算后的網絡識別碼不同,則它們必須通過路由器或網關轉 送才可彼此通信。當在規(guī)劃局域網時須特別注意這一點,否則隨意地指定 IP 地址,可能會產生 無法通信的問題。而主機識別碼是用來識別 TCP
8、/IP網絡中的節(jié)點(可能是工作站、服務器、路由器或其他 TCP/IP設備 ,每臺設備的主機識別碼在本地的網絡節(jié)點都必須惟一,如果同一個網絡節(jié)點中的兩臺主機具有相同的主機識別碼, 則它們會發(fā)生無法連接網絡的問題, 但是在不同網絡節(jié)點中的兩臺主 機可以使用相同的主機識別碼。例如, 1和 1不以同時存在網絡中,因為 它們的網絡識別碼和主機識別碼都相同,但是 1和 1可以同時存在不同的 網絡中,因為它們的主機識別碼雖然相同,但是網絡識別碼卻不同。 IP 地址類別因為每個 IP 地址都是由 32個二進制的數字組成,所
9、以理論上來說,應該會存在 2的 32次方個 合法 IP 地址(232=4294967296 ,但是事實上并沒有如此多的 IP 地址。目前 InterNIC 利用控制 IP 地址中的第一個字節(jié)(前 8個位來區(qū)分為 5個 IP 類別,我們稱它們?yōu)?Class A、 Class B、 Class C、 Class D、和 Class E、如圖 1-3所示。 Class A在 Class A的網絡中,每個網絡都是利用前 8個位來定義,因此有時也稱為 /8網絡 。因為第一 個位已被事先定義為二進制的 0,所以 ClassA 的第 1個字節(jié)是由 0000000101111111,也就是十 進制的 1127
10、,但因為 127是個特殊的網絡識別碼(Lookback Address ,所以目前 Internet 上具 有 126個 Class A網絡。Class A 使用最后 3個字節(jié)(24個位來表示主機識別碼,因此每個 Class A 網絡可以包含的主 機數目為 224,也就是 16777216臺主機。但是主機識別碼全為 1和 0表示廣播網絡地址,因此 每個 Class A 網絡實際的主機機數目為 16777214,由此可知,所有 Vlass A 的主機數目是 126*16777214=2113928964。 Class B在 Class B 網絡中,每個網絡都是利用前 16個位來定義,因此有時也稱
11、為 /16網絡 。因為前 2個位已被事先定義為二進制的 10, 所以 Class B的第一個字節(jié)是由 1000000110111111,也就是十 進制的 128191,而第二個字節(jié)也是網絡識別碼,所以 Internet 上具有 64*28=16384個 Class B 網絡。Class B 使用最后 2個字節(jié)(16個位來表示主機識別碼,因此每個 Class B 網絡可以包含的主 機數目為 216 ,也就是 65536臺主機。但是主機識別碼,因此每個 Class B網絡可以包含的主機 數目為 65534,由此可知,所有 Class B的主機數目是 167384 * 65534=107370905
12、6。 Class C在 Class C的網絡中,每個網絡都是利用前 24個位來定義,因此有時也稱為 /24網絡 。因為前 3個位已被事先定義為二進制的 110,所以 Class C的第一具個字節(jié)是由 1100000111011111,也 就是十進制的 192223,而第 2和第 3個字節(jié)也是網絡識別碼,所以目前 Internet 上具有 32 * 216=2097152個 Class C網絡。Class C使用最后 1個字節(jié)(8個位來表示主機識別碼,因此每個 Class C網絡可以包含的主機 數目為 28,也就是 256臺主機。但是主機識別碼全為 1和 0表示廣播及網絡地址因此實際的主 機數目
13、為 254,而所有 Class C的主機數目是 254 *2097152=532676608。 Class DClass D的 IP 地址只供多點發(fā)送(Multicast 的群組計算機使用,也就是說以這些地址發(fā)送的信 息可以同時發(fā)送到多臺主機,這些地址是用在某些特殊的軟件組或服務。Class D 網絡的前 4個位已被事先定義為二進制的 1110,所以 Class D 的第一個字節(jié)是由 111000011101111,也就是十進制 224239,所以目前有 16個 Class D網絡,但這些地址并不提 供給一般的 Internet 主機使用,它可以不具有子網掩碼。 Class EClass E的
14、 IP 地址是屬于實驗用的地址,這些地址并不提供給一般的 Internet 主機使用,它的前 5個位已被子事先定義為二進制的 11110,所以 Class E 的第一個字節(jié)是由 1111000111110111, 也就是十進制的 240254,所以目前有 15個 Class E網絡。 私有 IP 地址(Private IP Address如果用戶的網絡不不連接 Internet , 那么無湎為了使用 TCP/IP通信協(xié)議而向 InterNIC 或 ISP 取得 已登錄的 IP 地址使用權, 在此情形下, IANA (Internet Assigned Numbers Authority 建議使
15、用 私 有 IP 地址 。這些地址都是由 IANA 所保留,主要是提供在 TCP/IP網絡上的私人使用, Internet 上的主機也不可使用這些地址,而這些私有 IP 地址正是 NAT 運作上所使用的地址。這些私有 IP 地址的范圍如表 1-2所示 注:有些人習慣將這些 IANA 保留 IP 地址稱為虛擬 IP ,而開放在 Internet 上的地址則稱為物理 IP 地 址,但是作者認為這些名稱并不合適。因為這些保留的 IP 地址也是由 RFC 正式定義的 IP 地址, 何稱 虛擬 呢?所以我們將用 內部 IP 表示從 IANA 所保留的 IP 地址, 而在 Internet 上使用的 IP
16、 地址則是以 外部 IP 來表示。 子網掩碼(Subnet Mask子掩碼和一般的 IP 地址相同,都是由 32個二進制的數字所組成,它的惟一功能就是辨別 IP 地 址中網絡識別碼和主機識別碼部分為什么, 這在網絡傳輸上相當重要, 因為具有相同網絡識別碼 的主機要以直接地通信,而不同網絡識別碼的主機就需要通過網關來轉送信息。在利用子網掩碼判斷 IP 地址的網絡識別碼和主機識別碼的部分時,要按以下的步驟來運算我們 在此以一個 Class B的 IP 地址 5和 Clalss B默認的子網掩碼 -為例。 將 IP 地址轉換為二進制表示法在所有的子網掩碼運
17、算和子網分割運算中,所有的 IP 地址及子網掩碼都必須先轉換為二進制表 示法。在本例中 5的二進制表示法為10010110000101110011100000011001注:在轉換為二進制表示法時須注意一點,如果不足 8位時須以 0補足,例如 56的二進制表示法應 寫成 00111000 ,而不是 111000 。將子網掩碼轉換為二進制表示法在本例中子網掩碼 的二進制表示法為 1111111111111110000000000000000,而各種類 型網絡默認的子網掩碼如表 1-3所示。 將以二進制表示法的 IP 地址和子網掩碼利用 AND 運算所謂
18、 AND 運算是指真值表中 與 的運算,只要二者其中有一個是 0,則運算后值就為 0,只有 在二者都為 1的情形下才會為 1。有關 AND 運算的結果如下所示:1 AND 1 = 1 1 AND 0 = 00 AND 1 = 0 0 AND 0 = 0在了解 AND 運算后,就可以將以二進制表示法的 IP 地址和子網掩碼利用 AND 來運算,運算 的過程及結果如圖 1-4所示。 運算結果中非 0的部分為網絡識別碼在 IP 地址和子網掩碼利用 AND 運算后,它的結果中不是 0的部分就是網絡識別碼,在本例中 為 150.23,但是通常習慣用 0來將它寫成類似 IP 地址的形態(tài),如 150.23.
19、0.0。在發(fā)送信息前, IP 即是以這種方法來判斷目的地的主機是否存在本地網絡,如果目的地主機位于遠程網絡, IP 就 會將此信息發(fā)送到路由或默認的網關,如圖 1-5所示。由以上的結果可知,如果要避免尋址及路由問題,應該確保在同一網絡區(qū)域上的所有 TCP/IP主 機都使用相同的子網掩碼。 NAT 原理及主要功能前面內容介紹了 IP 的基本概念,接下來將開始介紹有關 NA T 的內容。所謂 網絡地址轉換 (Network Address Translation, NAT , 它是定義于 RFC 1631中的 Internet 標準, 主要是用來簡化 及保存 IP 地址, 它可讓原本無法上網, 但
20、是可以使用內部 IP 地址的主機可以成功地連接 Internet 。 這可大大減少 IP 地址的需求,因為基本上整個內部網絡都可憑借 NA T 上的一具外部 IP 來連接 Internet ,如圖 1-6所示。 當 NAT 作用于路由器時,通??蛇B接兩組以上的網絡上在轉送數據包到其他網絡前,將內部 IP 地址轉換為 Internet 上合法的外部 IP 地址。此外, NAT 還可以對外只用一個地址代表整個網絡, 這樣可以提供更高的安全性, 將整個內部網絡隱藏在該地址后, 將這種安全性及地址保存的雙重 功能的程序通常安裝在遠程訪問的環(huán)境。目前許多的路由器支持 NA T 這項功能,其他如 Linu
21、x 中的 IP 偽裝(IP Masquerade , FreeBSD 中的 NATD 或 Windows 上的 Sygate 軟件都具有相同的 功能。使用 NAT 的優(yōu)點如下: 減少 IP 地址使用量。在使用 NAT 以后, Internet 上的主機會誤以為它正與 NAT 服務器進行通 信,因為它們并不知在 NAT 主機后包含一個局域網。于是, 回傳的數據包會直接發(fā)送到 NA T 服 務器, 然后 NAT 服務器再將這個數據包頭文件目的地的 IP 地址更為局域網里真正發(fā)出信息的計 算機。 可在 NAT 服務器上的外部 IP 上建立多個 IP Alias ,當收到傳給那些 IP Alias的請
22、求時, NA T 可以把這些請示求轉送給內部網絡中提供服務的服務器。 負載平衡(Load Balancing ,也就是說,將同一個 IP Alias請求分別導向到其他運行相同服務 的服務器,可減少單一服務器的工作量。雖然使用 NAT 具有以上的優(yōu)點,但是在某些情況下,必須注意 NA T 潛藏的缺點, 以下舉出幾個 例子以供讀者參考: 理論上, NAT 服務器只使用一個 IP 地址,就可涵蓋無數個內部 IP 地址,但是許多網絡通信 協(xié)議或應用程序都需要真正點對點的連接。 有些數據包是從出發(fā)地到目的地過程中的過程中都不能修改,像 IP 安全體系結構就不可以使用 NAT 進行映射,因為數據包的頭文件
23、中含有數字簽名,如果頭文件被更改(即使是任何一個 字 ,這個數字簽名便從此失去效力。 雖然 NAT 對于無法取得足夠 IP 地址的企業(yè)組織來說, 它是一個極佳的解決方案, 但當該組織 必須合并多個局域網時,必須仔細重新規(guī)劃 IP 分配,否則很容易產生 IP 重復的情況(因為每個 局域網都使用內部 IP 地址 。 NAT通常被人視為增加計算機安全性的保護措施,但是如果入侵者可以控制 NAT 服務器,那 么整個局域網就會暴露在 Internet 當中,因此 NAT 并不能拿來代替防火墻使用。NAT 依其作用的方向性可區(qū)分兩種類型: Source NAT (SNAT:所謂的 Source NAT 就
24、是改變第一個數據包的來源地址,它永遠會在數據 包發(fā)送到網絡之前完成,數據包偽裝就是一具 SNAT 的例子。 Destination NAT (DNAT:Destination NAT剛好與 SNAT 相反,它是改變第一個數據懈的目的 地地址,如平衡負載就是屬于 DNAT 。 NAT 服務器的安裝與使用經過以上兩個小節(jié)的說明, 想必各位讀者現(xiàn)在對于 IP 及 NAT 服務器的原理一定有所了解, 接下 來將實際進行 NAT 服務器的安裝。 本書中的環(huán)境假設 NAT 服務器目前只具備一張網卡 (負責連 接 Internet ,而且這張網卡使用以下的外部 IP 地址配置: 網卡名稱:eth0。 IP地
25、址:18。 子網掩碼:。而為了連接內部網絡(本書假設為 192.168.1.x 必須再新建一張網卡,它使用內部 IP 地址配置: 網卡名稱:eth1。 IP地址:. 子網掩碼:。圖 1-8所示是本書范例使用的網絡體系結構。 iptables 安裝在安裝 NAT 服務器前,必須確定系統(tǒng)上已安裝 iptables 程序,如果不知是否已經安裝 iptables , 可以使用以下的方法來判斷:root ns l root# rpm-qa iptablesIptables-1.2.7a-2如 果尚 未 安裝 i
26、ptables , 可 以在 第 一 張 安裝 光 盤 中 的 /Red Hat/RPMS目 錄 下 ,找 到 名為 iptables -1.2.7a-2.i386.rpm 的安裝程序,然后按照以下的方法進行安裝:root ns l root# rpm ivh iptables-1.2.7a-2.i386.rpm為使開機時能自動運行 iptablas ,可以在終端機窗口中輸入 ntsysv 指令,然后在出現(xiàn)的畫面中, 利用上下方向鍵將光標移到菜單中的 iptables 項目(同時確定 ipchains 選項沒有被選中 ,然后 按空格鍵以選擇,最后利用 Tab 鍵將光標移到 確定 按鈕并按 En
27、ter 鍵即完成設置,如圖 1-9所 示。 網卡安裝在安裝 iptables 程序后,接下來我們將安裝第二張網卡連接內部網絡,以下是逐步的安裝說明。 為了避免安裝時的失敗,建議先準備一張 Linux 支持的網卡, 如果不確定這張網卡是否可用, 可 到以下網址查閱(本書以 Red Hat為例 :http:/ 插入網卡并啟動電源后, Linux 會自動檢測這張網卡, 然后 Linux 會要求輸入 IP 地址、 子網掩碼、 網關和 DNS 服務器 IP 地址等配置信息。啟動第二張卡。root ns l root# ifup eth l使用 IP Forwarding功能在安裝第二張網卡后,接下來須使
28、用 IP Forwarding 的功能,代替內部網絡的主機發(fā)送數據包, 以下是使用的步驟及說明: 修改 /etc/sysctl.conf文件內容,將 net .ipv4.ip_forward= 這行設置為 1 。root ns l root# vi /etc/sysctl.confNet.ipv4.ip_forward=1 使用 IP Forwarding 功能。在此介紹兩種使用 IP Forwarding 功能方法,可以直接運行以下的 指令:root ns l root# echo 1 > /proc/sys/net/ipv4/ip_forward或在 /etc/sysconfig/n
29、etwork文件中,加入以下的記錄:root ns l root# vi /etc/sysconfig/network 最后重新加載 /etc/rc.d/init.d/xinetd,以便設置生效:root ns l root# /etc/rc.d/init.d/xinetd reload重新加載配置設置:確定 在此可以先忽略安全性的考慮,等安裝完成并測試成功后,再進行安全管理。以下的指令表 示允許所有內部網絡的主機連接到 Internet ,這也是一般所稱的 IP 偽裝 (IP Masquerading : root ns l root # iptables t nat A POSTROUTI
30、NG s /24 j MASQUERADE但有時使用以上的指令后, FTP 會無法正常運作,此時可以嘗試以下的指令:root ns l root# modprobe ip _conntrack_ftproot ns l root # modprobe ip_nat_ftp客戶端設置在 NAT 服務器設置后,最后的步驟就是客戶端的設置,本書在此以 Windows 2000客戶端為例。 以下是設置的步驟與說明: 選擇桌面上的 網上鄰居 圖標,然后右擊并選擇菜單中的 屬性 選項,系統(tǒng)即會出現(xiàn) 網絡和 撥號連接 窗口,如圖 1-10所示。 在出現(xiàn)的 網絡和撥號連接 窗口中選擇 本
31、地連接 圖標,然后右擊并選擇要菜單中的 屬性 選項,系統(tǒng)會隨即出現(xiàn) 本地連接屬性 窗口,如圖 9-11所示。 在出現(xiàn)的 本地連接屬性 窗口中,選擇 Internet 協(xié)議(TCP/IP 選項,并單擊右下角的 屬 性 按鈕,系統(tǒng)會隨即出現(xiàn) Internet 協(xié)議(TCP/IP屬性 窗口,如圖 1-12所示。 在出現(xiàn) Internet 協(xié)議(TCP/IP屬性 窗口中,首先選擇 使用下面的 IP 地址 選項, 然后輸入 以下的信息: IP 地址 字段:輸入 192.168.1.X ,本書在此以 為例。 子網掩碼 字段:輸入 ,必須與 NAT 服務器內部
32、 IP 使用的子網掩碼相同。 默認網關 字段:這是最重要的設置,必須輸入 NAT 服務器的內部 IP (此處是 , 千萬不可填入 NAT 服務器的外部 IP ,否則數據包永遠也無法傳到 NA T 服務器(因為 網絡 ID 不同即無法通信 。 首選 DNS 服務器 字段:如果網絡中有 DNS 服務器, 就可以在此輸入 DNS 服務器的 IP 地址。 完成客戶端的設置。 iptables 在防火墻上的運用介紹安裝 NAT 服務器時簡要地說明了 iptables 程序,其實它還有許多功能尚未說明,因此本節(jié) 將再進一步說明 iptables 程序在防火墻上的運用。iptable
33、s 體系結構與處理流程iptables 程序的功能都是屬于數據包(Packet 層的工作,而這些工作都是利用不同的 規(guī)則表 (Rule Table 來定義的。在 iptables 中包含 3個默認的 Rule Table :Filter Table 、 NAT Table 與 Mangle Table,而每一個 Rule Table又是由數個 鏈 (Chain 所組成。舉例來說,在 Filter Table中除了定制的鏈之外, 還包含 3個內置的鏈:INPUT Chain、 OUTPUT Chain和 FORWARD Chain, 如圖 1-13所法。 Filter Table是 iptabl
34、es 中的默認 Rule Table, 也就是說, 在運行時如果沒有指定其他參數, 則 iptables 會套用 Filter Table中的規(guī)則, 令外兩種 Rule Table都需要配合指令參數使用。 而在防火墻的運用 上, iptables 主要是使用默認的 Filter Table功能, 所以有人就稱為 包過濾器 (Packet Filter 。 Filter Table 可以先檢索到數據包,然后通過預選取一義的規(guī)則(Rule 來判斷是否發(fā)送此數據包。由 于它運行于網絡層,所以不論是否發(fā)送數據包,都不會影響到數據包中的數據內容。注:所謂 包過濾 是指利用一具軟件查看經過數據包的表頭(H
35、eader ,而由此決定整個數據包的處 理,可能的處理方式有:丟棄這個數據包(DROP 、接受這個數據包(ACCEPT ,或其他更復 雜的動作。數據包過濾原理圖 1-14是在 Filter Table中內置的 3個鏈與防火墻發(fā)送數據包之間的流程圖。 圖 1-14表示,當一個數據包抵達圖 9-13中的任何一個鏈,則這個鏈就會開始檢查這個數據包, 以決定后續(xù)的處理,如丟棄或接受。其實每個鏈都是一個檢查列表, 它會利用預先設置的規(guī)則來對數據包進行判斷, 如果判斷的結果 不符合(Mach ,就會交給鏈中的下一個規(guī)則繼續(xù)處理。如果到最后已沒有任何規(guī)則可供判斷, 那內核就會利用鏈的規(guī)則(Policy 來作
36、出決定,但是為了安全起見,規(guī)則通常會要求內核丟棄 此數據包。以下就是防火墻發(fā)送數據包的流程說明: 當防火墻攔截到數據包后,內核首先會檢查此數據包的目的地(Destination ,而這個檢查的 過程便稱為 路由(Routing 。 如果目的地址為本機,則此數據包就會流向 INPUT 鏈,而由本機程序來負責接管。然后由 OUTPUT 鏈處理,如果此數據包可被此處的規(guī)則接受,則這個數據包可送到它所指向的接口。 此時如果內核沒有啟動轉送功能(Forwarding ,或不知道如何轉送此數據包,則這個數據包 就會被丟棄。 如果轉送功能已啟動,那么此數據包就會被指向另一個網絡接口,而流向 FORWARD
37、鏈,如 果此數據包可被此處的規(guī)則接受,這個數據包就可送到它所指向的接口。iptables 程序使用在了解 iptables 程序的基本原理后,接下來的內容將介紹 iptables 程序的使用方法以及各個選項 與參數。 Iptable 的語法結構如表 1-4所示。 Table 類型Table 類型 是指目前內核的 Rule Table類型,而在指定 Table 類型時必須配合 - -table 或 -t 參 數的使用,表 1-5列出了可供設置的 Table 類型及說明。 指令(Command 指令 表示要求 iptables 程序運行的工作,而在每一個 iptables 指令中,只允許使用一個指
38、令。 除了 help 指令之外,所有的指令都必須用大寫(Upper-Case 字母來表示,表 1-6列出了可供 使用的指令名稱及說明。 參數在指定 iptables 參數選項時, 如果在選項前加入驚嘆號 ! 則表示否定的意思, 例如 -s! localhost 是表示除了 localhost 的來源地址都可以??梢悦萌绫?1-7所示的參數。 注:在來源(-s 和目的地(-d 的表示法有以下 3種:使用完整的主機名稱,如 或 localhost 。使用 IP 地址,如 26。使 用 網 絡 地 址 , 如 /24或 /255.2
39、55.255.0, 兩 者 都 是 包 含 55的 IP 地址。 斜線后的數字表示子網掩碼的位數, 例如 /8表示 。 選項在 iptables 指令最后一部分為 選項 ,但這部分的可設置項目會隨著前面的 參數 而變,因此本 書在此分別介紹不同情形下的選項說明:通信協(xié)議選項在 參數 部分如果使用 - -protocol 或 -p , 可以指定使用的通信協(xié)議種類, 其中包括 TCP 、 UDP 、 ICMP 或全部(all 。此處的寫法沒有區(qū)分大小寫,而且能以數學代替,如果要知道每種通信協(xié) 議代表的數字,可以查閱 / etc/prot
40、ocols文件中的內容,例如 tcp 為 6、 udp 為 17而 icmp 為 1。表 1-8列出了在選擇不同通信協(xié)議時可用的選項名稱及說明。 目標選項在 參數 部分如果使用 -j 或 -jump ,就可設置此規(guī)則的 目標 (Target , 這可說是最重要的設 置項目,如果少了這個選項,此規(guī)則就形同虛設。在此選項后必須使用大寫來指定規(guī)則的目標, 其中可用的目標選項及說明如表 1-9所示。 保存 iptables 設置因為使用 iptables 程序所建立的規(guī)則只會保存在內存中,因此如果要重新啟動計算機,那么這些 設 置都 將 消 失 。 如果 希 望 某些 規(guī) 則 可 以 在每 次 開 機
41、后 都 生 效 , 則必 須 將 此規(guī) 則 保 存在 /etc/sysconfig/iptables文件中。要將規(guī)則保存在 /etc/sysconfig/iptables文件中并不需要手動輸入,可利用以下的指令進行: root ns l root # /etc/rc.d/init.d /iptables save保存目前的設置到 /etc/sysconfig/iptables:確定 或root ns l root # /sbin/service iptables save保存目前的設置到 /etc/sysconfig/iptables:確定 在運行以上的指令后, iptables 初始指令文件
42、會運行 /sbin/iptables-save程序,并且將結果寫入 /etc/sysconfig/iptables文件中。以下是 /etc/sysconfig/iptables文件的范例內容: 因為 /etc/sysconfig/iptables 文件只允許管理員讀取,所以不必擔心有關數據包篩選規(guī)則的內容會 泄露到其他用戶。root ns l root # ls l /etc/sysconfig/iptables-rw- l root root 490 4 月 9 13:24 /etc/sysconfig/iptables在將 iptables 規(guī)則存入 /etc/sysconfig/ipta
43、bles文件后,下次主機重新啟動時, iptables 初始指令文 件會運行 /sbin/iptables-restore程序來使用保存規(guī)則。 范例練習以下將通過各種不同類型的范例來說明 iptables 的實際設置,讀者可以先由這些練習開始嘗試, 待熟練后再加以修改其中的內容,以符合實際環(huán)境的需求。新建鏈以下的范例將新建一個簡單鏈,可以定制鏈的名稱,不過最多不可超過 31個字符,本書在此 chain-1為例。在新建后,才可以開始將規(guī)則加入其中,在此應該使用 -N 或 - -new-chain 選項: root ns l root# iptables Nchain-n或root ns l ro
44、ot # iptables new-chain chain-1如果使用的鏈名已經存在,系統(tǒng)會出現(xiàn)以下的錯誤信息:iptables:Chain already exists刪除鏈以下的范例將刪除一個鏈,這里應該用 -X 或 -delete-chain 選項,同時指定要刪除的鏈名: root ns l root # iptables X chain-1或root ns l root # iptables -delete-chain chain-但是在刪除鏈時需注意以下幾個重點: 在此鏈中必須沒有存在任何規(guī)則。 此鏈不可為任何規(guī)則的目標。 不可刪除任何內置鏈。 如果沒有指定鏈名,可能會誤刪所有用戶定
45、義的鏈。清空鏈的內容以下的范例清空一個鏈的內容,在此應該使用 -F 或 - -flush 選項,同時指定要清空的鏈名,否 則會清空所有鏈的內容:root ns l root # iptables F chain l或root ns l root # iptables flush chain-l列出鏈的內容以下的范例將列出鏈的內容,在此應該使用 -L 或 - -list 選項,同時指定要列出內容的鏈名,否 則會列出所有鏈的內容:root ns l root # iptables L chain l或root ns l root # iptables -list chain-l因為目前范例為新建的
46、鏈, 因此列出的內容中只包含字段名稱, 如果希望得到較詳細的內容, 可 以同時使用 -V 選項:Chain chain -1 (0 referencesTarget prot opt source destination關閉所有服務為了達到最高的安全性,可以禁止所有進出 INPUT Chain、 FORWARD Chain和 OUTPUT Chain的數據包, 但因為此舉具有最高的優(yōu)選權, 即如果選設置禁止服務, 此后的所有允許的規(guī)則都將 失效,所以建議將此步驟列為最后的步驟。以下是關閉所有服務的方法:root ns l root# -P INPUT DENYroot ns l root# -
47、P FORWARD KENYroot ns l root# -P OUPPUT DENY提醒讀者一點,在設置任何的規(guī)則后,千萬不可重新啟動 iptables 服務,否則所有的設置都會被 清空。root ns l root # /etc/rc.d /init.d/iptables restart釋放所有目前的設置與用戶定義的 chains :確定 清除所有的設置和用戶定義的 chains :確定 套用 iptables 防火墻設置:確定 開放特定服務如果主機上提供某些服務, 可以利用啟動該服務的連接端口, 允許客戶端使用該服務, 以下的范 例表示開放 FTP 服務,因為 FTP 使用連接端口 2
48、0和 21,所以必須使用兩行指令:root ns l root # iptables A INPUT i ethl p tcp -dport20 j ACCEPTroot ns l root # iptables A INPUT i ethl p tcp -dport21 j ACCEPT注:也可以直接使用服務名稱來替代連接商品號碼,請參考 /etc/services文件內容。關閉特定服務關閉原本提供的服務,其設置方法和開放服務時很相似,只是將 -j ACCEPT 修改為 -j DROP , 以下的范例表示關閉原來開放的 FTP 服務 :root ns l root # iptables A
49、INPUT i ethl p tcp dport20 j DROProot ns l root # iptables A INPUT i ethl p tcp -dport21 j DROP數據包過濾如果希望禁止網絡上某臺主機或某個網絡節(jié)點發(fā)送數據包, 可以使用 數據包過濾 功能。 以下的 范例會禁止所有來自 /24 網絡區(qū)段的主機,連接 IP 地址為 6的 Web 服務器: root ns l root # iptables A FORWARD p TCP s /24-d 6dport www j DRO
50、P 防火墻簡單設置 除了以上利用 iptables 程序的方式來設置防火墻外,在 Red Hat Linux 中也包含了名為“l(fā)okkit”的 防火墻設置程序, 它最大的好處是允許用戶利用預先設置的選項來進行防火墻設置, 雖然它的功 能不如 iptables 程序強大,但是它極易上物的特性,確實獲得了許多用戶的青睞。所以在這個小 節(jié)中,將介紹“l(fā)oddik”程序的使用與設置時的選項說明。 要啟動“l(fā)okkit”程序,可以在 X Window 或文字模式下輸入“l(fā)okkit”,系統(tǒng)就會啟動“Firewall Configuration”畫面,如圖 1-15 所示。 在“Firewall Conf
51、iguration”畫面的“Security Level”選項中, 共包含 3 種內置的安全性設置, High、 即 Medium 和 No firewall。以下是這些內置安全性設置的說明: Hige 這是安全性最高的選項,如果選擇此選項,在默認的情形下,防火墻只會開放以下兩種服務的功 能: DNS 回應。 DHCP 請求。 如果主機目前已連接到 Internet,但是并不想提供任何的服務,這是最好的選項。 Medium 這是 Red Hat Linux 默認的防火墻設置,如果選擇此選項,在默認情況下系統(tǒng)會禁止以下服力: 所有連接端口號碼小于 1023 的服務,如 FTP、SSH、telnet 和 HTTP。 NFS 服務(連接端口 2049) 。 X 字型服務器(連接端口 7100) X Window 連接服務(連接端口 60006009) 。 注: 在高安全性和中等安全性的防火設置下,NIS 與 LDAP 等網絡驗證方式將無法使用。 No firewall 這個選項表示沒有啟動防火墻的功能,也就是說,系統(tǒng)可以提供客戶端所有服務,而且不作任何 安全性的檢查,它比較適合使用在內部的網絡環(huán)境(不連接 Internet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非營利財務制度
- 公司收付款財務制度
- 大辦局財務制度
- 公司辦公司上班請假制度
- 養(yǎng)老院老人康復理療師職業(yè)發(fā)展規(guī)劃制度
- 養(yǎng)老院老人訪客管理制度
- 古街夜游活動方案策劃(3篇)
- 河道渾水施工方案(3篇)
- 燈施工方案范本(3篇)
- 教育資源分配使用制度
- 藥師崗前培訓考試題及答案
- 2025年江西公務員考試(財經管理)測試題及答案
- CRT-YS4690消防控制室圖形顯示裝置使用說明書-營口賽福德
- 植筋工程施工驗收記錄表范例
- 2025至2030年中國冷凍食品行業(yè)市場調研及行業(yè)投資策略研究報告
- 壓空罐安全知識培訓課件
- 2025年江蘇南京市建鄴區(qū)招聘第一批購崗人員5人筆試模擬試題及答案詳解1套
- 市場保潔管理方案(3篇)
- 醫(yī)院調料雜糧副食品采購項目方案投標文件(技術方案)
- 靜脈給藥的安全管理
- 銀行從業(yè)者觀《榜樣》心得體會
評論
0/150
提交評論