自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

netfilter/iptables系統(tǒng)建立規(guī)則和鏈

運(yùn)維 系統(tǒng)運(yùn)維
netfilter/iptables系統(tǒng)建立規(guī)則和鏈:在Linux中,提供了一個(gè)非常優(yōu)秀的防火墻工具netfilter/iptables。netfilter/iptables是完全免費(fèi)的,而且功能強(qiáng)大,使用靈活。netfilter/iptables可以對(duì)流入和流出的信息進(jìn)行細(xì)化控制,且可以在一臺(tái)低配置機(jī)器上很好地運(yùn)行。本文講述的是netfilter/iptables系統(tǒng)建立規(guī)則和鏈

  如何在netfilter/iptables系統(tǒng)建立規(guī)則和鏈?

  通過向防火墻提供有關(guān)對(duì)來自某個(gè)源、到某個(gè)目的地或具有特定協(xié)議類型的信息包要做些什么的指令,規(guī)則控制信息包的過濾。通過使用 netfilter/iptables 系統(tǒng)提供的特殊命令 iptables ,建立netfilter/iptables這些規(guī)則,并將其添加到內(nèi)核空間的特定信息包過濾表內(nèi)的鏈中。關(guān)于添加/除去/編輯規(guī)則的命令的一般語法如下:

  1.   $ iptables [-t table] command [match] [target]  
  2.  

  表(table)

  [-t table] 選項(xiàng)允許使用標(biāo)準(zhǔn)表之外的任何表。表是包含僅處理特定類型信息包的規(guī)則和鏈的信息包過濾表。有三種可用的表選項(xiàng): filter 、 nat 和 mangle 。該選項(xiàng)不是必需的,如果未指定,則 filter 用作缺省表。

  filter 表用于一般的信息包過濾,它包含 INPUT 、 OUTPUT 和 FORWARD 鏈。nat 表用于要轉(zhuǎn)發(fā)的信息包,它包含 PREROUTING 、 OUTPUT 和 POSTROUTING 鏈。如果信息包及其頭內(nèi)進(jìn)行了任何更改,則使用 mangle 表。該表包含一些規(guī)則來標(biāo)記用于高級(jí)路由的信息包,該表包含 PREROUTING 和 OUTPUT 鏈。

  注: PREROUTING 鏈由指定信息包一到達(dá)防火墻就改變它們的規(guī)則所組成,而 POSTROUTING 鏈由指定正當(dāng)信息包打算離開防火墻時(shí)改變它們的規(guī)則所組成。

  命令(command)

  上面這條netfilter/iptables命令中具有強(qiáng)制性的 command 部分是 iptables 命令的最重要部分。它告訴 iptables 命令要做什么,例如,插入規(guī)則、將規(guī)則添加到鏈的末尾或刪除規(guī)則。以下是最常用的一些命令:

  -A 或 --append : 該命令將一條規(guī)則附加到鏈的末尾。

  示例:

  1.   $ iptables -A INPUT -s 205.168.0.1 -j ACCEPT  
  2.  

  該示例netfilter/iptables命令將一條規(guī)則附加到 INPUT 鏈的末尾,確定來自源地址 205.168.0.1 的信息包可以 ACCEPT 。

  -D 或 --delete : 通過用 -D 指定要匹配的規(guī)則或者指定規(guī)則在鏈中的位置編號(hào),該命令從鏈中刪除該規(guī)則。下面的示例顯示了這兩種方法。

  示例:

  1.   $ iptables -D INPUT --dport 80 -j DROP  
  2.  
  3.   $ iptables -D OUTPUT 3  
  4.  

  第一條命令從 INPUT 鏈刪除規(guī)則,它指定 DROP 前往端口 80 的信息包。第二條命令只是從 OUTPUT 鏈刪除編號(hào)為 3 的規(guī)則。

  -P 或 --policy : 該命令設(shè)置鏈的缺省目標(biāo),即策略。所有與鏈中任何規(guī)則都不匹配的信息包都將被強(qiáng)制使用此鏈的策略。

  示例:

  1.   $ iptables -P INPUT DROP  
  2.  

  該命令將 INPUT 鏈的缺省目標(biāo)指定為 DROP 。這意味著,將丟棄所有與 INPUT 鏈中任何規(guī)則都不匹配的信息包。

  -N 或 --new-chain : 用netfilter/iptables命令中所指定的名稱創(chuàng)建一個(gè)新鏈。

  示例:

  1.   $ iptables -N allowed-chain  
  2.  

  -F 或 --flush : 如果指定鏈名,該netfilter/iptables命令刪除鏈中的所有規(guī)則,如果未指定鏈名,該命令刪除所有鏈中的所有netfilter/iptables規(guī)則。此參數(shù)用于快速清除。

  示例:

  1.   $ iptables -F FORWARD  
  2.  
  3.   $ iptables -F  
  4.  

  -L 或 --list : 列出指定鏈中netfilter/iptables的所有規(guī)則。

  示例:

  1.   $ iptables -L allowed-chain  
  2.  

  匹配(match)

  iptables 命令的可選 match 部分指定信息包與規(guī)則匹配所應(yīng)具有的特征(如源和目的地地址、協(xié)議等)。匹配分為兩大類: 通用匹配和 特定于協(xié)議的匹配。這里,我將研究可用于采用任何協(xié)議的信息包的通用匹配。下面是一些重要的且常用的通用匹配及其示例和說明:

  -p 或 --protocol : 該通用協(xié)議匹配用于檢查某些特定協(xié)議。協(xié)議示例有 TCP 、 UDP 、 ICMP 、用逗號(hào)分隔的任何這三種協(xié)議的組合列表以及 ALL (用于所有協(xié)議)。 ALL 是缺省匹配??梢允褂?! 符號(hào),它表示不與該項(xiàng)匹配。

  示例:

  1.   $ iptables -A INPUT -p TCP, UDP  
  2.  
  3.   $ iptables -A INPUT -p ! ICMP  
  4.  

  在上述示例中,這兩條命令都執(zhí)行同一任務(wù) — 它們指定所有 TCP 和 UDP 信息包都將與該規(guī)則匹配。通過指定 ! ICMP ,我們打算允許所有其它協(xié)議(在這種情況下是 TCP 和 UDP ),而將 ICMP 排除在外。

  -s 或 --source : 該源匹配用于根據(jù)信息包的源 IP 地址來與它們匹配。該匹配還允許對(duì)某一范圍內(nèi)的 IP 地址進(jìn)行匹配,可以使用 ! 符號(hào),表示不與該項(xiàng)匹配。缺省源匹配與所有 IP 地址匹配。

  示例:

  第二條命令指定該規(guī)則與所有來自 192.168.0.0 到 192.168.0.24 的 IP 地址范圍的信息包匹配。第三條命令指定該規(guī)則將與除來自源地址 203.16.1.89 外的任何信息包匹配。

  -d 或 --destination : 該目的地匹配用于根據(jù)信息包的目的地 IP 地址來與它們匹配。該匹配還允許對(duì)某一范圍內(nèi) IP 地址進(jìn)行匹配,可以使用 ! 符號(hào),表示不與該項(xiàng)匹配。

  示例:

  1.   $ iptables -A INPUT -d 192.168.1.1  
  2.  
  3.   $ iptables -A INPUT -d 192.168.0.0/24  
  4.  
  5.   $ iptables -A OUTPUT -d ! 203.16.1.89  
  6.  

  目標(biāo)(target)

  我們已經(jīng)知道,目標(biāo)是由規(guī)則指定的操作,對(duì)與那些規(guī)則匹配的信息包執(zhí)行這些操作。除了允許用戶定義的目標(biāo)之外,還有許多可用的目標(biāo)選項(xiàng)。下面是常用的一些目標(biāo)及其示例和說明:

  ACCEPT : 當(dāng)信息包與具有 ACCEPT 目標(biāo)的規(guī)則完全匹配時(shí),會(huì)被接受(允許它前往目的地),并且它將停止遍歷鏈(雖然該信息包可能遍歷另一個(gè)表中的其它鏈,并且有可能在那里被丟棄)。該目標(biāo)被指定為 -j ACCEPT 。

  DROP : 當(dāng)信息包與具有 DROP 目標(biāo)的規(guī)則完全匹配時(shí),會(huì)阻塞該信息包,并且不對(duì)它做進(jìn)一步處理。該目標(biāo)被指定為 -j DROP 。

  REJECT : 該目標(biāo)的工作方式與 DROP 目標(biāo)相同,但它比 DROP 好。和 DROP 不同, REJECT 不會(huì)在服務(wù)器和客戶機(jī)上留下死套接字。另外, REJECT 將錯(cuò)誤消息發(fā)回給信息包的發(fā)送方。該目標(biāo)被指定為 -j REJECT 。

  示例:

  1.   $ iptables -A FORWARD -p TCP --dport 22 -j REJECT  
  2.  

  RETURN : 在規(guī)則中設(shè)置的 RETURN 目標(biāo)讓與該規(guī)則匹配的信息包停止遍歷包含該規(guī)則的鏈。如果鏈?zhǔn)侨?INPUT 之類的主鏈,則使用該鏈的缺省策略處理信息包。它被指定為 -jump RETURN 。示例:

  1.   $ iptables -A FORWARD -d 203.16.1.89 -jump RETURN  
  2.  

  還有許多用于建立高級(jí)規(guī)則的其它目標(biāo),如 LOG 、 REDIRECT 、 MARK 、 MIRROR 和 MASQUERADE 等。

  保存規(guī)則

  現(xiàn)在,您已經(jīng)學(xué)習(xí)了如何建立基本的規(guī)則和鏈以及如何從信息包過濾表中添加或刪除它們。但是,您應(yīng)該記住:用上述方法所建立的規(guī)則會(huì)被保存到內(nèi)核中,當(dāng)重新引導(dǎo)系統(tǒng)時(shí),會(huì)丟失這些規(guī)則。所以,如果您將沒有錯(cuò)誤的且有效的規(guī)則集添加到信息包過濾表,同時(shí)希望在重新引導(dǎo)之后再次使用這些規(guī)則,那么必須將該規(guī)則集保存在文件中。可以使用 iptables-save命令來做到這一點(diǎn):

  1.   $ iptables-save > iptables-script  
  2.  

  現(xiàn)在,信息包過濾表中的所有規(guī)則都被保存在文件 iptables-script 中。無論何時(shí)再次引導(dǎo)系統(tǒng),都可以使用 iptables-restore命令將規(guī)則集從該腳本文件恢復(fù)到信息包過濾表,如下所示:

  1.   $ iptables-restore iptables-script  
  2.  

  如果您愿意在每次引導(dǎo)系統(tǒng)時(shí)自動(dòng)恢復(fù)該規(guī)則集,則可以將上面指定的這條命令放到任何一個(gè)初始化 shell 腳本中。本文的前一章節(jié):netfilter/iptables系統(tǒng)的安裝,繼而可以使用netfilter/iptables系統(tǒng)建立規(guī)則和鏈。

【編輯推薦】

Linux下Iptables防火墻的使用

iptables簡介與安裝命令

Squid+iptables代理配置

責(zé)任編輯:zhaolei 來源: IBM
相關(guān)推薦

2011-03-15 15:47:30

netfilteriptables安裝

2011-03-15 10:00:01

NetfilterIPTables

2010-12-07 09:51:43

Linux安全性netfilteriptables

2011-03-15 12:47:11

netfilteriptables

2011-03-15 15:47:26

netfilteriptables

2021-04-14 20:10:50

Netfileter Iptables 源碼

2009-12-17 17:41:52

2011-03-15 15:51:12

netfilteriptables

2011-03-15 09:10:43

iptables防火墻

2011-10-12 09:41:32

2010-01-13 16:32:23

2011-03-17 17:45:45

iptables規(guī)則

2011-03-15 10:48:47

2022-10-27 20:31:19

iptablesnetfilter

2011-03-18 09:26:13

Iptables規(guī)則

2011-03-16 09:30:47

iptables過濾

2011-03-16 16:41:57

清空iptables

2011-03-16 10:59:57

2011-03-15 09:59:54

2011-03-15 09:59:54

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)