


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、linux防火墻的設(shè)置Linux防火墻配置(一)隨著In ternet規(guī)模的迅速擴大,安全問題也越來越重要,而構(gòu)建防火墻是 保護系統(tǒng)免受侵害的最基本的一種手段。雖然防火墻并不能保證系統(tǒng)絕對的安 全,但由于它簡單易行、工作可靠、適應(yīng)性強,還是得到了廣泛的應(yīng)用。本章 主要介紹與Linux系統(tǒng)緊密集成的iptables防火墻的工作原理、命令格式,以 及一些應(yīng)用實例。9.1 iptables防火墻介紹netfilter/iptables 是Linux系統(tǒng)提供的一個非常優(yōu)秀的防火墻工具,它 完全免費、功能強大、使用靈活、占用系統(tǒng)資源少,可以對經(jīng)過的數(shù)據(jù)進行非 常細致的控制。本節(jié)首先介紹有關(guān)iptable
2、s防火墻的基本知識,包括netfilter 框架、iptables 防火墻結(jié)構(gòu)與原理、iptables命令格式等內(nèi)容。9.1.1 netfilter 框架Linux內(nèi)核包含了一個強大的網(wǎng)絡(luò)子系統(tǒng),名為netfilter,它可以為iptables內(nèi)核防火墻模塊提供有狀態(tài)或無狀態(tài)的包過濾服務(wù),如NAT IP偽裝等,也可以因高級路由或連接狀態(tài)管理的需要而修改IP頭信息。netfilter位于Linux網(wǎng)絡(luò)層和防火墻內(nèi)核模塊之間,如圖9-1所示。圖9-1 netfilter 在內(nèi)核中的位置雖然防火墻模塊構(gòu)建在Linux內(nèi)核,并且要對流經(jīng)IP層的數(shù)據(jù)包進行處理, 但它并沒有改變IP協(xié)議棧的代碼,而是通過
3、netfilter模塊將防火墻的功能引入IP層,從而實現(xiàn)防火墻代碼和IP協(xié)議棧代碼的完全分離。netfilter 模塊的 結(jié)構(gòu)如圖9-2所示。IM1 1 in >IMiMi :MM亠uMa圖9-2 netfilter 結(jié)構(gòu)框架圖對IPv4協(xié)議來說,netfilter在IP數(shù)據(jù)包處理流程的5個關(guān)鍵位置定義了5個鉤子(hook)函數(shù)。當數(shù)據(jù)包流經(jīng)這些關(guān)鍵位置時,相應(yīng)的鉤子函數(shù)就被調(diào) 用。從圖9-2中可以看到,數(shù)據(jù)包從左邊進入IP協(xié)議棧,進行IP校驗以后, 數(shù)據(jù)包被第一個鉤子函數(shù) PRE_ROUTING理,然后就進入路由模塊,由其決定 該數(shù)據(jù)包是轉(zhuǎn)發(fā)出去還是送給本機。若該數(shù)據(jù)包是送給本機的,則
4、要經(jīng)過鉤子函數(shù)LOCAL_IN處理后傳遞給本機的上層協(xié)議;若該數(shù)據(jù)包應(yīng)該被轉(zhuǎn)發(fā),則它將被鉤子函數(shù)FORWARD理,然后還要經(jīng)鉤子函數(shù)POST_ROUTIN處理后才能傳輸?shù)骄W(wǎng)絡(luò)。本機進程產(chǎn)生的數(shù)據(jù)包 要先經(jīng)過鉤子函數(shù)LOCAL_OU處理后,再進行路由選擇處理,然后經(jīng)過鉤子函 數(shù)POST_ROUTING理后再發(fā)送到網(wǎng)絡(luò)。%說明:內(nèi)核模塊可以將自己的函數(shù)注冊到鉤子函數(shù)中,每當有數(shù)據(jù)包經(jīng)過該鉤子點時,鉤 子函數(shù)就會按照優(yōu)先級依次調(diào)用這些注冊的函數(shù),從而可以使其他內(nèi)核模塊參與對數(shù)據(jù)包的 處理。這些處理可以是包過濾、 NAT以及用戶自定義的一些功能。9.1.2 iptables 防火墻內(nèi)核模塊netfil
5、ter框架為內(nèi)核模塊參與IP層數(shù)據(jù)包處理提供了很大的方便,內(nèi)核的防火墻模塊正是通過把自己的函數(shù)注冊到n etfilter的鉤子函數(shù)這種方式介入了對數(shù)據(jù)包的處理。這些函數(shù)的功能非常強大,按照功能來分的話主要有4種,包括連接跟蹤、數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換( NAT和對數(shù)據(jù)包進行修改。 其中,NAT還分為SNATCH DNAT分別表示源網(wǎng)絡(luò)地址轉(zhuǎn)換和目的網(wǎng)絡(luò)地址轉(zhuǎn)換, 內(nèi)核防火墻模塊函數(shù)的具體分布情況如圖9-3所示。由圖9-3可以看出,防火墻模塊在 netfilter 的LOCAL_IN FORWARD LOCAL_OUT個位置分別注冊了數(shù)據(jù)包過濾函數(shù),數(shù)據(jù)包經(jīng)過這些位置時,防火 墻模塊要對數(shù)據(jù)包進
6、行過濾。這三個位置也稱為三條鏈,名稱分別為INPUTFORWARD OUTPUT它們共同組成了一張過濾表,每條鏈可以包含各種規(guī)則, 每一條規(guī)則都包含0個或多個匹配以及一個動作。當數(shù)據(jù)包滿足所有的匹配時, 則過濾函數(shù)將執(zhí)行設(shè)定的動作,以便對數(shù)據(jù)包進行過濾的。圖9-3 iptables防火墻內(nèi)核模塊結(jié)構(gòu)框架圖%注意:這些規(guī)則的次序是很重要的,過濾函數(shù)對數(shù)據(jù)包執(zhí)行了某一規(guī)則動作后,對數(shù)據(jù)包 的處理即告結(jié)束,即使這個數(shù)據(jù)包還滿足后面其他規(guī)則的所有匹配,也不會執(zhí)行那些規(guī)則所 設(shè)定的動作。從圖9-3中可以看出,除了過濾表以外,在PRE_ROUTINGOCAL_OU和POST_ ROUTING :個位置各有
7、一條有關(guān)NAT的鏈,名稱分別為PREROUTINGOUTPU和 POSTROUTING它們組成了 NAT表。NAT鏈里面也可以包含各種規(guī)則,它指出了 如何對數(shù)據(jù)包的地址進行轉(zhuǎn)換。此外,5個鉤子函數(shù)位置的mangle鏈還組成了一張mangle表,這個表的主 要功能是根據(jù)規(guī)則修改數(shù)據(jù)包的一些標志位,例如 TTL、TOS等,也可以在內(nèi)核 空間為數(shù)據(jù)包設(shè)置一些標志。防火墻內(nèi)的其他規(guī)則或程序(如 tc等)可以利用 這種標志對數(shù)據(jù)包進行過濾或高級路由。以上介紹的是iptables防火墻的內(nèi)部結(jié)構(gòu),Linux系統(tǒng)還提供了 iptables 防火墻的用戶接口,它可以在上述各張表所包含的鏈中添加規(guī)則,或者修改、
8、 刪除規(guī)則,從而可以根據(jù)需要構(gòu)建自己的防火墻。具體來說,用戶是通過輸入 iptables命令來實現(xiàn)上述功能的。9.1.3 iptables命令格式在RHEL 5中,iptables 命令由iptables-1.3.5-1.2.1 軟件包提供,默認 時,系統(tǒng)已經(jīng)安裝了該軟件包,因此,用戶可以直接輸入iptables命令對防火墻中的規(guī)則進行管理。iptables命令相當復(fù)雜,具體格式如下所示。iptables -t 表名v命令 鏈名規(guī)則號規(guī)則-j目標-t選項用于指定所使用的表,iptables 防火墻默認有filter 、nat和mangle 3張表,也可以是用戶自定義的表。表中包含了分布在各個位
9、置的鏈,iptables命令所管理的規(guī)則就是存在于各種鏈中的。該選項不是必需的,如果未指定一個具體的表,則默認使用的是filter 表。命令選項是必須要有的,它告訴iptables要做什么事情,是添加規(guī)則、修 改規(guī)則還是刪除規(guī)則。有些命令選項后面要指定具體的鏈名稱,而有些可以省 略,此時,是對所有的鏈進行操作。還有一些命令要指定規(guī)則號。具體的命令 選項名稱及其與后續(xù)選項的搭配形式如下所示。示例1:-A v鏈名 v規(guī)則功能:在指定鏈的末尾添加一條或多條規(guī)則。示例2:-D v鏈名 v規(guī)則-D v鏈名 v規(guī)則號功能:從指定的鏈中刪除一條或多條規(guī)則??梢园凑找?guī)則的序號進行刪除, 也可以刪除滿足匹配條件
10、的規(guī)則。示例3:-R v鏈名 v規(guī)則號 v規(guī)則功能:在指定的鏈中用新的規(guī)則置換掉某一規(guī)則號的舊規(guī)則。示例4:-I v鏈名 規(guī)則號v規(guī)則功能:在給出的規(guī)則序號前插入一條或多條規(guī)則,如果沒有指定規(guī)則號,則 默認是1。示例5:-L 鏈名功能:列出指定鏈中的所有規(guī)則,如果沒有指定鏈,則所有鏈中的規(guī)則都將 被列出。示例6:-F 鏈名功能:刪除指定鏈中的所有規(guī)則,如果沒有指定鏈,則所有鏈中的規(guī)則都將 被刪除。示例7:-N 鏈名功能:建立一個新的用戶自定義鏈。示例8:-X 鏈名功能:刪除指定的用戶自定義鏈,這個鏈必須沒有被引用,而且里面也不包 含任何規(guī)則。如果沒有給出鏈名,這條命令將試著刪除每個非內(nèi)建的鏈。
11、示例9:-P 鏈名 目標功能:為指定的鏈設(shè)置規(guī)則的默認目標,當一個數(shù)據(jù)包與所有的規(guī)則都不匹 配時,將采用這個默認的目標動作。示例10:-E 舊鏈名 新鏈名功能:重新命名鏈名,對鏈的功能沒有影響。以上是有關(guān)iptables命令格式中有關(guān)命令選項部分的解釋。iptables命令 格式中的規(guī)則部分由很多選項構(gòu)成,主要指定一些IP數(shù)據(jù)包的特征。例如,上一層的協(xié)議名稱、源IP地址、目的IP地址、進出的網(wǎng)絡(luò)接口名稱等,下面列 出構(gòu)成規(guī)則的常見選項。-pv協(xié)議類型 >:指定上一層協(xié)議,可以是 icmp、tcp、udp和all-svIP地址/掩碼 > :指定源IP地址或子網(wǎng)。 -d<IP地址
12、腌碼:指定目的IP地址或子網(wǎng)。-i<網(wǎng)絡(luò)接口 > :指定數(shù)據(jù)包進入的網(wǎng)絡(luò)接口名稱。 -0<網(wǎng)絡(luò)接口 >:指定數(shù)據(jù)包岀去的網(wǎng)絡(luò)接口名稱。%注意:上述選項可以進行組合,每一種選項后面的參數(shù)前可以加“!,表示取反。對于-p選項來說,確定了協(xié)議名稱后,還可以有進一步的子選項,以指定 更細的數(shù)據(jù)包特征。常見的子選項如下所示。-p tcp -sport <port>:指定 TCP 數(shù)據(jù)包的源端口。-p tcp -dport <port>:指定TCP數(shù)據(jù)包的目的端口。 -p tcp -syn :具有SYN標志的TCP數(shù)據(jù)包,該數(shù)據(jù)包要發(fā)起一個新的TCP連接。-
13、p udp -sport <port>:指定 UDP 數(shù)據(jù)包的源端口。-p udp -dport <port>:指定UDP數(shù)據(jù)包的目的端口。-p icmp -icmp-type <type>:指定 icmp 數(shù)據(jù)包的類型,可以是echo-reply、echo-request 等。上述選項中,port可以是單個端口號,也可以是以port1:port2表示的端口范圍。每一選項后的參數(shù)可以加“! ”,表示取反。上面介紹的這些規(guī)則選項都是iptables內(nèi)置的,iptables軟件包還提供了 一套擴展的規(guī)則選項。使用時需要通過-m選項指定模塊的名稱,再使用該模塊 提
14、供的選項。下面列出幾個模塊名稱和其中的選項,大部分的選項也可以通過“!”取反。-m multiport -sports <port, port, 功能:指定數(shù)據(jù)包的多個源端口,也可以以port1:port2的形式指定一個端口范圍。功能:指定數(shù)據(jù)包的多個目的端口,也可以以port1:port2的形式指定一個端口范圍。-m multiport - ports <port, port,功能:指定數(shù)據(jù)包的多個端口,包括源端口和目的端口,也可以以 port1:port2的形式指定一個端口范圍。-m state -state <state>功能:指定滿足某一種狀態(tài)的數(shù)據(jù)包,stat
15、e可以是INVALID、ESTABLISHED NEW和RELATE等,也可以是它們的組合,用“,”分隔。-m connlimit -connlimit-above <n>功能:用于限制客戶端到一臺主機的TCP并發(fā)連接總數(shù),n是一個數(shù)值。-m mac -mac-source <address>功能:指定數(shù)據(jù)包的源 MAC地址,address是xx:xx:xx:xx:xx:xx 形式的48 位數(shù)。-m選項可以提供的模塊名和子選項內(nèi)容非常多,為iptables提供了非常強大、細致的功能,所有的模塊名和子選項可以通過“man iptables ”命令查看iptables命令的
16、手冊頁獲得。最后,iptables命令中的-j選項可以對滿足規(guī)則的數(shù)據(jù)包執(zhí)行指定的操作, 其后的“目標”可以是以下內(nèi)容。 -j ACCEPT :將與規(guī)則匹配的數(shù)據(jù)包放行,并且該數(shù)據(jù)包將不再與其他規(guī)則匹配,而是跳向下一條鏈 繼續(xù)處理。 -j REJECT :拒絕所匹配的數(shù)據(jù)包,并向該數(shù)據(jù)包的發(fā)送者回復(fù)一個ICMP錯誤通知。該處理動作完成后,數(shù)據(jù)包將不再與其他規(guī)則匹配,而且也不跳向下一條鏈。 -j DROP :丟棄所匹配的數(shù)據(jù)包,不回復(fù)錯誤通知。該處理動作完成后,數(shù)據(jù)包將不再與其他規(guī)則匹 配,而且也不跳向下一條鏈。 -j REDIRECT :將匹配的數(shù)據(jù)包重定向到另一個位置,該動作完成后,會繼續(xù)與
17、其他規(guī)則進行匹配。-j LOG :將與規(guī)則匹配的數(shù)據(jù)包的相關(guān)信息記錄在日志( /var/log/message )中,并繼續(xù)與其他規(guī)則 匹配。-j <規(guī)則鏈名稱 >:數(shù)據(jù)包將會傳遞到另一規(guī)則鏈,并與該鏈中的規(guī)則進行匹配。除了上述目標動作外,還有一些與NATt關(guān)的目標,將在9.4節(jié)中講述。所有的目標也可以通過查看iptables 命令的手冊頁獲得。9.2 iptables 主機防火墻主機防火墻主要用于保護防火墻所在的主機免受外界的攻擊,當一臺服務(wù)器為外界提供比較重要的服務(wù),或者一臺客戶機在不安全的網(wǎng)絡(luò)環(huán)境中使用時, 都需要在計算機上安裝防火墻。本節(jié)主要介紹iptables主機防火墻規(guī)
18、則的配置, 包括iptables防火墻的運行與管理、RHEL5默認防火墻規(guī)則的解釋、用戶根據(jù) 需要添加自己的防火墻規(guī)則等內(nèi)容。9.2.1 iptables防火墻的運行與管理RHEL 5默認安裝時,已經(jīng)在系統(tǒng)中安裝了 iptables 軟件包,可以用以下命 令查看。rootlocalhost # rpm -qa | grep iptablesiptables-1.3.5-1.2.1 iptables-ipv6-1.3.5-1.2.1#一般情況下,iptable開機時都已經(jīng)默認運行,但與其他一些服務(wù)不同, iptables的功能是管理內(nèi)核中的防火墻規(guī)則,不需要常駐內(nèi)存的進程。如果對 防火墻的配置做
19、了修改,并且想保存已經(jīng)配置的iptables 規(guī)則,可以使用以下命令。# /etc/rc.d/init.d/iptables save此時,所有正在使用的防火墻規(guī)則將保存到 /etc/sysco nfig/iptables 文件 中,可以用以下命令查看該文件的內(nèi)容。# more /etc/sysconfig/iptables# Generated by iptables-save v1.3.5 on Fri Jan 16 14:58:31 2009*filter:INPUT ACCEPT 0:0:FORWARD ACCEPT 0:0:OUTPUT ACCEPT 2237:2371316:RH-
20、Firewall-1-INPUT - 0:0-A INPUT -j RH-Firewall-1-INPUT-A FORWARD -j RH-Firewall-1-INPUT-A RH-Firewall-1-INPUT -i lo -j ACCEPT-A RH-Firewall-1-INPUT -p icmp -m icmp -icmp-type any -j ACCEPT-A RH-Firewall-1-INPUT -p esp -j ACCEPT-A RH-Firewall-1-INPUT -p ah -j ACCEPT-A RH-Firewall-1-INPUT -d 5
21、1 -p udp -m udp -dport 5353 -j ACCEPT-A RH-Firewall-1-INPUT -p udp -m udp -dport 631 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m tcp -dport 631 -j ACCEPT-A RH-Firewall-1-INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 21 -j ACCEPT-A RH
22、-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 22 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 80 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 25 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 808 -j ACCEPT
23、-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -m tcp -dport 8080 -j ACCEPT可以看到,/etc/sysconfig/iptables文件中包含了一些iptables 規(guī)則,這些規(guī)則的形式與iptables 命令類似,但也有區(qū)別。%注意:一般不建議用戶手工修改這個文件的內(nèi)容,這個文件只用于保存啟動iptables時,需要自動應(yīng)用的防火墻規(guī)則。以上看到的實際上是默認安裝 RHEL 5時該文件中的內(nèi)容,其所確定的規(guī)則 的解釋見9.2.2小節(jié)。還有一種保存iptables 規(guī)則的方法是使用iptables-save 命令,
24、格式如下:# iptables-save > abc此時,正在使用的防火墻規(guī)則將保存到abc文件中。如果希望再次運行iptables,可以使用以下命令。# /etc/rc.d/init.d/iptables start上述命令實際上是清空防火墻所有規(guī)則后,再按/etc/sysco nfig/iptables文件的內(nèi)容重新設(shè)定防火墻規(guī)則。還有一種復(fù)原防火墻規(guī)則的命令如下:# iptables-restore < abc此時,由iptables-save 命令保存在abc文件中的規(guī)則將重新載入到防火墻 中。如果使用以下命令,將停止iptables的運行。# /etc/rc.d/init
25、.d/iptables stop上述命令實際上是清空防火墻中的規(guī)則,與“ iptables -F”命令類似。此 外,/etc/sysconfig目錄的iptables-config 文件是iptables 防火墻的配置文件,去掉注釋后的初始內(nèi)容和解釋如下:配置1:IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"功能:當 iptables 啟動時,載入 ip_conntrack_netbios_ns和ip_conntrack_ftp 兩個 iptables 模塊。配置2:IPTABLES_MODULES_U
26、NLOAD="yes"功能:當iptables重啟或停止時,是否卸載所載入的模塊,yes表示是。配置3:IPTABLES_SAVE_ON_STOP="no"功能:當停止iptables時,是否把規(guī)則和鏈保存到/etc/sysconfig/iptables文件,no 表示否。配置4:IPTABLES_SAVE_ON_RESTART="no"功能:當重啟iptables時,是否把規(guī)則和鏈保存到/etc/sysconfig/iptables文件,no 表示否。配置5:IPTABLES_SAVE_COUNTER="no"功
27、能:當保存規(guī)則和鏈時,是否同時保存計數(shù)值,no表示否。配置6:IPTABLES_STATUS_NUMERIC="yes"功能:輸出iptables狀態(tài)時,是否以數(shù)字形式輸出IP地址和端口號,yes 表示是。配置7:IPTABLES_STATUS_VERBOSE="no"功能:輸出iptables狀態(tài)時,是否包含輸入輸出設(shè)備,no表示否。配置8:IPTABLES_STATUS_LINENUMBERS="yes"功能:輸出iptables狀態(tài)時,是否同時輸出每條規(guī)則的匹配數(shù),yes表示922 RHEL 5開機時默認的防火墻規(guī)則在Linux
28、系統(tǒng)中,可以通過使用iptables 命令構(gòu)建各種類型的防火墻。RHEL 5操作系統(tǒng)默認安裝時,iptables防火墻已經(jīng)安裝,并且開機后會自動添加了 一些規(guī)則,這些規(guī)則實際上是由/etc/sysconfig目錄中的iptables文件決定的??梢酝ㄟ^“iptables-L”命令查看這些默認添加的規(guī)則。# iptables -L#INPUT鏈中的規(guī)則Chain INPUT (policy ACCEPT)targetprot opt sourceRH-Firewall-1-INPUT all - anywhereChain FORWARD (policy ACCEPT) targetprotop
29、t sourceRH-Firewall-1-INPUT all - anywhereChain OUTPUT (policy ACCEPT) targetprotopt sourceChain RH-Firewall-1-INPUT (2 references)destinationanywhere# 規(guī)則 1# FORWARD鏈中的規(guī)則destinationanywhere#規(guī)則 2# OUTPUT鏈中的規(guī)則destination#自定義的 RH-Firewall-1-INPUT 鏈中的規(guī)則,被其他鏈引用兩次targetprot opt sourcedestinationACCEPTall
30、-anywhereanywhere#規(guī)則3ACCEPTicmp-anywhereanywhereicmp any#規(guī)則4ACCEPTesp -anywhereanywhere#規(guī)則5ACCEPTah-anywhereanywhere#規(guī)則6ACCEPTudp -anywhere51udp dpt:mdns#規(guī)則7ACCEPTudp -anywhereanywhereudp dpt:ipp#規(guī)則8ACCEPTtcp -anywhereanywheretcp dpt:ipp#規(guī)則9ACCEPT tcp - anywhere anywherestate NEW tcp dpt:ft
31、p# 規(guī)則 11ACCEPTtcp-anywhere anywherestate NEW tcp dpt:ssh#規(guī)則12ACCEPTtcp-anywhereanywherestate NEW tcp dpt:http #規(guī)則13ACCEPTtcp-anywhereanywherestate NEW tcp dpt:smtp #規(guī)則14REJECTall-anywhereanywhere reject-with icmp-host-prohibited# 規(guī)則 15#由于上面的iptables命令沒有用-t選項指明哪一張表,也沒有指明是哪一 條鏈,因此默認列出的是filter 表中的規(guī)則鏈。由
32、以上結(jié)果可以看出,filter 表中總共有4條鏈。其中,INPUT FORWARD OUTPU鏈是內(nèi)置的,而 RH-Firewall-1-INPUT 鏈是用戶自己添加的。1 規(guī)則列在前面列出的防水墻規(guī)則中,每一條規(guī)則列出了5項內(nèi)容。target列表示規(guī)則的動作目標。prot列表示該規(guī)則指定的上層協(xié)議名稱,all表示所有的協(xié) 議。opt列出了規(guī)則的一些選項。source列表示數(shù)據(jù)包的源IP地址或子網(wǎng),而 dest in atio n 列表示數(shù)據(jù)包的目的IP地址或子網(wǎng),any where表示所有的地址。 除了上述5列以外,如果存在,每一條規(guī)則的最后還要列出一些子選項,如 RH-Firewall-1
33、-INPUT 鏈中的規(guī)則 4 等。如果執(zhí)行iptables 命令時加了 -v選項,則還可以列出每一條規(guī)則當前匹配 的數(shù)據(jù)包數(shù)、字節(jié)數(shù),以及要求數(shù)據(jù)包進來和出去的網(wǎng)絡(luò)接口。如果加上-n選項,則不對顯示結(jié)果中的IP地址和端口做名稱解析,直接以數(shù)字的形式顯示。 還有,如果加上“ -line- numbe”選項,可以在第一列顯示每條規(guī)則的規(guī)則號。2 規(guī)則解釋INPUT鏈中的規(guī)則1其target列的內(nèi)容是RH-Firewall-1-INPUT ,opt列是 all , source和desti nation 列均為any where,表示所有的數(shù)據(jù)包都交給自定 義的RH-Firewall-1-INPUT
34、鏈去處理。FORWARD的規(guī)則2與規(guī)則1完全一樣。 OUTPU®中沒有規(guī)則。在自定義的RH-Firewall-1-INPUT 鏈中,列出了很多的規(guī)則,規(guī)則3表示接 收所有的數(shù)據(jù)包。需要注意的是,如果在iptables中加-v選項列出這條規(guī)則時, 將會看到in列是lo,即要求數(shù)據(jù)包是從環(huán)回接口中進來的,而不是任意網(wǎng)絡(luò)接口進來的數(shù)據(jù)包都接收。規(guī)則4表示所有icmp數(shù)據(jù)包都接收,即其他計算機ping本機時,予以接收, 而且在OUTPU鏈中沒有規(guī)則,因此本機的ICMP回復(fù)數(shù)據(jù)包也能順利地進入網(wǎng) 絡(luò),被對方收到。規(guī)則5和規(guī)則6表示接收所有的esp和ah協(xié)議的數(shù)據(jù)包,這 兩種協(xié)議屬于IPv6協(xié)議
35、。規(guī)則7表示目的地址是51,目的端口是mdns的UDF數(shù)據(jù)包允許 通過。51是一種組播地址,mdns是端口號的一種名稱。如果執(zhí)行 iptables 命令時加了 -n選項,則會顯示數(shù)字5353,它是組播地址的DNS端口。規(guī)則8和規(guī)則9表示允許所有目的端口是ipp的UDP和TCP數(shù)據(jù)包通過,ipp 是端口 631的名稱解析,它是用于網(wǎng)絡(luò)打印服務(wù)的端口。規(guī)則10表示所有狀態(tài)是RELATED口 ESTABLISHE的數(shù)據(jù)包通過,RELATE狀態(tài)表示數(shù)據(jù)包要新建一個 連接,而且這個要新建的連接與現(xiàn)存的連接是相關(guān)的,如FTP的數(shù)據(jù)連接。ESTABLISHE表示本機與對方
36、建立連接時,對方回應(yīng)的數(shù)據(jù)包。規(guī)則11至規(guī)則14表示允許目的端口是ftp、ssh、http和smtp,狀態(tài)是NEW 的TCP數(shù)據(jù)包通過,狀態(tài)為NEV即意味著這個TCP數(shù)據(jù)包將與主機發(fā)起一個 TCP 連接。這幾條規(guī)則的端口對應(yīng)的都是最常見的網(wǎng)絡(luò)服務(wù),它們的端口號分別是 21、22、80和25。最后一條規(guī)則15表示拒絕所有的數(shù)據(jù)包,并向?qū)Ψ交貞?yīng) icmp-host-prohibited 數(shù)據(jù)包。3 補充解釋需要再次提醒的是,這些規(guī)則是有次序的。當一個數(shù)據(jù)包進入 RH-Firewall-1-INPUT 鏈后,將依次與規(guī)則3至規(guī)則15進行比較。按照這些規(guī) 則的目標設(shè)置,如果數(shù)據(jù)包能與規(guī)則3至14中的任
37、一條匹配,則該數(shù)據(jù)包將被接收。如果都不能匹配,則肯定能和規(guī)則15匹配,于是數(shù)據(jù)包被拒絕。由于RH-Firewall-1-INPUT 鏈是被INPUT鏈調(diào)用的,如果要返回到INPUT鏈, 需要執(zhí)行名為RETURI的目標動作。%說明:在FORWARD鏈中也調(diào)用了 RH-Firewall-1-INPUT鏈,即數(shù)據(jù)包如果不是發(fā)送給本機的,當經(jīng)過 FORWARD 鏈時,還要進入 RH-Firewall-1-INPUT 鏈,與規(guī)則3到規(guī)則15 再次進行匹配。9.2.3管理主機防火墻規(guī)則可以有很多功能種類的防火墻,有些是安裝在某一臺主機上,主要用于保護 主機本身的安全;有些是安裝在網(wǎng)絡(luò)中的某一節(jié)點,專門用于
38、保護網(wǎng)絡(luò)中其他 計算機的安全;也有一些可以為內(nèi)網(wǎng)的客戶機提供NAT服務(wù),使內(nèi)網(wǎng)的客戶機共用一個公網(wǎng)IP,以便節(jié)省IP地址資源。下面首先介紹一下主機防火墻的應(yīng)用 示例。當一臺服務(wù)器為外界提供比較重要的服務(wù),或者一臺客戶機在不安全的網(wǎng)絡(luò) 環(huán)境中使用時,都需要在計算機上安裝防火墻,以最大限度地防止主機受到外 界的攻擊。9.2.2小節(jié)介紹的開機時默認的防火墻設(shè)置非常典型,用戶可以根據(jù) 自己主機的功能關(guān)閉已經(jīng)開放的端口,或者開放更多的端口,以便允許符合更 多規(guī)則的數(shù)據(jù)包通過。例如,為了使主機能為外界提供telnet服務(wù),除了配置好tel net服務(wù)器外, 還需要開放TCP23號端口。因為在默認的防火墻配
39、置中,并不允許目的端口為 23的TCP數(shù)據(jù)包進入主機。為了開放 TCP23號端口,可以有兩種辦法,一種是 在RH-Firewall-1-INPUT鏈中加入相應(yīng)的規(guī)則,還有一種是把規(guī)則加到INPUT鏈中。但需要注意的是,規(guī)則是有次序的,如果使用以下命令,則是沒有效果 的。# iptables -A RH-Firewall-1-INPUT -p tcp -dport 23 -j ACCEPT上述命令執(zhí)行后,可以再次查看規(guī)則情況。# iptables -L -n -line-numberChain RH-Firewall-1-INPUT (2 references)destinationnum ta
40、rgetprot opt source11 ACCEPTtcp - /0/0 state NEW tcp dpt:8012ACCEPTtcp - O.O.O.O/O/0 state NEW tcp dpt:2513REJECTall - O.O.O.O/OO.O.O.O/O reject-with icmp-host-prohibited14ACCEPTtcp - O.O.O.O/OO.O.O.O/O tcp dpt:23#新添加的規(guī)則可以看到,新添加的規(guī)則位于最后的位置。 由于所有的數(shù)據(jù)包都可以與目標動作為REJECT勺規(guī)則號為13的規(guī)則匹配,而RE
41、JECT弋表的是拒絕,因此數(shù)據(jù)包到達新添加的規(guī)則前肯定已被丟棄,這條規(guī)則是不會被使用的。為了解決這13的前面。下面是個問題,需要把上述規(guī)則插入到現(xiàn)有的規(guī)則中,要位于規(guī)則正確的開放TCP23號端口的命令。# iptables -I RH-Firewall-1-INPUT 11 -p tcp -dport 23 -j ACCEPT以上命令中,“ -I RH-Firewall-1- INPUT11 ” 表示在 RH-Firewall-1-INPUT鏈原來的規(guī)則11前面插入一條新規(guī)則,規(guī)則內(nèi)容是接受目的端口為23的TCP數(shù)據(jù)包。為了刪除前面添加的無效規(guī)則,可以執(zhí)行以下命令。# iptables -D
42、RH-Firewall-1-INPUT 1515是第一次添加的那條無效規(guī)則此時的規(guī)則號,也可能是其他的數(shù)值,可根據(jù)具體顯示結(jié)果加以改變。如果希望新加的規(guī)則與原來的規(guī)則 11、12等類似,可以執(zhí)行以下命令。# iptables -I RH-Firewall-1-INPUT 11 -m state -state NEW -p tcp -dport 23 -j ACCEPT以上是在RH-Firewall-1-INPUT鏈中添加規(guī)則,以開放TCP23號端口。還有一種開放TCP23號端口的方法是在INPUT鏈中添加規(guī)則,具體命令如下所示。# iptables -I INPUT 1 -p tcp -dpo
43、rt 23 -j ACCEPT# iptables -L -line-numberChain INPUT (policy ACCEPT)num targetprot optsourcedestination1 ACCEPTtcp - anywhere anywhere tcp dpt:telnet2 RH-Firewall-1-INPUT all - anywhere anywhere%注意:添加的規(guī)則也要位于原來規(guī)則2的前面,否則,任何數(shù)據(jù)包都匹配規(guī)則2,將會跳到RH-Firewall-1-INPUT 鏈,并且不再回來。因此,添加在規(guī)則2后面的規(guī)則都是無效的。前面介紹的是在RHEL5默認防火
44、墻規(guī)則的基礎(chǔ)上添加用戶自己的防火墻規(guī) 則,以開放TCP23號端口。在很多的時候,用戶可能希望從最初的狀態(tài)開始, 構(gòu)建自己的防火墻。為了從零開始設(shè)置iptables防火墻,可以用以下命令清空防火墻中所有的規(guī)則。# iptables -F然后再根據(jù)要求,添加自己的防火墻規(guī)則。一般情況下,保護防火墻所在主 機的規(guī)則都添加在INPUT內(nèi)置鏈中,以擋住外界訪問本機的部分數(shù)據(jù)包。本機 向外發(fā)送的數(shù)據(jù)包只經(jīng)過 OUTPU鏈,一般不予限制。如果不希望本機為外界數(shù) 據(jù)包提供路由轉(zhuǎn)發(fā)功能,可以在 FORWARD中添加一條拒絕一切數(shù)據(jù)包通過的 規(guī)則,或者干脆在內(nèi)核中設(shè)置不轉(zhuǎn)發(fā)任何數(shù)據(jù)包。9.2.4常用的主機防火墻規(guī)
45、則當設(shè)置主機防火墻時,一般采取先放行,最后全部禁止的方法。也就是說, 根據(jù)主機的特點,規(guī)劃出允許進入主機的外界數(shù)據(jù)包,然后設(shè)計規(guī)則放行這些 數(shù)據(jù)包。如果某一數(shù)據(jù)包與放行數(shù)據(jù)包的規(guī)則都不匹配,則與最后一條禁止訪 問的規(guī)則匹配,被拒絕進入主機。下面列出一些主機防火墻中常用的iptables命令及其解釋,這些命令添加的規(guī)則都放在filter 表的INPUT鏈中。示例1:iptables -A INPUT -p tcp -dport 80 -j ACCEPT功能:允許目的端口為80的TCP數(shù)據(jù)包通過INPUT鏈。說明:這種數(shù)據(jù)包一般是用來訪問主機的Web服務(wù),如果主機以默認的端口提供Web服務(wù),應(yīng)該用
46、這條規(guī)則開放 TCP8C端口。iptables -A INPUT -s /24 -i ethO -j DROP功能:從接口 eth0進來的、源IP地址的前3字節(jié)為192.168.1的數(shù)據(jù)包予 以丟棄。說明:需要注意這條規(guī)則的位置,如果匹配這條規(guī)則的數(shù)據(jù)包同時也匹配前 面的規(guī)則,而且前面的規(guī)則是放行的,則這條規(guī)則對匹配的數(shù)據(jù)包將不起作用。示例3:iptables -A INPUT -p udp -sport 53 -dport 1024:65535 -j ACCEPT功能:在INPUT鏈中允許源端口號為 53,目標端口號為1024至65535的UDP 數(shù)據(jù)包通過。說明:這種
47、特點的數(shù)據(jù)包是當本機查詢DNS時,DNSK務(wù)器回復(fù)的數(shù)據(jù)包。示例4:iptables -A INPUT -p tcp -tcp-flags SYN,RST,ACK SYN -j ACCEPT功能:SYN RST ACK 3個標志位中SYN位為1,其余兩個為0的TCP數(shù)據(jù) 包予以放行。符合這種特征的數(shù)據(jù)包是發(fā)起TCP連接的數(shù)據(jù)包。說明:“ -tcp- flags ”子選項用于指定TCP數(shù)據(jù)包的標志位,可以有SYN ACK FIN、RST UR&口 PSH共6種。當這些標志位作為“ -tcp- flags ”的參數(shù) 時,用空格分成兩部分。前一部分列出有要求的標志位,用“,”分隔;后一部 分列出要求值為1的標志位,如果有多個,也用“,”分隔,未在后一部分列出 的標志位其值要求為0。%注意:這條命令因為經(jīng)常使用,可以用-syn”代替-tcp- flags SYN,RST,ACK SYN ” 。示例5:iptables -A INPUT -p tcp -m multiport -dport 20:23,53,80,110 -j ACCEPT功能:接收目的端口為20至23、53、80和110號的TCP數(shù)據(jù)包。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育場地設(shè)施使用壽命預(yù)測考核試卷
- 云安全第三方監(jiān)管政策考核試卷
- 風險管理與企業(yè)創(chuàng)新能力考核試卷
- 線上線下銷售渠道對市場份額的影響考核試卷
- 兒童節(jié)活動總結(jié)
- 書香節(jié)活動總結(jié)(13篇)
- 鄉(xiāng)鎮(zhèn)安全生產(chǎn)年度工作總結(jié)(15篇)
- 會計專業(yè)考試初級會計實務(wù)試卷及答案指導(dǎo)
- 夢想助學(xué)活動方案
- 水果涂色活動方案
- GB 7331-2003馬鈴薯種薯產(chǎn)地檢疫規(guī)程
- 關(guān)節(jié)軟骨、膠原組織及生物力學(xué)
- 2023年中國建設(shè)銀行(西藏自治區(qū)分行)校園招聘模擬筆試試題及答案解析
- Going-Positive教學(xué)講解課件
- 廣州大劇院建筑分析課件
- 公司扣款單據(jù)模板
- 文獻檢索與閱讀方法課件
- 髂內(nèi)動脈解剖特點PPT
- 螺旋槳加工與安裝工藝
- 校長競聘試題
- LED顯示屏合同范本
評論
0/150
提交評論